Browse Source

对menus分配与删除权限

kely 9 months ago
parent
commit
8c3d1a450e
2 changed files with 18 additions and 0 deletions
  1. 17 0
      app/Http/Controllers/API/RoleController.php
  2. 1 0
      routes/api.php

+ 17 - 0
app/Http/Controllers/API/RoleController.php

@@ -109,4 +109,21 @@ class RoleController extends Controller
         return $roleHasMenu;
 
     }
+
+
+    public function assignMenusPermissions(string $id, Request $request)
+    {
+        $role = Role::query()->findOrFail($id);
+
+        $permissions=$request->input('permissions');
+        foreach ($permissions as $permission){
+            if($role->hasPermissionTo($permission)){
+                $role->revokePermissionTo($permission);
+            }else{
+                $role->givePermissionTo($permission);
+            };
+        }
+
+        return $this->noContent();
+    }
 }

+ 1 - 0
routes/api.php

@@ -46,6 +46,7 @@ Route::middleware(['auth:sanctum'])->group(function () {
 
         Route::get("role/{role}/permission", [API\RoleController::class, "permissions"])->name("role.permissions");
         Route::put("role/{role}/assign-permission", [API\RoleController::class, "assignPermissions"])->name("role.assign-permissions");
+        Route::put("role/{role}/assign-menus-permission", [API\RoleController::class, "assignMenusPermissions"])->name("role.assign-menus-permissions");
         Route::put("user/{user}/assign-role", [API\UserController::class, "assignRole"])->name("user.assign-role");
         Route::get("role/{role}/menus", [API\RoleController::class, "menus"])->name("role.menus");
 //        Route::patch("user/userInfo/{user_id}",[API\UserController::class, 'updateUserInfo'])->name('user.updateUserInfo');