九、管理员管理
1、管理员列表
定义路由
创建控制器方法
查询数据
返回数据
实现:
定义路由
创建控制器 继承BaseApi
查询数据
角色名称处理:连表查询
2、管理员详情
定义路由
创建控制器方法
查询数据
返回数据
3、管理员新增
定义路由
创建控制器方法
接收数据
参数检测
添加数据
返回数据
实现:
4、管理员修改
定义路由
创建控制器方法
接收数据
参数检测
修改数据
返回数据
实现:
基本信息修改
重置密码: 修改以上的代码如下:
5、管理员删除
删除数据
返回数据
实现:不能删除超级管理员,不能删除自己
十、权限检测
管理员登陆后,访问每个页面时,需要进行权限检测:
判断当前管理员是否拥有当前访问页面的权限。
原理:
查询当前管理员所拥有的权限 role_auth_ids
查询到当前访问页面对应的权限id( 控制器名称和方法名称为条件)
判断权限id 和 role_auth_ids ,是否拥有当前页面访问权限
特殊情况:
超级管理员不需要检测;
所有管理员 都可以访问的页面,不需要检测(比如首页)。
思路:
判断是否特殊页面(比如首页,不需要检测)
获取到管理员的角色id
判断是否超级管理员(超级管理员不需要检测)
查询当前管理员所拥有的权限ids(从角色表查询对应的role_auth_ids)
根据当前访问的控制器、方法查询到具体的权限id
判断当前权限id是否在role_auth_ids范围中。
实现:
将权限检测的逻逻辑 封装到 application/adminapi/logic/AuthLogic.php 中
有权限访问,返回true,没有权限 返回false
在application/adminapi/controller/BaseApi.php中 登录之后 调用权限检测方法
封装的权限检测逻辑方法:
十一、商品相关数据表
1、商品分类、商品品牌、商品、商品相册
2、商品、商品模型、商品属性
3、商品、商品模型、商品SKU
SPU: 最小产品单元,包含多种可选规格的某种商品的集合。iphone 6 就是一个SPU
SKU:最小库存单元,不可再拆分的产品。 32G的黑色的iphone6就是一个SKU
4、商品相关整体
十二、商品分类管理
1、商品分类列表
定义路由
创建控制器方法
查询数据
返回数据(无限级分类列表、普通列表)
实现:
列表1:无限级分类列表
定义路由
创建控制器方法
创建模型
查询数据、返回数据
列表2 : 普通列表
2、商品分类详情
定义路由
创建控制器方法
查询数据
返回数据
3、商品分类新增
定义路由
创建控制器方法
接收数据
参数检测
添加数据
返回数据
实现:
4、商品分类修改
定义路由
创建控制器方法
接收数据
参数检测
修改数据
返回数据
实现:
5、商品分类删除
删除数据
返回数据
实现: 分类下有子分类,不能删除
十三、文件上传
1、单图片上传
定义路由
创建控制器方法
图片上传
返回数据
实现:
定义路由
创建控制器方法 继承BaseApi
上传功能
创建保存图片的目录
上传代码
总结:
管理员 增删改查接口
权限检测
能够说清RBAC究竟是什么回事儿
商品相关数据表介绍
商品分类 增删改查(三级分类)
单图片上传接口