From 24ef8fa352bc3d6977a0ca24f6ac095c394adfe0 Mon Sep 17 00:00:00 2001 From: Muhammad Waleed Date: Tue, 4 Oct 2022 12:53:57 +0500 Subject: [PATCH 1/7] CUR-4168 implemented revoked and new permissions --- ...n_admin_panel_permission_types_seeder.php} | 0 ...rganization_permission_mapping_seeder.php} | 0 ...00023_organization_role_ui_permission.php} | 0 ...nizationAdminPanelPermissionTypeSeeder.php | 120 +++++++++++++++ .../OrganizationRoleUiPermissionSeeder.php | 27 +++- ...uleOrganizationPermissionMappingSeeder.php | 141 +++++++++++------- 6 files changed, 231 insertions(+), 57 deletions(-) rename database/migrations/{2022_01_13_163559_add_organization_admin_panel_permission_types_seeder.php => 2022_10_03_100000_add_organization_admin_panel_permission_types_seeder.php} (100%) rename database/migrations/{2022_09_14_155307_run_ui_module_organization_permission_mapping_seeder.php => 2022_10_03_155307_run_ui_module_organization_permission_mapping_seeder.php} (100%) rename database/migrations/{2022_09_23_500023_organization_role_ui_permission.php => 2022_10_04_500023_organization_role_ui_permission.php} (100%) diff --git a/database/migrations/2022_01_13_163559_add_organization_admin_panel_permission_types_seeder.php b/database/migrations/2022_10_03_100000_add_organization_admin_panel_permission_types_seeder.php similarity index 100% rename from database/migrations/2022_01_13_163559_add_organization_admin_panel_permission_types_seeder.php rename to database/migrations/2022_10_03_100000_add_organization_admin_panel_permission_types_seeder.php diff --git a/database/migrations/2022_09_14_155307_run_ui_module_organization_permission_mapping_seeder.php b/database/migrations/2022_10_03_155307_run_ui_module_organization_permission_mapping_seeder.php similarity index 100% rename from database/migrations/2022_09_14_155307_run_ui_module_organization_permission_mapping_seeder.php rename to database/migrations/2022_10_03_155307_run_ui_module_organization_permission_mapping_seeder.php diff --git a/database/migrations/2022_09_23_500023_organization_role_ui_permission.php b/database/migrations/2022_10_04_500023_organization_role_ui_permission.php similarity index 100% rename from database/migrations/2022_09_23_500023_organization_role_ui_permission.php rename to database/migrations/2022_10_04_500023_organization_role_ui_permission.php diff --git a/database/seeds/OrganizationAdminPanelPermissionTypeSeeder.php b/database/seeds/OrganizationAdminPanelPermissionTypeSeeder.php index 184d73c26..192a366b5 100644 --- a/database/seeds/OrganizationAdminPanelPermissionTypeSeeder.php +++ b/database/seeds/OrganizationAdminPanelPermissionTypeSeeder.php @@ -78,6 +78,102 @@ public function run() 'feature' => 'Organization' ]); + DB::table('organization_permission_types')->insertOrIgnore([ + 'name' => 'organization:edit-activity-layout', + 'display_name' => 'Edit Organization Activity Layout', + 'feature' => 'Organization' + ]); + + DB::table('organization_permission_types')->insertOrIgnore([ + 'name' => 'organization:delete-activity-layout', + 'display_name' => 'Delete Organization Activity Layout', + 'feature' => 'Organization' + ]); + + DB::table('organization_permission_types')->insertOrIgnore([ + 'name' => 'organization:view-activity-layout', + 'display_name' => 'View Organization Activity Layout', + 'feature' => 'Organization' + ]); + + DB::table('organization_permission_types')->insertOrIgnore([ + 'name' => 'organization:create-activity-layout', + 'display_name' => 'Create Organization Activity Layout', + 'feature' => 'Organization' + ]); + + DB::table('organization_permission_types')->insertOrIgnore([ + 'name' => 'organization:edit-subject', + 'display_name' => 'Edit Organization Subject', + 'feature' => 'Organization' + ]); + + DB::table('organization_permission_types')->insertOrIgnore([ + 'name' => 'organization:delete-subject', + 'display_name' => 'Delete Organization Subject', + 'feature' => 'Organization' + ]); + + DB::table('organization_permission_types')->insertOrIgnore([ + 'name' => 'organization:view-subject', + 'display_name' => 'View Organization Subject', + 'feature' => 'Organization' + ]); + + DB::table('organization_permission_types')->insertOrIgnore([ + 'name' => 'organization:create-subject', + 'display_name' => 'Create Organization Subject', + 'feature' => 'Organization' + ]); + + DB::table('organization_permission_types')->insertOrIgnore([ + 'name' => 'organization:edit-education-level', + 'display_name' => 'Edit Organization Education Level', + 'feature' => 'Organization' + ]); + + DB::table('organization_permission_types')->insertOrIgnore([ + 'name' => 'organization:delete-education-level', + 'display_name' => 'Delete Organization Education Level', + 'feature' => 'Organization' + ]); + + DB::table('organization_permission_types')->insertOrIgnore([ + 'name' => 'organization:view-education-level', + 'display_name' => 'View Organization Education Level', + 'feature' => 'Organization' + ]); + + DB::table('organization_permission_types')->insertOrIgnore([ + 'name' => 'organization:create-education-level', + 'display_name' => 'Create Organization Education Level', + 'feature' => 'Organization' + ]); + + DB::table('organization_permission_types')->insertOrIgnore([ + 'name' => 'organization:edit-author-tag', + 'display_name' => 'Edit Organization Author Tag', + 'feature' => 'Organization' + ]); + + DB::table('organization_permission_types')->insertOrIgnore([ + 'name' => 'organization:delete-author-tag', + 'display_name' => 'Delete Organization Author Tag', + 'feature' => 'Organization' + ]); + + DB::table('organization_permission_types')->insertOrIgnore([ + 'name' => 'organization:view-author-tag', + 'display_name' => 'View Organization Author Tag', + 'feature' => 'Organization' + ]); + + DB::table('organization_permission_types')->insertOrIgnore([ + 'name' => 'organization:create-author-tag', + 'display_name' => 'Create Organization Author Tag', + 'feature' => 'Organization' + ]); + DB::table('organization_permission_types')->insertOrIgnore([ 'name' => 'organization:view-role', 'display_name' => 'View Organization Role', @@ -131,5 +227,29 @@ public function run() 'display_name' => 'Create LMS Organization Setting', 'feature' => 'Organization' ]); + + DB::table('organization_permission_types')->insertOrIgnore([ + 'name' => 'organization:edit-media', + 'display_name' => 'Edit Organization Media', + 'feature' => 'Organization' + ]); + + DB::table('organization_permission_types')->insertOrIgnore([ + 'name' => 'organization:delete-media', + 'display_name' => 'Delete Organization Media', + 'feature' => 'Organization' + ]); + + DB::table('organization_permission_types')->insertOrIgnore([ + 'name' => 'organization:view-media', + 'display_name' => 'View Organization Media', + 'feature' => 'Organization' + ]); + + DB::table('organization_permission_types')->insertOrIgnore([ + 'name' => 'organization:create-media', + 'display_name' => 'Create Organization Media', + 'feature' => 'Organization' + ]); } } diff --git a/database/seeds/OrganizationRoleUiPermissionSeeder.php b/database/seeds/OrganizationRoleUiPermissionSeeder.php index 7e0613c20..ed7eb3fce 100644 --- a/database/seeds/OrganizationRoleUiPermissionSeeder.php +++ b/database/seeds/OrganizationRoleUiPermissionSeeder.php @@ -25,11 +25,16 @@ public function run() "Import/Export Projects" => "Edit", "Activity Types" => "Edit", "Activity Items" => "Edit", + "Activity Layouts" => "Edit", + "Subjects" => "Edit", + "Education Levels" => "Edit", + "Author Tags" => "Edit", "Manage Users" => "Edit", "Manage Roles" => "Edit", "LMS Settings" => "Edit", "LTI Tools" => "Edit", "BrightCove" => "Edit", + "Media" => "Edit", "Project" => "Edit", "Playlist" => "Edit", "Activity" => "Edit", @@ -46,11 +51,16 @@ public function run() "Import/Export Projects" => "None", "Activity Types" => "None", "Activity Items" => "None", + "Activity Layouts" => "None", + "Subjects" => "None", + "Education Levels" => "None", + "Author Tags" => "None", "Manage Users" => "None", "Manage Roles" => "None", "LMS Settings" => "None", "LTI Tools" => "None", "BrightCove" => "None", + "Media" => "None", "Project" => "Edit", "Playlist" => "Edit", "Activity" => "Edit", @@ -67,11 +77,16 @@ public function run() "Import/Export Projects" => "None", "Activity Types" => "None", "Activity Items" => "None", + "Activity Layouts" => "None", + "Subjects" => "None", + "Education Levels" => "None", + "Author Tags" => "None", "Manage Users" => "None", "Manage Roles" => "None", "LMS Settings" => "None", "LTI Tools" => "None", "BrightCove" => "None", + "Media" => "None", "Project" => "View", "Playlist" => "View", "Activity" => "View", @@ -106,7 +121,7 @@ public function run() $uiModulePermissionsList = []; $uiModulePermissionsResult = DB::table('ui_module_permissions')->get(); - + foreach ($uiModulePermissionsResult as $uiModulePermission) { $uiModulePermissionsList[$uiModulePermission->title][$uiModulePermission->ui_module_id] = $uiModulePermission->id; } @@ -131,13 +146,13 @@ public function run() } function assignPermissions($uiPermissions, $roleType) - { + { $uiModulePermissionIds = []; - + foreach ($uiPermissions as $permissionName => $permissionType) { - + if ( - $this->domain === 'currikistudio.org' && + $this->domain === 'currikistudio.org' && $permissionName === 'Team' && ($roleType->name === 'course_creator' || $roleType->name === 'self_registered') ) { @@ -160,7 +175,7 @@ function assignPermissions($uiPermissions, $roleType) // assign ui role permissions $roleType->uiModulePermissions()->sync($uiModulePermissionIds); - // assign backend role permissions + // assign backend role permissions $UiOrganizationPermissionMappingRepository = resolve(UiOrganizationPermissionMappingRepositoryInterface::class); $organizationPermissionTypeIds = $UiOrganizationPermissionMappingRepository->getOrganizationPermissionTypeIds($uiModulePermissionIds); $roleType->permissions()->sync($organizationPermissionTypeIds); diff --git a/database/seeds/UiModuleOrganizationPermissionMappingSeeder.php b/database/seeds/UiModuleOrganizationPermissionMappingSeeder.php index ba23cef20..a8a4df70a 100644 --- a/database/seeds/UiModuleOrganizationPermissionMappingSeeder.php +++ b/database/seeds/UiModuleOrganizationPermissionMappingSeeder.php @@ -1,5 +1,6 @@ [] + ], + "Activity Layouts" => [ + "View" => [ + 'organization:view-activity-layout' + ], + "Edit" => [ + 'organization:view-activity-layout', + 'organization:create-activity-layout', + 'organization:delete-activity-layout', + 'organization:edit-activity-layout' + ], + "None" => [] + ], + "Subjects" => [ + "View" => [ + 'organization:view-subject' + ], + "Edit" => [ + 'organization:view-subject', + 'organization:create-subject', + 'organization:delete-subject', + 'organization:edit-subject' + ], + "None" => [] + ], + "Education Levels" => [ + "View" => [ + 'organization:view-education-level' + ], + "Edit" => [ + 'organization:view-education-level', + 'organization:create-education-level', + 'organization:delete-education-level', + 'organization:edit-education-level' + ], + "None" => [] + ], + "Author Tags" => [ + "View" => [ + 'organization:view-author-tag' + ], + "Edit" => [ + 'organization:view-author-tag', + 'organization:create-author-tag', + 'organization:delete-author-tag', + 'organization:edit-author-tag' + ], + "None" => [] ] ], "Integrations" => [ @@ -116,6 +165,18 @@ public function run() 'organization:edit-brightcove-setting' ], "None" => [] + ], + "Media" => [ + "View" => [ + 'organization:view-media' + ], + "Edit" => [ + 'organization:view-media', + 'organization:create-media', + 'organization:delete-media', + 'organization:edit-media' + ], + "None" => [] ] ], "Users" => [ @@ -177,9 +238,7 @@ public function run() "Authoring" => [ "Project" => [ "View" => [ - 'project:view', - 'project:share', - 'project:clone' + 'project:view' ], "Edit" => [ 'project:view', @@ -198,9 +257,7 @@ public function run() ], "Playlist" => [ "View" => [ - 'playlist:view', - 'playlist:publish', - 'playlist:duplicate' + 'playlist:view' ], "Edit" => [ 'playlist:view', @@ -214,9 +271,7 @@ public function run() ], "Activity" => [ "View" => [ - 'activity:view', - 'activity:share', - 'activity:duplicate' + 'activity:view' ], "Edit" => [ 'activity:view', @@ -263,72 +318,56 @@ public function run() DB::transaction(function () use ($uiBackendPermissionMapping) { foreach ($uiBackendPermissionMapping as $moduleTitle => $subModules) { DB::table('ui_modules') - ->updateOrInsert( - [ - 'title' => $moduleTitle - ], - [ - 'created_at' => 'NOW()' - ] - ); - - $moduleObj = DB::table('ui_modules') - ->where('title', $moduleTitle) - ->first(); - - foreach ($subModules as $subModuleTitle => $uiPermissions) { - DB::table('ui_modules') ->updateOrInsert( [ - 'title' => $subModuleTitle, - 'parent_id' => $moduleObj->id + 'title' => $moduleTitle ], [ 'created_at' => 'NOW()' ] ); - $subModuleObj = DB::table('ui_modules') - ->where('title', $subModuleTitle) - ->first(); + $moduleObj = DB::table('ui_modules')->where('title', $moduleTitle)->first(); - foreach ($uiPermissions as $uiPermissionTitle => $backendPermissions) { - DB::table('ui_module_permissions') + foreach ($subModules as $subModuleTitle => $uiPermissions) { + DB::table('ui_modules') ->updateOrInsert( [ - 'title' => $uiPermissionTitle, - 'ui_module_id' => $subModuleObj->id + 'title' => $subModuleTitle, + 'parent_id' => $moduleObj->id ], [ 'created_at' => 'NOW()' ] ); - if ($backendPermissions) { - $uiPermissionObj = DB::table('ui_module_permissions') - ->where([ + $subModuleObj = DB::table('ui_modules') + ->where('title', $subModuleTitle) + ->first(); + + foreach ($uiPermissions as $uiPermissionTitle => $backendPermissions) { + DB::table('ui_module_permissions') + ->updateOrInsert( [ - 'title', '=', $uiPermissionTitle + 'title' => $uiPermissionTitle, + 'ui_module_id' => $subModuleObj->id ], [ - 'ui_module_id', '=', $subModuleObj->id + 'created_at' => 'NOW()' ] - ]) - ->first(); + ); + + if ($backendPermissions) { + $uiPermissionObj = UiModulePermission::where('title', $uiPermissionTitle) + ->where('ui_module_id', $subModuleObj->id) + ->first(); $backendPermissionIds = DB::table('organization_permission_types') - ->whereIn('name', $backendPermissions) - ->pluck('id') - ->toArray(); + ->whereIn('name', $backendPermissions) + ->pluck('id') + ->toArray(); - foreach ($backendPermissionIds as $backendPermissionId) { - DB::table('ui_organization_permission_mappings') - ->insertOrIgnore([ - 'ui_module_permission_id' => $uiPermissionObj->id, - 'organization_permission_type_id' => $backendPermissionId, - 'created_at' => 'NOW()' - ]); - } + $uiPermissionObj->organizationPermissionTypes()->sync($backendPermissionIds); } } } From 7499ce3dbf60733d68bd7b77f47f0088b53dcc3d Mon Sep 17 00:00:00 2001 From: Muhammad Waleed Date: Thu, 6 Oct 2022 13:40:23 +0500 Subject: [PATCH 2/7] CUR-4168 Assigned default permissions for newly created organization --- .../Organization/OrganizationRepository.php | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/app/Repositories/Organization/OrganizationRepository.php b/app/Repositories/Organization/OrganizationRepository.php index c5c657153..f7d5880a2 100644 --- a/app/Repositories/Organization/OrganizationRepository.php +++ b/app/Repositories/Organization/OrganizationRepository.php @@ -207,9 +207,16 @@ public function createSuborganization($organization, $data, $authenticatedUser) $role = $this->addRole($suborganization, $subOrganizationUserRolesData); if ($role) { + // assign ui role permissions + $organizationRoleUiPermissions = $organizationUserRole->uiModulePermissions() + ->pluck('ui_module_permission_id') + ->toArray(); + + $role->uiModulePermissions()->sync($organizationRoleUiPermissions); + $organizationUserRoleUsers = $organizationUserRole->users() - ->wherePivot('organization_id', $organization->id) - ->get(); + ->wherePivot('organization_id', $organization->id) + ->get(); foreach ($organizationUserRoleUsers as $organizationUserRoleUser) { $userRoles[$organizationUserRoleUser->id] = ['organization_role_type_id' => $role->id]; @@ -226,6 +233,14 @@ public function createSuborganization($organization, $data, $authenticatedUser) $subOrganizationUserRoles[$organizationUserRole->id] = $organizationUserRole->id; $role = $this->addRole($suborganization, $subOrganizationUserRolesData); + if ($role) { + // assign ui role permissions + $organizationRoleUiPermissions = $organizationUserRole->uiModulePermissions() + ->pluck('ui_module_permission_id') + ->toArray(); + + $role->uiModulePermissions()->sync($organizationRoleUiPermissions); + } } } From 4a083e68fb88e82cdc083579bd6c86456852cabe Mon Sep 17 00:00:00 2001 From: Muhammad Waleed Date: Thu, 6 Oct 2022 18:07:21 +0500 Subject: [PATCH 3/7] CUR-4168 some changes --- .../Organization/OrganizationRepository.php | 24 +++++++------------ 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/app/Repositories/Organization/OrganizationRepository.php b/app/Repositories/Organization/OrganizationRepository.php index f7d5880a2..10cb15b37 100644 --- a/app/Repositories/Organization/OrganizationRepository.php +++ b/app/Repositories/Organization/OrganizationRepository.php @@ -199,6 +199,7 @@ public function createSuborganization($organization, $data, $authenticatedUser) foreach ($organizationUserRoles as $organizationUserRole) { if (!isset($subOrganizationUserRoles[$organizationUserRole->id])) { + $subOrganizationUserRolesData['role'] = $organizationUserRole; $subOrganizationUserRolesData['name'] = $organizationUserRole->name; $subOrganizationUserRolesData['display_name'] = $organizationUserRole->display_name; $subOrganizationUserRolesData['permissions'] = $organizationUserRole->permissions->pluck('id')->toArray(); @@ -207,13 +208,6 @@ public function createSuborganization($organization, $data, $authenticatedUser) $role = $this->addRole($suborganization, $subOrganizationUserRolesData); if ($role) { - // assign ui role permissions - $organizationRoleUiPermissions = $organizationUserRole->uiModulePermissions() - ->pluck('ui_module_permission_id') - ->toArray(); - - $role->uiModulePermissions()->sync($organizationRoleUiPermissions); - $organizationUserRoleUsers = $organizationUserRole->users() ->wherePivot('organization_id', $organization->id) ->get(); @@ -227,20 +221,13 @@ public function createSuborganization($organization, $data, $authenticatedUser) foreach ($organizationUserRolesNonAdmin as $organizationUserRole) { if (!isset($subOrganizationUserRoles[$organizationUserRole->id])) { + $subOrganizationUserRolesData['role'] = $organizationUserRole; $subOrganizationUserRolesData['name'] = $organizationUserRole->name; $subOrganizationUserRolesData['display_name'] = $organizationUserRole->display_name; $subOrganizationUserRolesData['permissions'] = $organizationUserRole->permissions->pluck('id')->toArray(); $subOrganizationUserRoles[$organizationUserRole->id] = $organizationUserRole->id; $role = $this->addRole($suborganization, $subOrganizationUserRolesData); - if ($role) { - // assign ui role permissions - $organizationRoleUiPermissions = $organizationUserRole->uiModulePermissions() - ->pluck('ui_module_permission_id') - ->toArray(); - - $role->uiModulePermissions()->sync($organizationRoleUiPermissions); - } } } @@ -452,6 +439,13 @@ public function addRole($organization, $data) $role->permissions()->attach($data['permissions']); + // assign ui role permissions + $organizationRoleUiPermissions = $data['role']->uiModulePermissions() + ->pluck('ui_module_permission_id') + ->toArray(); + + $role->uiModulePermissions()->sync($organizationRoleUiPermissions); + DB::commit(); return $role; From 4e838435c0ce2f233dba4675534ba7703f2877ee Mon Sep 17 00:00:00 2001 From: Muhammad Waleed Date: Thu, 6 Oct 2022 18:31:11 +0500 Subject: [PATCH 4/7] CUR-4168 some changes --- .../Organization/OrganizationRepository.php | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/app/Repositories/Organization/OrganizationRepository.php b/app/Repositories/Organization/OrganizationRepository.php index 10cb15b37..25b3b87c5 100644 --- a/app/Repositories/Organization/OrganizationRepository.php +++ b/app/Repositories/Organization/OrganizationRepository.php @@ -200,9 +200,6 @@ public function createSuborganization($organization, $data, $authenticatedUser) foreach ($organizationUserRoles as $organizationUserRole) { if (!isset($subOrganizationUserRoles[$organizationUserRole->id])) { $subOrganizationUserRolesData['role'] = $organizationUserRole; - $subOrganizationUserRolesData['name'] = $organizationUserRole->name; - $subOrganizationUserRolesData['display_name'] = $organizationUserRole->display_name; - $subOrganizationUserRolesData['permissions'] = $organizationUserRole->permissions->pluck('id')->toArray(); $subOrganizationUserRoles[$organizationUserRole->id] = $organizationUserRole->id; $role = $this->addRole($suborganization, $subOrganizationUserRolesData); @@ -222,9 +219,6 @@ public function createSuborganization($organization, $data, $authenticatedUser) foreach ($organizationUserRolesNonAdmin as $organizationUserRole) { if (!isset($subOrganizationUserRoles[$organizationUserRole->id])) { $subOrganizationUserRolesData['role'] = $organizationUserRole; - $subOrganizationUserRolesData['name'] = $organizationUserRole->name; - $subOrganizationUserRolesData['display_name'] = $organizationUserRole->display_name; - $subOrganizationUserRolesData['permissions'] = $organizationUserRole->permissions->pluck('id')->toArray(); $subOrganizationUserRoles[$organizationUserRole->id] = $organizationUserRole->id; $role = $this->addRole($suborganization, $subOrganizationUserRolesData); @@ -433,11 +427,11 @@ public function addRole($organization, $data) DB::beginTransaction(); $role = $organization->roles()->create([ - 'name' => $data['name'], - 'display_name' => $data['display_name'], + 'name' => $data['role']->name, + 'display_name' => $data['role']->display_name, ]); - $role->permissions()->attach($data['permissions']); + $role->permissions()->attach($data['role']->permissions->pluck('id')->toArray()); // assign ui role permissions $organizationRoleUiPermissions = $data['role']->uiModulePermissions() From 2bb412f930b83a3df6ade9582e33cba715253381 Mon Sep 17 00:00:00 2001 From: Muhammad Waleed Date: Thu, 6 Oct 2022 18:41:21 +0500 Subject: [PATCH 5/7] CUR-4168 some changes --- .../Organization/OrganizationRepository.php | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/app/Repositories/Organization/OrganizationRepository.php b/app/Repositories/Organization/OrganizationRepository.php index 25b3b87c5..1adca997b 100644 --- a/app/Repositories/Organization/OrganizationRepository.php +++ b/app/Repositories/Organization/OrganizationRepository.php @@ -199,10 +199,9 @@ public function createSuborganization($organization, $data, $authenticatedUser) foreach ($organizationUserRoles as $organizationUserRole) { if (!isset($subOrganizationUserRoles[$organizationUserRole->id])) { - $subOrganizationUserRolesData['role'] = $organizationUserRole; $subOrganizationUserRoles[$organizationUserRole->id] = $organizationUserRole->id; - $role = $this->addRole($suborganization, $subOrganizationUserRolesData); + $role = $this->addRole($suborganization, $organizationUserRole); if ($role) { $organizationUserRoleUsers = $organizationUserRole->users() @@ -218,10 +217,9 @@ public function createSuborganization($organization, $data, $authenticatedUser) foreach ($organizationUserRolesNonAdmin as $organizationUserRole) { if (!isset($subOrganizationUserRoles[$organizationUserRole->id])) { - $subOrganizationUserRolesData['role'] = $organizationUserRole; $subOrganizationUserRoles[$organizationUserRole->id] = $organizationUserRole->id; - $role = $this->addRole($suborganization, $subOrganizationUserRolesData); + $role = $this->addRole($suborganization, $organizationUserRole); } } @@ -418,23 +416,23 @@ public function addUser($organization, $data) * Add role for particular organization * * @param Organization $organization - * @param array $data + * @param object $organizationRole * @return Model */ - public function addRole($organization, $data) + public function addRole($organization, $organizationRole) { try { DB::beginTransaction(); $role = $organization->roles()->create([ - 'name' => $data['role']->name, - 'display_name' => $data['role']->display_name, + 'name' => $organizationRole->name, + 'display_name' => $organizationRole->display_name, ]); - $role->permissions()->attach($data['role']->permissions->pluck('id')->toArray()); + $role->permissions()->attach($organizationRole->permissions->pluck('id')->toArray()); // assign ui role permissions - $organizationRoleUiPermissions = $data['role']->uiModulePermissions() + $organizationRoleUiPermissions = $organizationRole->uiModulePermissions() ->pluck('ui_module_permission_id') ->toArray(); From 07a064c5eebadd1198d130cbd7d76a46b4bd7377 Mon Sep 17 00:00:00 2001 From: Muhammad Waleed Date: Mon, 10 Oct 2022 19:54:45 +0500 Subject: [PATCH 6/7] Added some missing new permissions for self registration --- database/seeds/OrganizationRoleUiPermissionSeeder.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/database/seeds/OrganizationRoleUiPermissionSeeder.php b/database/seeds/OrganizationRoleUiPermissionSeeder.php index ed7eb3fce..f58becad5 100644 --- a/database/seeds/OrganizationRoleUiPermissionSeeder.php +++ b/database/seeds/OrganizationRoleUiPermissionSeeder.php @@ -103,11 +103,16 @@ public function run() "Import/Export Projects" => "None", "Activity Types" => "None", "Activity Items" => "None", + "Activity Layouts" => "None", + "Subjects" => "None", + "Education Levels" => "None", + "Author Tags" => "None", "Manage Users" => "None", "Manage Roles" => "None", "LMS Settings" => "None", "LTI Tools" => "None", "BrightCove" => "None", + "Media" => "None", "Project" => "Edit", "Playlist" => "Edit", "Activity" => "Edit", From 315a5c78ba66c223d500b2260ffa3ec271aa167c Mon Sep 17 00:00:00 2001 From: Muhammad Waleed Date: Mon, 10 Oct 2022 19:57:28 +0500 Subject: [PATCH 7/7] Added some missing new permissions for self registration --- ....php => 2022_10_04_500024_organization_role_ui_permission.php} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename database/migrations/{2022_10_04_500023_organization_role_ui_permission.php => 2022_10_04_500024_organization_role_ui_permission.php} (100%) diff --git a/database/migrations/2022_10_04_500023_organization_role_ui_permission.php b/database/migrations/2022_10_04_500024_organization_role_ui_permission.php similarity index 100% rename from database/migrations/2022_10_04_500023_organization_role_ui_permission.php rename to database/migrations/2022_10_04_500024_organization_role_ui_permission.php