From 31e038b6ed4365ab7bf57bfcaa6634fafc6ac82b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E4=B8=96=E7=95=8C?= <642747453@qq.com> Date: Mon, 15 Aug 2022 16:15:00 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20#10000=20=E8=A7=92=E8=89=B2=E6=9D=83?= =?UTF-8?q?=E9=99=90=E5=A2=9E=E5=8A=A0id?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Permission/PermissionsController.php | 16 ++++++++++------ app/Http/Controllers/Role/RolesController.php | 10 ++++++++-- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/app/Http/Controllers/Permission/PermissionsController.php b/app/Http/Controllers/Permission/PermissionsController.php index 43e4d01..6ab89d1 100644 --- a/app/Http/Controllers/Permission/PermissionsController.php +++ b/app/Http/Controllers/Permission/PermissionsController.php @@ -23,17 +23,21 @@ class PermissionsController extends Controller ]); } - public function index() + public function index(Request $request) { - $permissions = Permission::query()->get()->toArray(); + $permissions = $request->user()->getPermissionsViaRoles()->toArray(); $permissions = ArrayUtils::index($permissions, 'name'); $routes = include(resource_path('lang/zh-CN/permission.php')); - foreach ($routes as $key => &$route) { - $route['id'] = $permissions[$key]['id']; + $allowedPermissions = []; + foreach ($routes as $route => $conf) { + if (isset($permissions[$route])) { + $conf['id'] = $permissions[$route]['id']; + $allowedPermissions[] = $conf; + } } - $routes = FormatUtils::formatTreeData($routes, 0); + $allowedPermissions = FormatUtils::formatTreeData($allowedPermissions, 0); - return PermissionsResource::collection($routes); + return PermissionsResource::collection($allowedPermissions); } public function store(Request $request) diff --git a/app/Http/Controllers/Role/RolesController.php b/app/Http/Controllers/Role/RolesController.php index 6338fd8..1e31ea2 100644 --- a/app/Http/Controllers/Role/RolesController.php +++ b/app/Http/Controllers/Role/RolesController.php @@ -4,6 +4,7 @@ namespace App\Http\Controllers\Role; use App\Http\Controllers\Controller; use App\Models\Log as LogModel; +use App\Utils\ArrayUtils; use Illuminate\Http\Request; use Illuminate\Support\Facades\Validator; use Illuminate\Validation\Rule; @@ -22,14 +23,19 @@ class RolesController extends Controller ]); } - public function index() + public function index(Request $request) { $roles = Role::query()->with('permissions')->where('id', '<>', 1)->get()->toArray(); $routes = include(resource_path('lang/zh-CN/permission.php')); + $allPermissions = Permission::query()->get()->toArray(); + $allPermissions = ArrayUtils::index($allPermissions, 'name'); foreach ($roles as &$role) { $permissions = []; foreach ($role['permissions'] as $item) { - $permissions[] = $routes[$item['name']]['name']; + $permissions[] = [ + 'id' => $allPermissions[$item['name']]['id'], + 'name' => $routes[$item['name']]['name'], + ]; } $role['permissions'] = $permissions; }