# 单位、用户、角色、菜单(权限)关系

* Sys_unit 单位表；
* Sys_user 用户表：用户属于一个单位；
* Sys_role 角色表：角色关联用户并关联菜单(权限)，扩展Shiro的实现类，实现了用户登录 -> 查找角色 -> 查找菜单(权限)，并加载到Shiro的Session中；
角色可以创建在单位下，设计初衷是为了单位权限的向下继承(适用于政务类项目)；
* Sys_menu 菜单表：`type=menu`为菜单，`type=data`为权限，将Shiro的权限标识符和菜单有机结合起来，便于理解和功能实现；

# 如何新建菜单和分配权限

系统 -> 系统管理 -> 菜单管理

* 新建菜单，`target=data-pjax` 设置菜单的加载模式为pjax局部加载模式`后台右上角可切换加载模式`；
* 新建权限，权限的上级必须是菜单，且设置权限标识，权限标识用于控制器类方法的 `@RequiresPermissions("sys.manager.conf.add")`；
* `@RequiresAuthentication` 、 `@RequiresPermissions` 等shiro的注解使用说明，请自行补课；

系统 -> 系统管理 -> 角色管理

* 分配菜单权限 And 分配用户
* 分配权限后，必须重新登录才能加载新配的菜单和权限
