Przeglądaj źródła

Merge pull request #1161 from imfiqhan/2.0

fix the ADMINISTRATOR and ADMINISTRATOR_ID variable has no effect on the custom role model
Jiang Qinghua 4 lat temu
rodzic
commit
3c472b755b

+ 3 - 3
src/Http/Auth/Permission.php

@@ -4,7 +4,6 @@ namespace Dcat\Admin\Http\Auth;
 
 use Dcat\Admin\Admin;
 use Dcat\Admin\Layout\Content;
-use Dcat\Admin\Models\Role;
 use Dcat\Admin\Support\Helper;
 use Illuminate\Contracts\Support\Arrayable;
 use Symfony\Component\HttpFoundation\Response;
@@ -52,7 +51,7 @@ class Permission
             return true;
         }
 
-        if (! Admin::user()->inRoles($roles)) {
+        if (!Admin::user()->inRoles($roles)) {
             static::error();
         }
     }
@@ -112,7 +111,8 @@ class Permission
      */
     public static function isAdministrator()
     {
-        return ! config('admin.permission.enable') || Admin::user()->isRole(Role::ADMINISTRATOR);
+        $roleModel = config('admin.database.roles_model');
+        return !config('admin.permission.enable') || Admin::user()->isRole($roleModel::ADMINISTRATOR);
     }
 
     /**

+ 7 - 5
src/Http/Controllers/RoleController.php

@@ -6,7 +6,6 @@ use Dcat\Admin\Form;
 use Dcat\Admin\Grid;
 use Dcat\Admin\Http\Auth\Permission;
 use Dcat\Admin\Http\Repositories\Role;
-use Dcat\Admin\Models\Role as RoleModel;
 use Dcat\Admin\Show;
 use Dcat\Admin\Support\Helper;
 use Dcat\Admin\Widgets\Tree;
@@ -67,7 +66,8 @@ class RoleController extends AdminController
             $show->field('created_at');
             $show->field('updated_at');
 
-            if ($show->getKey() == RoleModel::ADMINISTRATOR_ID) {
+            $roleModel = config('admin.database.roles_model');
+            if ($show->getKey() == $roleModel::ADMINISTRATOR_ID) {
                 $show->disableDeleteButton();
             }
         });
@@ -98,7 +98,7 @@ class RoleController extends AdminController
                     return $permissionModel->allNodes();
                 })
                 ->customFormat(function ($v) {
-                    if (! $v) {
+                    if (!$v) {
                         return [];
                     }
 
@@ -108,7 +108,8 @@ class RoleController extends AdminController
             $form->display('created_at', trans('admin.created_at'));
             $form->display('updated_at', trans('admin.updated_at'));
 
-            if ($id == RoleModel::ADMINISTRATOR_ID) {
+            $roleModel = config('admin.database.roles_model');
+            if ($id == $roleModel::ADMINISTRATOR_ID) {
                 $form->disableDeleteButton();
             }
         });
@@ -116,7 +117,8 @@ class RoleController extends AdminController
 
     public function destroy($id)
     {
-        if (in_array(RoleModel::ADMINISTRATOR_ID, Helper::array($id))) {
+        $roleModel = config('admin.database.roles_model');
+        if (in_array($roleModel::ADMINISTRATOR_ID, Helper::array($id))) {
             Permission::error();
         }
 

+ 4 - 4
src/Traits/HasPermissions.php

@@ -2,7 +2,6 @@
 
 namespace Dcat\Admin\Traits;
 
-use Dcat\Admin\Models\Role;
 use Dcat\Admin\Support\Helper;
 use Illuminate\Contracts\Support\Arrayable;
 use Illuminate\Support\Collection;
@@ -38,7 +37,7 @@ trait HasPermissions
      */
     public function can($ability): bool
     {
-        if (! $ability) {
+        if (!$ability) {
             return false;
         }
 
@@ -63,7 +62,7 @@ trait HasPermissions
      */
     public function cannot(string $permission): bool
     {
-        return ! $this->can($permission);
+        return !$this->can($permission);
     }
 
     /**
@@ -73,7 +72,8 @@ trait HasPermissions
      */
     public function isAdministrator(): bool
     {
-        return $this->isRole(Role::ADMINISTRATOR);
+        $roleModel = config('admin.database.roles_model');
+        return $this->isRole($roleModel::ADMINISTRATOR);
     }
 
     /**