laravel 权限管理

2019年4月12日 作者 张舫

1. 安装扩展包

生成数据库迁移文件:

下图是 laravel-permission 的数据库表结构:

执行迁移文件:

生成配置文件:

2. 加载 HasRoles

我们还需在 User 中使用 laravel-permission 提供的 Trait —— HasRoles,此举能让我们获取到扩展包提供的所有权限和角色的操作方法。

app/Models/User.php

3初始化角色权限

创建数据填充文件,填充一下默认权限的和角色

打开迁移文件,书写初始化权限和角色的代码:

database/migrations/{timestamp}_seed_roles_and_permissions_data.php

发布默认角色和权限:

指定角色为站长:

指定角色为维护者:

4权限部署

app/Policies/Policy.php

Horizon 访问权限:

Horizon 控制面板页面的路由是 /horizon ,默认只能在 local 环境中访问仪表盘。我们可以使用 Horizon::auth 方法定义更具体的访问策略。auth 方法能够接受一个回调函数,此回调函数需要返回 true 或 false ,从而确认当前用户是否有权限访问 Horizon 仪表盘。接下来我们定义 /horizon 的访问权限,只有 站长 才有权限查看:

app/Providers/HorizonServiceProvider.php

注册地平线服务

config/app.php

5. laravel-permission简单用法

 

新建角色:

 

为角色添加权限

赋予用户某个角色

检查用户角色:

检查用户权限: