8.1. 多角色用户权限

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

file

什么是多角色?

角色和权限是许多 Web 应用程序的重要组成部分。角色就是用户在站点中的身份,很多时候与站点权限相关联。

以 LaraBBS 为例,将会有以下角色,他们的权限由低到高:

  • 游客 —— 没有登录的用户
  • 用户 —— 登录用户
  • 管理员 —— 社区内容管理
  • 站长 —— 权限最高的用户角色

在我们的 LaraBBS 项目里:

  • 游客 可以随便浏览页面,但是无法发布内容;
  • 用户 能够发布内容,却只能管理自己的内容;
  • 管理员 可以管理所有用户的内容,然而不能管理用户;
  • 站长 拥有最高权限,可以管理所有内容,包括用户。

『游客』和『用户』我们只需要按照登录状态来辨别即可,『管理员』和『站长』都是登录用户,并且一个用户既可以是管理员也可以是站长。在代码中,我们使用 Role 数据模型来作为角色的表现,角色能做的动作,我们称之为权限,使用数据模型 Permission 来表现。...

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

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

上一篇 下一篇
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 33

ImVic
如果我的网站需要建立 VIP 角色呢?
3 个点赞 | 6 个回复 | 问答 | 课程版本 5.5
purson
licxisky
如何解决 permission 效率低下的问题?
2 个点赞 | 8 个回复 | 问答 | 课程版本 5.5
zengtao731
Composer require "spatie/Laravel-permission:~2.7"
1 个点赞 | 3 个回复 | 问答 | 课程版本 5.5
幽弥狂
关于这里的权限包使用?
1 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
plc9287xy
Laravel-permission 安装后,执行迁移报错。
1 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
slayer_jzl
seed的性能问题
0 个点赞 | 5 个回复 | 问答 | 课程版本 8.x
李小明
想问下这个后台真的有实用价值吗?
0 个点赞 | 4 个回复 | 问答 | 课程版本 6.x
dwtmtdh
config/permission.php 未能生成
0 个点赞 | 3 个回复 | 问答 | 课程版本 9.x
mindgame1976
Undefined type 'Spatie\Permission\Traits\HasRoles'.
0 个点赞 | 3 个回复 | 问答 | 课程版本 8.x
green_hand
model_has_permissions 这个表的存在意义是什么,搞不太明白
0 个点赞 | 3 个回复 | 问答 | 课程版本 5.5
Ming8888
生成数据库迁移文件失败?
0 个点赞 | 2 个回复 | 问答 | 课程版本 9.x
tim-laravel
生成权限 数据填充的时候 php artisan migrate:refresh --seed 报错
0 个点赞 | 2 个回复 | 问答 | 课程版本 7.x
mzjmc
资源理由 Ajax 提交找不到这个路由
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
oneSmile
The given role or permission should use guard `` instead of `Web`?
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
boris
加入了app()->runningInConsole() 判断,填入数据还是很慢
0 个点赞 | 1 个回复 | 教程 | 课程版本 8.x
7in9km
对于权限和角色的查询可以被缓存吗,怎么操作?
0 个点赞 | 1 个回复 | 问答 | 课程版本 6.x
xylp
(已解决)permission 安装后迁移数据报错
0 个点赞 | 1 个回复 | 问答 | 课程版本 6.x
zton
安装扩展包报错 Laravel-permission
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.7
猪猪
模型中的 $user 没找到问题
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.7
oneSmile
为什么填充角色表需要清除 spatie.permission.cache 缓存?
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
吃瓜群众
执行 permissions 迁移的时候报错?
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
ruodee
直接授权不能用 can,还挺顺口的
0 个点赞 | 1 个回复 | 分享 | 课程版本 5.5
齐天大圣
项目代码在阿里云上面不能正常运行?
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
discus2013
App ()['cache']->forget ('spatie.permission.cache')?
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
andu
php artisan vendor:publish
0 个点赞 | 0 个回复 | 代码速记 | 课程版本 9.x
vanman
Composer 安装卡住没有反应
0 个点赞 | 0 个回复 | 分享 | 课程版本 6.x
zhaiduting
本节数据填充类的代码压缩了一下,删了好些行
0 个点赞 | 0 个回复 | 分享 | 课程版本 5.8
lkey
proc_open (): fork failed - Cannot allocate memory
0 个点赞 | 0 个回复 | 分享 | 课程版本 5.8