本书未发布

81. 多角色用户权限

未匹配的标注

简介

在本章里,我们将完成后台模块内容管理开发,并按产品设计给运营人员分配管理权限。在本节里,我们首先给大家介绍一下项目后台多角色用户权限功能,并完成运营人员账号创建。

多角色分配

在后台模块,我们将使用 用户-角色-权限 这种模式来管理登录用户访问权限。目前项目后台只需要 运营人员管理员 这两种角色,关于这两个角色的权限请看 产品分解 说明。

Auth权限认证方式

在 ThinkPHP 项目里我们常用的权限认证有两种—— RBACAuth 。由于 Auth 认证方式比 RBAC 认证逻辑简单而且功能更强大,而且在 ThinkPHP 3.2 版本里框架默认包含 Auth 认证功能 、所以我们在开发过程中使用 Auth 认证比较多,在本项目里我们也是用 Auth 认证方式来管理后台用户权限。

由于篇幅关系,我们在这里不过多介绍和比较 RBAC 和 Auth 权限认证的优劣,在这里我们提供一些详细介绍两者的资料链接,虽然这些文章是介绍 RBAC 和 Auth 权限认证在 ThinkPHP 3.2~5.0 版本项目里应用,但同样适用于 5.1 版本。
www.cnblogs.com/jianxian/p/8719741...
blog.csdn.net/AnPHPer/article/deta...
blog.csdn.net/gzxiaomei/article/de...
blog.csdn.net/ljw499356212/article...

数据字典

adminer 后台管理员用户 字段名称 描述 字段类型 加索引缘由 其他
name 登录名 字符串(Strng) 查询 limit => 50, null => false
password 登录密码 字符串(Strng) 查询 null => false
status 是否启用 布尔(Boolean) 不需要 default => 1, null => false
login_ip 登录IP 字符串(Strng) 不需要 limit => 50, null => true
login_time 登录时间 整数(integer) 不需要 default => 0, null => true
is_default 是否默认用户 布尔(Boolean) 不需要 default => 0, null => true
  • Auth 组件是不包含用户表,在本项目里后台用户和前台用户分成两个表来存储,adminer 表存储的就是项目后台管理员用户信息。
auth_rule 规则表 字段名称 描述 字段类型 加索引缘由 其他
name 规则名 字符串(Strng) 查询 limit => 80, null => false
title 规则标题 字符串(Strng) 不需要 limit => 30, null => false
type 规则类型 布尔(Boolean) 不需要 default => 1, null => false
parent_id Parent规则ID 整数(integer) 不需要 default => 0, null => false
sort_num 排序编号 整数(integer) 不需要 default => 0, null => false
route_name 路由名称 字符串(Strng) 不需要 limit => 100, null => false
icon 菜单项小标 字符串(Strng) 不需要 limit => 50, null => false
status 是否启用 布尔(Boolean) 不需要 default => 1, null => false
condition 规则条件 字符串(Strng) 不需要 limit => 100, null => false
tips 说明 文本(Text) 不需要 null => true
  • sort_numroute_name 字段是我们添加的字段;
  • sort_num 字段用于调整规则项的显示排序;
  • route_name 字段用于采用 路由命名 方式生成菜单项链接;
auth_role 用户组表 字段名称 描述 字段类型 加索引缘由 其他
title 用户组名 字符串(Strng) 不需要 limit => 20, null => false
status 是否启用 布尔(Boolean) 不需要 default => 1, null => false
auth_role_rule 用户组与规则关联中间表 字段名称 描述 字段类型 加索引缘由 其他
rule_id 规则ID 整数(integer) 不需要 default => 0, null => false, unsign => true
role_id 规则ID 整数(integer) 不需要 default => 0, null => false, unsign => true
auth_role_user 用户组与后台管理员用户中间表 字段名称 描述 字段类型 加索引缘由 其他
user_id 管理用户ID 整数(integer) 不需要 default => 0, null => false, unsign => true
role_id 规则ID 整数(integer) 不需要 default => 0, null => false, unsign => true

添加运营管理员

虽然 Auth 认证支持为一个管理用户( adminer )分配多个组权限( auth_role ),但在我们这个项目里我们只允许一个管理用户只能分配一个角色组。

我们在第 2 章 搭建项目 时已经完成了以上 Auth 认证权限管理表的创建,并创建了以下角色组和管理员用户:

  • 『运营』角色组分配路由权限为空;
  • 『站长』用户( admin : 123456 )拥有后台所有页面访问权限,该账号不可以删除;
  • 『运营管理员』 用户( manager : 123456 ),角色组是『运营』。

效果预览

由于运营人员主要负责网站内容管理,目前我们在后台现在还没有开发内容管理功能,所以我们暂时没有给『运营』角色组分配可访问权限。所以我们用账号 manager 登录后台看到左侧菜单栏是空的。

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

上一篇 下一篇
讨论数量: 0
发起讨论 只看当前版本


暂无话题~