首页 > 解决方案 > 如何在 laravel 中集成基于用户的权限和基于角色的权限

问题描述

laravel version : 5.4 
Php verision : 5.6 

我想在基于系统角色和基于用户的权限中应用权限。

我可以授予基于角色的权限。我还想添加一个自定义角色,我可以在其中授予基于用户的权限,这意味着对于这个角色,两个用户可以拥有不同的权限,尽管他们在同一个组中。

标签: laravel-5.4rolesuser-permissions

解决方案


在本地安装 spatie 权限
1. 删除:composer.lock 和 vender 运行:

composer require spatie/laravel-permission:^1

2. 在 Laravel 5.5 中,服务提供者会自动注册。在旧版本的框架中,只需在 config/app.php 文件中添加服务提供者:

'providers' => [
    // ...
    Spatie\Permission\PermissionServiceProvider::class,
];

3.

php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider" --tag="migrations"

4.

Run : php artisan migrate

Output : 
Migrating: 2018_09_14_114242_add_start_date_to_project_activity_table
Migrated:  2018_09_14_114242_add_start_date_to_project_activity_table
Migrating: 2018_09_14_115119_update_start_date_to_project_activity_table
Migrated:  2018_09_14_115119_update_start_date_to_project_activity_table
Migrating: 2018_09_20_065330_add_project_maintenance_ppa_id_to_project_maintenance_table
Migrated:  2018_09_20_065330_add_project_maintenance_ppa_id_to_project_maintenance_table
Migrating: 2018_09_21_053456_add_project_maintenance_contact_id_to_project_maintenance_table
Migrated:  2018_09_21_053456_add_project_maintenance_contact_id_to_project_maintenance_table
Migrating: 2018_09_24_051933_add_start_date_end_date_to_maintenance_resolution_table
Migrated:  2018_09_24_051933_add_start_date_end_date_to_maintenance_resolution_table
Migrating: 2018_09_28_061855_create_permission_tables
Migrated:  2018_09_28_061855_create_permission_tables

5.

php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider" --tag="config"

推荐阅读