alsa7err90/magic_role8

此软件包让您轻松添加和定义用户角色和权限

安装: 56

依赖关系: 0

建议者: 0

安全: 0

星标: 3

关注者: 0

分支: 0

公开问题: 0

语言:Blade

类型:软件包

dev-main 2021-03-15 19:52 UTC

This package is auto-updated.

Last update: 2024-09-17 16:52:22 UTC


README

此软件包让您轻松添加和定义用户角色和权限

安装

通过Composer安装此软件包。

在终端中运行Composer require命令

composer require alsa7err90/magic_role8
  • 打开config/app.php,并将此行添加到您的Service Providers数组中。

    alsa7err90\magic_role8\rolesServiceProvider::class,
    
  • 打开config/app.php,并将此行添加到您的别名中。

    'ViewRoles' => alsa7err90\magic_role8\ViewRolesFacade::class,
    
  • 使用以下命令发布文件

    php artisan vendor:publish --all
    
  • 在终端中运行php artisan migrate命令

    php artisan migrate
    
  • 打开app\Models\User.php,并将这些方法添加到"User"类中

     public function hasRole(... $roles) 
     {
          foreach ($roles as $role) 
          {
                if ($this->roles->contains('slug', $role)) 
                {
                    return true;
                }
         }
         return false;
    }
    
    public function roles()
    {
        return $this->belongsToMany(Magrole::class);
    }
    
    public function assignRole(Magrole $role)
    {
        return $this->roles()->save($role);
    }
    
  • 要为注册后的用户分配默认角色,请打开"app/Actions/Fortify"文件夹中的"CreateNewUser.php"文件,并编辑register函数

    this old code :
    return User::create([
          'name' => $input['name'],
          'email' => $input['email'],
          'password' => Hash::make($input['password']),
      ]);
      
    to new code :
     use App\Models\Magrole; // this before class CreateNewUser
     .. 
     ..
      $user =  User::create([
          'name' => $input['name'],
          'email' => $input['email'],
          'password' => Hash::make($input['password']),
      ]);
      $role = Magrole::where('name', 'user')->first();
      $user->assignRole($role);
      return $user;
    
  • 打开.env文件,并添加此行,别忘了用管理员邮箱替换邮箱

    EMAIL_ADMINISTRATOR=yourEmailAdmin@example.com
    

使用

-访问链接

http://127.0.0.1:8000/mag_permissions

在此处可以手动添加权限或自动添加。如果您想自动添加,只需点击按钮:auto_refresh_permission;如果手动添加,首先写类名,例如控制器类名,然后写"_",然后写"show, store, save, ... "等所需名称

          Ex:   show_Controller 

-访问链接

http://127.0.0.1:8000/mag_roles

添加角色,例如:管理员、编辑器、用户。添加后,点击“编辑权限”来添加或删除此角色的权限

http://127.0.0.1:8000/mag_users

将角色添加到用户

1-路由

    resource: mag_roles
    resource: mag_permissions
    resource: mag_users

链接

    <a href=" {{ URL::to('mag_roles') }}" > roles </a> 

2-控制器

检查用户是否有权限使用此功能

     $magic_role = new MagicRole();
     $magic_role->chakeRole('nameController','do') ;

-控制器名称:类控制器名称,例如:我们有一个名为的控制器

   use alsa7err90\magic_role8\MagicRole; 
   class PostController extends Component
   {
      public function show ()
      {
              $magic_role = new MagicRole();
              $magic_role->chakeRole('PostController ', 'show');
         ...............
       }
    }

-操作:如果使用auto_insert_permission,则添加4个单词您可以使用

   -show: use in function index and show ($ id)
   -update: use in function edit and update (Request $ request, $ id)
   -destroy1: use for softy delete
   -destroy2: use for delete
   -store: use in function create and store

在Blade中使用

获取用户的角色

   $role_user = ViewRoles::has_role();

这将返回角色名称,例如"admin"或"editor"等

检查用户是否具有任何角色作为"admin"

   $has_admin = ViewRoles::his_role("admin");

这将返回true或false

检查用户是否具有"show_Controller"权限

   ViewRoles::his_permission("show_MagPermissionController");

这将返回true或false

检查他是否有显示链接的权限的示例

           @if(ViewRoles::his_permission("show_PostController"))
                <a href='" {{ URL::to('Post') }} Post </a>
           @endif

如果您不想使用默认路由,您可以在视图的任何页面的blade目录中使用

 @mag_user
 @mag_role
 @mag_permission

只需写以下任何一个,就会得到一个表格或表单或两者。如果您想编辑这些表格或表单的样式,请转到vendor/alsa7err90/mag_role/src/view文件夹并选择您想要编辑的任何文件。