zrflorent / altamrolespermisosdevel
基于laravel的角色和权限系统包
dev-master
2021-03-05 01:10 UTC
Requires (Dev)
- orchestra/testbench: ^6.13
This package is auto-updated.
Last update: 2024-09-06 14:44:17 UTC
README
为laravel 8管理的角色和权限包
下载laravel 8的角色和权限包
执行以下命令将包下载并安装到Laravel 7
composer require ZrFlorent/Altamrolespermisosdevel
安装
在终端执行以下命令
composer require ZrFlorent/Altamrolespermisosdevel
要求
为了让此包正常工作,Laravel中的Laravel/ui包必须已安装。
包的使用
一旦在laravel 8中安装了此包,建议使用以下命令导出迁移、seeder文件、视图、策略等
php artisan vendor:publish --provider="ZrFlorent\Altamrolespermisosdevel\JhonatanPermisosServiceProvider"
执行上述命令后,我们将在laravel的安装中检查以下文件 config/Altampermisos.php
return [ 'RouteRole' => 'role', 'RouteUser' => 'user', 'IdRoleDefault' => 2 ];
在此文件中,我们可以更改默认的url,以便访问角色和用户。另一方面,我们还可以更改当注册用户时分配的默认角色ID。
如果在更改配置文件后没有反映出来,那么应在终端执行以下命令
php artisan config:clear
在执行命令之前
php artisan migrate
我们建议在User模型中进行以下配置
use Illuminate\Foundation\Auth\User as Authenticatable; //agregamos este trait use ZrFlorent\Altamrolespermisosdevel\Traits\UserTrait; class User extends Authenticatable { //usamos el trait use UserTrait; // ... }
我们需要检查由包在laravel安装过程中导出的seed文件 AltamPermissionInfoSeeder.php,位于以下路径:database/seeds/AltamPermissionInfoSeeder.php,因为在此文件中,你会发现以下内容
- 创建具有邮箱 admin@admin.com 的用户admin。用户名为admin,密码为:admin。
- 创建两个角色:管理员角色和认证用户角色。
- 创建管理员角色和用户admin之间的关系。
- 创建默认权限。
以下是一个示例,说明在之前提到的文件中如何创建权限
//permission role $permission = Permission::create([ 'name' => 'List role', 'slug' => 'role.index', 'description' => 'A user can list role', ]); $permission_all[] = $permission->id; $permission = Permission::create([ 'name' => 'Show role', 'slug' => 'role.show', 'description' => 'A user can see role', ]); $permission_all[] = $permission->id; $permission = Permission::create([ 'name' => 'Create role', 'slug' => 'role.create', 'description' => 'A user can create role', ]); $permission_all[] = $permission->id; $permission = Permission::create([ 'name' => 'Edit role', 'slug' => 'role.edit', 'description' => 'A user can edit role', ]); $permission_all[] = $permission->id; $permission = Permission::create([ 'name' => 'Destroy role', 'slug' => 'role.destroy', 'description' => 'A user can destroy role', ]); $permission_all[] = $permission->id;
拥有所有必要的权限后,你必须修改 DatabaseSeeder.php 文件,以便加载seeder。
附上一个此文件应该如何的示例
use Illuminate\Database\Seeder; class DatabaseSeeder extends Seeder { /** * Seed the application's database. * * @return void */ public function run() { //$this->call(UsersTableSeeder::class); $this->call(AltamPermissionInfoSeeder::class); } }
现在,我们可以在终端执行以下命令
php artisan migrate --seed
一旦将所有表格及其权限加载到数据库中,你就可以通过url /role 访问角色,通过url /user 访问用户。