8.2. 站点权限部署

本教程最新版为 9.x,当前版本已放弃维护,请阅读最新版本!

部署权限

上一章节中,我们安装和初始化了多角色权限管理方案,接下来我们要将权限控制部署到整个项目中。

主要由以下几个地方需要权限控制:

  • 拥有 manage_contents 权限的用户允许管理站点内所有话题和回复,包括编辑和删除动作;
  • Horizon 的控制面板,只有 站长 才有权限查看。

1. 内容管理权限

拥有 manage_contents 权限的用户允许管理站点内所有话题和回复,听起来蛮复杂,事实上,得益于 Laravel 授权策略灵活的授权机制,我们只需要几行代码就可以实现。

我们将使用授权策略的 策略过滤器 机制来实现统一授权的目的。我们只需在策略中定义一个 before() 方法。before 方法会在策略中其它所有方法之前执行,这样提供了一种全局授权的方案。在 before 方法中存在三种类型的返回值:

  • 返回 true 是直接通过授权;
  • 返回 false,会拒绝用户所有的授权;
  • 如果返回的是 n...

本文章首发在 LearnKu.com 网站上。

为了保证课程的高品质,我们需要对课程进行收费。付费后 才能观看剩余内容。 购买

上一篇 下一篇
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 31

proHorry
这两课的总结
10 个点赞 | 2 个回复 | 分享 | 课程版本 5.5
oneSmile
为什么设置了配置项 App_ENV 不生效?
2 个点赞 | 12 个回复 | 问答 | 课程版本 5.5
xiaocailc
No hint path defined for [sudosu] 问题如何解决?
2 个点赞 | 9 个回复 | 问答 | 课程版本 5.5
proHorry
关于这段代码的意思?
1 个点赞 | 4 个回复 | 问答 | 课程版本 5.5
吃瓜群众
App ()->isLocal () 请问这行代码什么意思?
1 个点赞 | 3 个回复 | 问答 | 课程版本 5.5
chaijiawei
Horizon 访问权限的配置
1 个点赞 | 2 个回复 | 分享 | 课程版本 5.8
tomming
判断是否是站长出现使用未定义函数?
1 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
A张舫
No hint path defined for [sudosu] 问题如果解决, 和源码解读
1 个点赞 | 0 个回复 | 问答 | 课程版本 9.x
CaiBird008
找不到 Horizon class?
0 个点赞 | 10 个回复 | 问答 | 课程版本 5.5
surest
Call to a member function hasRole () on null?
0 个点赞 | 9 个回复 | 问答 | 课程版本 5.5
tomming
在模板中引入用户切换功能出现找不到路径?
0 个点赞 | 7 个回复 | 问答 | 课程版本 5.5
liwei3773
为什么安完 Sudosu 后,点击用户名下拉菜单出不来啦?
0 个点赞 | 5 个回复 | 问答 | 课程版本 5.5
阿伦
Horizon::auth () 不起作用,闭包函数没有调用?
0 个点赞 | 4 个回复 | 问答 | 课程版本 5.5
wifi
什么时候该添加扩展包的 Provider?
0 个点赞 | 3 个回复 | 问答 | 课程版本 6.x
xzz1
内容权限?
0 个点赞 | 3 个回复 | 问答 | 课程版本 5.5
Boxer
Call to a member function hasRole () on null
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
jaminchen
为什么 sudo-su 不作为开发依赖引入?
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.7
Kayle_zhao
添加后台时候出差啥原因
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
friendOfTime
安装扩展包后,什么条件下需要注册?
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.8
uyynot
为什么之前创建的 TopicPolicy,ReplyPolicy 等没有自动继承 Policy
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
chenvle
sudo-su 工具 怎么关闭
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
Damian
$this->registerPolicies () 从哪里来的?
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
宋高峰
解决:Call to a member function hasRole () on null?
0 个点赞 | 0 个回复 | 分享 | 课程版本 7.x
Horizon 权限限制不支持
0 个点赞 | 0 个回复 | 问答 | 课程版本 6.x
qianfan
教程 403 提示错误的页面 ,需要怎么设置?
0 个点赞 | 0 个回复 | 问答 | 课程版本 6.x
zh-mead
xinwen
0 个点赞 | 0 个回复 | 问答 | 课程版本 5.5