7.1. 多角色用户权限

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

file

什么是多角色?

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

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

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

在我们的 LaraBBS 项目里:

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

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

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

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

上一篇 下一篇
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
贡献者:1
讨论数量: 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