用户和角色权限

管理员插件包含了用户和权限管理. 用户和管理员都保存在同一个数据表中.

用户和权限的数据结构

用户和权限的ER图

用户可以对应多个角色, 每个角色有不同的权限.
用户的密码以json保存, 默认使用PBKDF2生成密码校验值.

用户类型

管理员插件提供了以下的用户类型

  • 普通用户
    • 普通的用户, 不能登陆到后台
  • 管理员
    • 普通的管理员
  • 超级管理员
    • 默认拥有所有的权限的管理员
  • 合作伙伴
    • 可以登录到后台, 但只能使用非常有限的功能
    • 代理商或进驻商家应该使用这个用户类型

用户类型可以扩展, 添加一个继承IUserType的类型并注册到容器即可.
类型还可以同时继承IAmAdmin, IAmSuperAdmin等现有的接口.

权限

管理员插件支持权限管理, 网站中的权限由IPrivilegesProvider提供.
权限是一个字符串, 格式推荐是Group:Name, 例如AdminManage:View.
很多插件支持自动生成权限, 例如构建后台CRUD页面时会自动生成增删查改权限.

需要检查权限时可以使用PrivilegeManager

var privilegeManager = Application.Ioc.Resolve<PrivilegeManager>();
privilegeManager.Check(typeof(IAmAdmin), "AdminManage:Edit");

用户的注册和登陆

管理员插件提供了用户的注册和登陆页面, 地址是

  • 注册页面 /user/reg
  • 登陆页面 /user/login

需要修改样式时可以重载相关的模板文件.