From 7da3a8964a06735ac30aa350574e155dd2e7e0a2 Mon Sep 17 00:00:00 2001 From: dave Date: Mon, 15 Apr 2024 19:22:33 +0200 Subject: [PATCH] Implement KKT role --- app/Models/Role.php | 9 +++-- app/Policies/CheckoutPolicy.php | 5 ++- app/Policies/UserPolicy.php | 9 +++++ .../2024_04_15_171918_add_kkt_role.php | 34 +++++++++++++++++++ resources/lang/en/role.php | 1 + resources/lang/hu/role.php | 1 + 6 files changed, 54 insertions(+), 5 deletions(-) create mode 100644 database/migrations/2024_04_15_171918_add_kkt_role.php diff --git a/app/Models/Role.php b/app/Models/Role.php index d6b3195e..ae60756f 100644 --- a/app/Models/Role.php +++ b/app/Models/Role.php @@ -57,6 +57,7 @@ class Role extends Model public const CULTURAL_LEADER = 'cultural-leader'; public const CULTURAL_REFERENT = 'cultural-referent'; public const CULTURAL_MEMBER = 'cultural-member'; + public const KKT_HANDLER = 'kkt-handler'; public const COMMUNITY_LEADER = 'community-leader'; public const COMMUNITY_REFERENT = 'community-referent'; public const COMMUNITY_MEMBER = 'community-member'; @@ -96,7 +97,8 @@ class Role extends Model self::STUDENT_COUNCIL_SECRETARY, self::STUDENT_COUNCIL, self::BOARD_OF_TRUSTEES_MEMBER, - self::ETHICS_COMMISSIONER + self::ETHICS_COMMISSIONER, + self::KKT_HANDLER, ]; // Module-related roles @@ -124,7 +126,9 @@ class Role extends Model self::STUDENT_COUNCIL_SECRETARY, self::BOARD_OF_TRUSTEES_MEMBER, self::ETHICS_COMMISSIONER, - self::ALUMNI + self::ALUMNI, + self::KKT_HANDLER, + ]; protected $fillable = [ @@ -310,6 +314,7 @@ public function color(): string self::BOARD_OF_TRUSTEES_MEMBER => 'deep-orange darken-1', self::ETHICS_COMMISSIONER => 'green lighten-2', self::ALUMNI => 'grey darken-1', + self::KKT_HANDLER => 'orange darken-3', default => 'grey', }; } diff --git a/app/Policies/CheckoutPolicy.php b/app/Policies/CheckoutPolicy.php index 630a917a..ea8b00bd 100644 --- a/app/Policies/CheckoutPolicy.php +++ b/app/Policies/CheckoutPolicy.php @@ -44,11 +44,10 @@ public function addKKTNetreg(User $user): bool { return $user->hasRole([ Role::SYS_ADMIN, + Role::KKT_HANDLER, Role::STUDENT_COUNCIL => [ Role::ECONOMIC_VICE_PRESIDENT, - Role::CULTURAL_LEADER, - Role::CULTURAL_MEMBER - ] + ], ]); } diff --git a/app/Policies/UserPolicy.php b/app/Policies/UserPolicy.php index db6da2cf..e50d31d5 100644 --- a/app/Policies/UserPolicy.php +++ b/app/Policies/UserPolicy.php @@ -265,12 +265,17 @@ public function updateAnyPermission(User $user, User $target, Role $role = null) return $user->hasRole([Role::STUDENT_COUNCIL_SECRETARY, Role::STUDENT_COUNCIL => Role::STUDENT_COUNCIL_LEADERS]); } + if ($role->name == Role::KKT_HANDLER) { + return $user->hasRole([Role::STUDENT_COUNCIL_SECRETARY, Role::STUDENT_COUNCIL => Role::ECONOMIC_VICE_PRESIDENT]); + } + if ($role->name == Role::STUDENT_COUNCIL) { return $user->hasRole([ Role::STUDENT_COUNCIL => array_merge(Role::STUDENT_COUNCIL_LEADERS, Role::COMMITTEE_LEADERS), Role::STUDENT_COUNCIL_SECRETARY ]); } + return false; } @@ -299,6 +304,10 @@ public function updatePermission(User $user, User $target, Role $role, Workshop| return $user->hasRole([Role::STUDENT_COUNCIL_SECRETARY, Role::STUDENT_COUNCIL => Role::STUDENT_COUNCIL_LEADERS]); } + if ($role->name == Role::KKT_HANDLER) { + return $user->hasRole([Role::STUDENT_COUNCIL_SECRETARY, Role::STUDENT_COUNCIL => Role::ECONOMIC_VICE_PRESIDENT]); + } + if ($role->name == Role::WORKSHOP_LEADER) { return $user->hasRole([Role::SECRETARY, Role::DIRECTOR]); } diff --git a/database/migrations/2024_04_15_171918_add_kkt_role.php b/database/migrations/2024_04_15_171918_add_kkt_role.php new file mode 100644 index 00000000..1d6d95a5 --- /dev/null +++ b/database/migrations/2024_04_15_171918_add_kkt_role.php @@ -0,0 +1,34 @@ +where('name', 'kkt-handler')->doesntExist()) { + DB::table('roles')->insert([ + 'name' => 'kkt-handler', + 'has_workshops' => false, + 'has_objects' => false + ]); + } + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + DB::table('roles')->where('name', 'kkt-handler')->delete(); + } +}; diff --git a/resources/lang/en/role.php b/resources/lang/en/role.php index 86a3b7fa..4e58132a 100644 --- a/resources/lang/en/role.php +++ b/resources/lang/en/role.php @@ -31,6 +31,7 @@ 'hu' => 'Hungarian', 'internet-user' => 'Internet user', 'it' => 'Italian', + 'kkt-handler' => 'Handler of Community & Culture Tax', 'la' => 'Latin', 'locale-admin' => 'Locale admin', 'other' => 'Other', diff --git a/resources/lang/hu/role.php b/resources/lang/hu/role.php index e8946997..7709f724 100644 --- a/resources/lang/hu/role.php +++ b/resources/lang/hu/role.php @@ -31,6 +31,7 @@ 'hu' => 'Magyar', 'internet-user' => 'Internethasználó', 'it' => 'Olasz', + 'kkt-handler' => 'KKT befizetőhely', 'la' => 'Latin', 'locale-admin' => 'Nyelvi adminisztrátor', 'other' => 'Egyéb',