浏览代码

禁止改动超级管理员角色

兔姬桑 4 年之前
父节点
当前提交
cbad53e3ba

+ 8 - 0
app/Http/Controllers/Admin/RoleController.php

@@ -4,6 +4,7 @@ namespace App\Http\Controllers\Admin;
 
 use App\Http\Controllers\Controller;
 use Illuminate\Http\Request;
+use Illuminate\Http\Response;
 use Spatie\Permission\Models\Permission;
 use Spatie\Permission\Models\Role;
 
@@ -56,6 +57,10 @@ class RoleController extends Controller
             return redirect()->back()->withInput()->withErrors($validator->errors());
         }
 
+        if ($role->name === 'Super Admin') {
+            return redirect()->back()->withInput()->withErrors('请勿修改超级管理员');
+        }
+
         $role->update($request->except('permissions'));
         $permissions = $request->input('permissions') ?: [];
         if ($role->syncPermissions($permissions)) {
@@ -68,6 +73,9 @@ class RoleController extends Controller
     public function destroy(Role $role)
     {
         try {
+            if ($role->name === 'Super Admin') {
+                return Response::json(['status' => 'fail', 'message' => '请勿删除超级管理员']);
+            }
             $role->delete();
         } catch (Exception $e) {
             return Response::json(['status' => 'fail', 'message' => '删除失败,'.$e->getMessage()]);

+ 2 - 2
resources/views/admin/permission/index.blade.php

@@ -35,12 +35,12 @@
                                 @canany(['admin.permission.edit', 'admin.permission.destroy'])
                                     <div class="btn-group">
                                         @can('admin.permission.edit')
-                                            <a class="btn btn-sm btn-outline-primary" href="{{route('admin.permission.edit', $permission->id)}}">
+                                            <a class="btn btn-sm btn-outline-primary" href="{{route('admin.permission.edit', $permission)}}">
                                                 <i class="icon wb-edit"></i></a>
                                         @endcan
                                         @can('admin.permission.destroy')
                                             <button class="btn btn-sm btn-outline-danger"
-                                                    onclick="delPermission('{{route('admin.permission.destroy', $permission->id)}}','{{$permission->name}}')">
+                                                    onclick="delPermission('{{route('admin.permission.destroy', $permission)}}','{{$permission->name}}')">
                                                 <i class="icon wb-trash"></i></button>
                                         @endcan
                                     </div>

+ 2 - 2
resources/views/admin/role/index.blade.php

@@ -43,11 +43,11 @@
                                 @canany(['admin.role.edit', 'admin.role.destroy'])
                                     <div class="btn-group">
                                         @can('admin.role.edit')
-                                            <a class="btn btn-sm btn-outline-primary" href="{{route('admin.role.edit', $role->id)}}">
+                                            <a class="btn btn-sm btn-outline-primary" href="{{route('admin.role.edit', $role)}}">
                                                 <i class="icon wb-edit"></i></a>
                                         @endcan
                                         @can('admin.role.destroy')
-                                            <button class="btn btn-sm btn-outline-danger" onclick="delRole('{{route('admin.role.destroy', $role->id)}}','{{$role->name}}')">
+                                            <button class="btn btn-sm btn-outline-danger" onclick="delRole('{{route('admin.role.destroy', $role)}}','{{$role->name}}')">
                                                 <i class="icon wb-trash"></i></button>
                                         @endcan
                                     </div>