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; }