From 571eba695d6404c4c1e55f05f3de107153848265 Mon Sep 17 00:00:00 2001 From: pushuo Date: Mon, 6 Mar 2023 18:02:29 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9D=83=E9=99=90=E7=AE=A1=E7=90=86=20?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=8F=92=E4=BB=B6=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Http/Controllers/AdminRoleController.php | 6 ++- beike/Admin/Repositories/PermissionRepo.php | 16 +++++++- .../views/pages/admin_roles/edit.blade.php | 40 ++++++++++++++----- resources/lang/de/admin/admin_roles.php | 1 + resources/lang/en/admin/admin_roles.php | 1 + resources/lang/es/admin/admin_roles.php | 1 + resources/lang/fr/admin/admin_roles.php | 1 + resources/lang/ja/admin/admin_roles.php | 1 + resources/lang/ru/admin/admin_roles.php | 1 + resources/lang/zh_cn/admin/admin_roles.php | 1 + resources/lang/zh_hk/admin/admin_roles.php | 1 + 11 files changed, 57 insertions(+), 13 deletions(-) diff --git a/beike/Admin/Http/Controllers/AdminRoleController.php b/beike/Admin/Http/Controllers/AdminRoleController.php index d8d8cd48..3d96a97c 100644 --- a/beike/Admin/Http/Controllers/AdminRoleController.php +++ b/beike/Admin/Http/Controllers/AdminRoleController.php @@ -34,7 +34,8 @@ class AdminRoleController extends Controller { $permissionRepo = (new PermissionRepo()); $data = [ - 'permissions' => $permissionRepo->getAllPermissions(), + 'core_permissions' => $permissionRepo->getRoleCorePermissions(), + 'plugin_permissions' => $permissionRepo->getRolePluginPermissions(), ]; $data = hook_filter('admin.admin_role.create.data', $data); @@ -48,7 +49,8 @@ class AdminRoleController extends Controller $role = Role::query()->findOrFail($id); $permissionRepo = (new PermissionRepo())->setRole($role); $data = [ - 'permissions' => $permissionRepo->getAllPermissions(), + 'core_permissions' => $permissionRepo->getRoleCorePermissions(), + 'plugin_permissions' => $permissionRepo->getRolePluginPermissions(), 'role' => $role, ]; $data = hook_filter('admin.admin_role.edit.data', $data); diff --git a/beike/Admin/Repositories/PermissionRepo.php b/beike/Admin/Repositories/PermissionRepo.php index 701cc6c6..96103f58 100644 --- a/beike/Admin/Repositories/PermissionRepo.php +++ b/beike/Admin/Repositories/PermissionRepo.php @@ -41,7 +41,7 @@ class PermissionRepo * @return array * @throws \Exception */ - public function getAllPermissions(): array + public function getRoleCorePermissions(): array { $corePermissions = [ ['title' => trans('admin/common.order'), 'permissions' => $this->getOrderPermissions()], @@ -73,11 +73,23 @@ class PermissionRepo ]; $corePermissions = hook_filter('role.permissions.all', $corePermissions); + + return $corePermissions; + } + + /** + * 插件权限 + * + * @return array + * @throws \Exception + */ + public function getRolePluginPermissions(): array + { $pluginPermissions = hook_filter('role.permissions.plugin', []); $pluginPermissions = $this->handlePluginPermission($pluginPermissions); - return array_merge($corePermissions, $pluginPermissions); + return $pluginPermissions; } /** diff --git a/resources/beike/admin/views/pages/admin_roles/edit.blade.php b/resources/beike/admin/views/pages/admin_roles/edit.blade.php index fe1906f5..843c7823 100644 --- a/resources/beike/admin/views/pages/admin_roles/edit.blade.php +++ b/resources/beike/admin/views/pages/admin_roles/edit.blade.php @@ -13,13 +13,35 @@
- @lang('admin/admin_roles.select_all') - @lang('admin/admin_roles.unselect_all') + @lang('admin/admin_roles.select_all') + @lang('admin/admin_roles.unselect_all')
@{{ role.title }} - + +
+
+
+
+ @{{ method.name }} +
+
+
+
+
+
+ + +
+
+ @lang('admin/admin_roles.select_all') + @lang('admin/admin_roles.unselect_all') +
+
+
+ @{{ role.title }} +
@@ -50,8 +72,8 @@ form: { id: @json($role->id ?? null), name: @json($role->name ?? ''), - permissions: @json($permissions ?? []), - plugins_permissions: @json($plugins_permissions ?? []), + permissions: @json($core_permissions ?? []), + plugin_permissions: @json($plugin_permissions ?? []), }, source: { @@ -71,12 +93,12 @@ }, methods: { - updateState(type, index) { - this.form.permissions[index].permissions.map(e => e.selected = !!type) + updateState(key, type, index) { + this.form[key][index].permissions.map(e => e.selected = !!type) }, - updateAllState(type) { - this.form.permissions.forEach(e => { + updateAllState(key, type) { + this.form[key].forEach(e => { e.permissions.forEach(method => { method.selected = !!type }); diff --git a/resources/lang/de/admin/admin_roles.php b/resources/lang/de/admin/admin_roles.php index 791555bb..d0d86fb3 100644 --- a/resources/lang/de/admin/admin_roles.php +++ b/resources/lang/de/admin/admin_roles.php @@ -15,5 +15,6 @@ return [ 'role_name' => 'Rollenname', 'role_management' => 'Rollenverwaltung', 'permission' => 'Erlaubnis', + 'plugin_permission' => 'Plugin permissions', 'error_roles' => 'Bitte mindestens eine Rolle auswählen', ]; diff --git a/resources/lang/en/admin/admin_roles.php b/resources/lang/en/admin/admin_roles.php index 3f27fab4..58ced9cf 100644 --- a/resources/lang/en/admin/admin_roles.php +++ b/resources/lang/en/admin/admin_roles.php @@ -16,5 +16,6 @@ return [ 'role_name' => 'Role Name', 'role_management' => 'Role Management', 'permission' => 'Permission', + 'plugin_permission' => 'Plugin permissions', 'error_roles' => 'Please select at least one role', ]; diff --git a/resources/lang/es/admin/admin_roles.php b/resources/lang/es/admin/admin_roles.php index 8c8be3e7..2b3e10a3 100644 --- a/resources/lang/es/admin/admin_roles.php +++ b/resources/lang/es/admin/admin_roles.php @@ -15,5 +15,6 @@ return [ 'role_name' => 'Nombre de rol', 'role_management' => 'gestión de roles', 'permission' => 'permiso', + 'plugin_permission' => 'Plugin permissions', 'error_roles' => 'Seleccione al menos un rol', ]; diff --git a/resources/lang/fr/admin/admin_roles.php b/resources/lang/fr/admin/admin_roles.php index 23366eeb..20948e22 100644 --- a/resources/lang/fr/admin/admin_roles.php +++ b/resources/lang/fr/admin/admin_roles.php @@ -15,5 +15,6 @@ return [ 'role_name' => 'nom du rôle', 'role_management' => 'gestion des rôles', 'permission' => 'autorisation', + 'plugin_permission' => 'Plugin permissions', 'error_roles' => 'Veuillez sélectionner au moins un rôle', ]; diff --git a/resources/lang/ja/admin/admin_roles.php b/resources/lang/ja/admin/admin_roles.php index f944b7df..999a1f05 100644 --- a/resources/lang/ja/admin/admin_roles.php +++ b/resources/lang/ja/admin/admin_roles.php @@ -15,5 +15,6 @@ return [ 'role_name' => '役割名', 'role_management' => '役割管理', 'permission' => '許可', + 'plugin_permission' => 'プラグインのパーミッション', 'error_roles' => '少なくとも 1 つのロールを選択してください', ]; diff --git a/resources/lang/ru/admin/admin_roles.php b/resources/lang/ru/admin/admin_roles.php index 63f81118..e2a89d8e 100644 --- a/resources/lang/ru/admin/admin_roles.php +++ b/resources/lang/ru/admin/admin_roles.php @@ -15,5 +15,6 @@ return [ 'role_name' => 'имя роли', 'role_management' => 'управление ролями', 'permission' => 'разрешение', + 'plugin_permission' => 'Plugin permissions', 'error_roles' => 'Выберите хотя бы одну роль', ]; diff --git a/resources/lang/zh_cn/admin/admin_roles.php b/resources/lang/zh_cn/admin/admin_roles.php index dbf6b3f8..319bb15c 100644 --- a/resources/lang/zh_cn/admin/admin_roles.php +++ b/resources/lang/zh_cn/admin/admin_roles.php @@ -16,5 +16,6 @@ return [ 'role_management' => '角色管理', 'role' => '角色', 'permission' => '权限', + 'plugin_permission' => '插件权限', 'error_roles' => '请至少选择一个角色', ]; diff --git a/resources/lang/zh_hk/admin/admin_roles.php b/resources/lang/zh_hk/admin/admin_roles.php index 806eb9b2..83a345a6 100644 --- a/resources/lang/zh_hk/admin/admin_roles.php +++ b/resources/lang/zh_hk/admin/admin_roles.php @@ -15,5 +15,6 @@ return [ 'role_name' => '角色名稱', 'role_management' => '角色管理', 'permission' => '權限', + 'plugin_permission' => '插件權限', 'error_roles' => '請至少選擇一個角色', ];