alsa7err90 / magic_role8
此软件包让您轻松添加和定义用户角色和权限
Requires
- php: >= 5.6
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文件夹并选择您想要编辑的任何文件。