瀏覽代碼

API Fixes || Missing: Update Role

1day2die 2 年之前
父節點
當前提交
6ef0b63c36
共有 3 個文件被更改,包括 18 次插入7 次删除
  1. 11 6
      app/Http/Controllers/Api/RoleController.php
  2. 4 1
      app/Http/Controllers/Api/UserController.php
  3. 3 0
      routes/api.php

+ 11 - 6
app/Http/Controllers/Api/RoleController.php

@@ -52,7 +52,7 @@ class RoleController extends Controller
     public function store(Request $request)
     {
         $request->validate([
-            'name' => 'nullable|string|max:191',
+            'name' => 'required|string|max:191',
             'color' => [
                 'required',
                 'regex:/^#([a-f0-9]{6}|[a-f0-9]{3})$/i'
@@ -67,7 +67,10 @@ class RoleController extends Controller
         ]);
 
         if ($request->permissions) {
-            $role->givePermissionTo($request->permissions);
+            $permissions = explode(",",$request->permissions);
+            foreach($permissions as $permission){
+                $role->givePermissionTo($permission);
+            }
         }
 
         return $role;
@@ -111,7 +114,7 @@ class RoleController extends Controller
         $role = Role::findOrFail($id);
 
         $request->validate([
-            'name' => 'nullable|string|max:191',
+            'name' => 'required|string|max:191',
             'color' => [
                 'required',
                 'regex:/^#([a-f0-9]{6}|[a-f0-9]{3})$/i'
@@ -120,11 +123,13 @@ class RoleController extends Controller
         ]);
 
         if ($request->permissions) {
-            $role->givePermissionTo($request->permissions);
+            $permissions = explode(",",$request->permissions);
+                $role->syncPermissions($permissions);
         }
 
-        $role->update($request->all());
-        //TODO PERMISSIONS?
+
+        $role->update($request->except('permissions'));
+
         return $role;
     }
 

+ 4 - 1
app/Http/Controllers/Api/UserController.php

@@ -104,7 +104,10 @@ class UserController extends Controller
                 'pterodactyl_error_status' => $response->toException()->getCode(),
             ]);
         }
-        $user->update($request->all());
+        if($request->has("role")){
+            $user->syncRoles($request->role);
+        }
+        $user->update($request->except('role'));
 
         return $user;
     }

+ 3 - 0
routes/api.php

@@ -1,6 +1,7 @@
 <?php
 
 use App\Http\Controllers\Api\NotificationController;
+use App\Http\Controllers\Api\RoleController;
 use App\Http\Controllers\Api\ServerController;
 use App\Http\Controllers\Api\UserController;
 use App\Http\Controllers\Api\VoucherController;
@@ -31,6 +32,8 @@ Route::middleware('api.token')->group(function () {
     //    Route::get('/vouchers/{voucher}/users' , [VoucherController::class , 'users']);
     Route::resource('vouchers', VoucherController::class)->except('create', 'edit');
 
+    Route::resource('roles', RoleController::class);
+
     Route::get('/notifications/{user}', [NotificationController::class, 'index']);
     Route::get('/notifications/{user}/{notification}', [NotificationController::class, 'view']);
     Route::post('/notifications', [NotificationController::class, 'send']);