alsa7err90 / magic_role7
此包让您轻松添加和定义用户角色和权限
Requires
- php: >= 5.6
This package is auto-updated.
Last update: 2024-09-29 06:08:36 UTC
README
此包让您轻松添加和定义用户角色和权限
安装
通过 Composer 安装包。
在终端中运行 Composer require 命令
composer require alsa7err90/magic_role7
-
打开 config/app.php 并将此行添加到您的 Service Providers 数组中。
alsa7err90\magic_role7\rolesServiceProvider::class,
-
打开 config/app.php 并将此行添加到您的别名中
'ViewRoles' => alsa7err90\magic_role7\ViewRolesFacade::class,
-
使用
php artisan vendor:publish --all
-
打开 app/User.php 并将此方法添加到 "class 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/Http/Controllers/Auth" 目录下的 "RegisterController.php" 文件,并编辑 register 函数
this old code : return User::create([ 'name' => $data['name'], 'email' => $data['email'], 'password' => Hash::make($data['password']), ]); to new code : use App\Magrole; // this before class RegisterController .. $user = User::create([ 'name' => $data['name'], 'email' => $data['email'], 'password' => Hash::make($data['password']), ]); $role = Magrole::where('name', 'user')->first(); $user->assignRole($role); return $user;
-在终端中运行 php artisan migrate 命令
php artisan migrate
-
打开 .env 文件并添加此行,不要忘记将电子邮件替换为管理员电子邮件
EMAIL_ADMINISTRATOR=yourEmailAdmin@example.com
使用
-访问此链接
http://127.0.0.1:8000/mag_permissions
在这里您可以手动添加权限或自动添加。如果想要自动添加,只需点击按钮:auto_refresh_permission;如果想要手动添加,您应该首先写类名控制器或任何您使用的类,然后写 "_",之后写 "do",例如 "show, store, save, ......" 或您需要的任何名称
Ex: show_PostController
-访问此链接
http://127.0.0.1:8000/mag_roles
添加角色(例如:admin,editor,user)。添加后,点击 "编辑权限" 添加或删除此角色的权限 - 访问此链接
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_role7\MagicRole;
class PostController extends Component
{
public function show ()
{
$magic_role = new MagicRole();
$magic_role->chakeRole('PostController ', 'show');
...............
}
}
-do:如果使用 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::is_has_role("admin");
这将返回 true 或 false
检查用户是否有权限 "show_Controller"
ViewRoles::is_has_permission("show_MagPermissionController");
这将返回 true 或 false
例如,检查用户是否有权限显示链接
@if(ViewRoles::is_has_permission("show_PostController"))
<a href='" {{ URL::to('Post') }} Post </a>
@endif
如果您不想使用默认路由,您可以在视图中的任何页面内使用 blade 目录
@mag_user
@mag_role
@mag_permission
只需写下以下任何一个,就可以获取一个表格或表单,或两者兼而有之。如果您想修改这些表格或表单的样式,请转到文件夹 vendor/alsa7err90/magic_role7/src/view 并选择您想要编辑的任何文件。