Browse Source

禁用默认权限功能完善

jqh 4 years ago
parent
commit
09ad3d6c00

+ 10 - 0
config/admin.php

@@ -36,6 +36,16 @@ return [
     */
     'logo-mini' => '<img src="/vendors/dcat-admin/images/logo.png">',
 
+    /*
+     |--------------------------------------------------------------------------
+     | User default avatar
+     |--------------------------------------------------------------------------
+     |
+     | Set a default avatar for newly created users.
+     |
+     */
+    'default_avatar' => '@admin/images/default-avatar.jpg',
+
     /*
     |--------------------------------------------------------------------------
     | dcat-admin route settings

+ 1 - 1
src/Auth/Permission.php

@@ -103,6 +103,6 @@ class Permission
      */
     public static function isAdministrator()
     {
-        return Admin::user()->isRole(Role::ADMINISTRATOR);
+        return ! config('admin.permission.enable') || Admin::user()->isRole(Role::ADMINISTRATOR);
     }
 }

+ 10 - 0
src/Console/stubs/config.stub

@@ -36,6 +36,16 @@ return [
     */
     'logo-mini' => '<img src="/vendors/dcat-admin/images/logo.png">',
 
+    /*
+	 |--------------------------------------------------------------------------
+	 | User default avatar
+	 |--------------------------------------------------------------------------
+	 |
+	 | Set a default avatar for newly created users.
+	 |
+	 */
+	'default_avatar' => '@admin/images/default-avatar.jpg',
+
     /*
     |--------------------------------------------------------------------------
     | dcat-admin route settings

+ 19 - 13
src/Controllers/MenuController.php

@@ -38,8 +38,10 @@ class MenuController extends AdminController
                     $form->text('title', trans('admin.title'))->required();
                     $form->icon('icon', trans('admin.icon'))->help($this->iconHelp());
                     $form->text('uri', trans('admin.uri'));
-                    $form->multipleSelect('roles', trans('admin.roles'))
-                        ->options($roleModel::all()->pluck('name', 'id'));
+
+                    if ($menuModel::withRole()) {
+                        $form->multipleSelect('roles', trans('admin.roles'))->options($roleModel::all()->pluck('name', 'id'));
+                    }
                     if ($menuModel::withPermission()) {
                         $form->tree('permissions', trans('admin.permission'))
                             ->expand(false)
@@ -96,9 +98,6 @@ class MenuController extends AdminController
         $relations = $menuModel::withPermission() ? ['permissions', 'roles'] : 'roles';
 
         return Form::make(new Menu($relations), function (Form $form) use ($menuModel) {
-            $permissionModel = config('admin.database.permissions_model');
-            $roleModel = config('admin.database.roles_model');
-
             $form->tools(function (Form\Tools $tools) {
                 $tools->disableView();
             });
@@ -113,16 +112,23 @@ class MenuController extends AdminController
             $form->text('title', trans('admin.title'))->required();
             $form->icon('icon', trans('admin.icon'))->help($this->iconHelp());
             $form->text('uri', trans('admin.uri'));
-            $form->multipleSelect('roles', trans('admin.roles'))
-                ->options(function () use ($roleModel) {
-                    return $roleModel::all()->pluck('name', 'id');
-                })
-                ->customFormat(function ($v) {
-                    return array_column($v, 'id');
-                });
+
+            if ($menuModel::withRole()) {
+                $form->multipleSelect('roles', trans('admin.roles'))
+                    ->options(function () {
+                        $roleModel = config('admin.database.roles_model');
+
+                        return $roleModel::all()->pluck('name', 'id');
+                    })
+                    ->customFormat(function ($v) {
+                        return array_column($v, 'id');
+                    });
+            }
             if ($menuModel::withPermission()) {
                 $form->tree('permissions', trans('admin.permission'))
-                    ->nodes(function () use ($permissionModel) {
+                    ->nodes(function () {
+                        $permissionModel = config('admin.database.permissions_model');
+
                         return (new $permissionModel())->allNodes();
                     })
                     ->customFormat(function ($v) {

+ 1 - 0
src/Middleware/Permission.php

@@ -31,6 +31,7 @@ class Permission
         if (
             ! $user
             || ! empty($args)
+            || ! config('admin.permission.enable')
             || $this->shouldPassThrough($request)
             || $user->isAdministrator()
             || $this->checkRoutePermission($request)

+ 1 - 1
src/Models/Administrator.php

@@ -59,7 +59,7 @@ class Administrator extends Model implements AuthenticatableContract
             return $avatar;
         }
 
-        return admin_asset('@admin/images/default-avatar.jpg');
+        return admin_asset(config('admin.default_avatar') ?: '@admin/images/default-avatar.jpg');
     }
 
     /**

+ 12 - 2
src/Models/Menu.php

@@ -112,13 +112,23 @@ class Menu extends Model implements Sortable
     }
 
     /**
-     * determine if enable menu bind permission.
+     * Determine if enable menu bind permission.
      *
      * @return bool
      */
     public static function withPermission()
     {
-        return (bool) config('admin.menu.bind_permission');
+        return config('admin.menu.bind_permission') && config('admin.permission.enable');
+    }
+
+    /**
+     * Determine if enable menu bind role.
+     *
+     * @return bool
+     */
+    public static function withRole()
+    {
+        return (bool) config('admin.permission.enable');
     }
 
     /**