]> BookStack Code Mirror - bookstack/blobdiff - app/Http/Controllers/RoleController.php
Fixed permission row permission check
[bookstack] / app / Http / Controllers / RoleController.php
index 25b2a5851f88c6802964be60a113577d2fd46f8f..fee31ffbfe297a8806a9b9d12a8c310c3325418a 100644 (file)
@@ -3,6 +3,7 @@
 namespace BookStack\Http\Controllers;
 
 use BookStack\Auth\Permissions\PermissionsRepo;
+use BookStack\Auth\Role;
 use BookStack\Exceptions\PermissionsException;
 use Exception;
 use Illuminate\Http\Request;
@@ -28,17 +29,31 @@ class RoleController extends Controller
         $this->checkPermission('user-roles-manage');
         $roles = $this->permissionsRepo->getAllRoles();
 
+        $this->setPageTitle(trans('settings.roles'));
+
         return view('settings.roles.index', ['roles' => $roles]);
     }
 
     /**
      * Show the form to create a new role.
      */
-    public function create()
+    public function create(Request $request)
     {
         $this->checkPermission('user-roles-manage');
 
-        return view('settings.roles.create');
+        /** @var ?Role $role */
+        $role = null;
+        if ($request->has('copy_from')) {
+            $role = Role::query()->find($request->get('copy_from'));
+        }
+
+        if ($role) {
+            $role->display_name .= ' (' . trans('common.copy') . ')';
+        }
+
+        $this->setPageTitle(trans('settings.role_create'));
+
+        return view('settings.roles.create', ['role' => $role]);
     }
 
     /**
@@ -49,7 +64,7 @@ class RoleController extends Controller
         $this->checkPermission('user-roles-manage');
         $this->validate($request, [
             'display_name' => ['required', 'min:3', 'max:180'],
-            'description'  => 'max:180',
+            'description'  => ['max:180'],
         ]);
 
         $this->permissionsRepo->saveNewRole($request->all());
@@ -71,6 +86,8 @@ class RoleController extends Controller
             throw new PermissionsException(trans('errors.role_cannot_be_edited'));
         }
 
+        $this->setPageTitle(trans('settings.role_edit'));
+
         return view('settings.roles.edit', ['role' => $role]);
     }
 
@@ -84,7 +101,7 @@ class RoleController extends Controller
         $this->checkPermission('user-roles-manage');
         $this->validate($request, [
             'display_name' => ['required', 'min:3', 'max:180'],
-            'description'  => 'max:180',
+            'description'  => ['max:180'],
         ]);
 
         $this->permissionsRepo->updateRole($id, $request->all());
@@ -105,6 +122,8 @@ class RoleController extends Controller
         $blankRole = $role->newInstance(['display_name' => trans('settings.role_delete_no_migration')]);
         $roles->prepend($blankRole);
 
+        $this->setPageTitle(trans('settings.role_delete'));
+
         return view('settings.roles.delete', ['role' => $role, 'roles' => $roles]);
     }