1、基本权限
user存放用户名(username),密码(password)。关联用户(Employee)
role存放名称(name),描述(descp)assign关联角色表(role),用户表(user)
user表:
id username password entityId role
1 username 123456 0 1
class User{
private long id;
private Integer version;
private String username;
private String password;
private String entityId;//用户类型对应的实体id,也就是用户的具体信息(Employee表),employee表关联dept表
}
role表:
id version name descp
1 1 admin 系统管理人员
class role{
private String id;
private Integer version;
private String name;//权限名称
private String descp;//权限描述
}
assign表:
id version users roles
1 1 0 0
class Assign{
private Long id;
private Integer version;
private User user;//登录用户
private Role role;//用户角色
}
2、用户信息
user关联Employee表,Empoyee关联Dept表
employee表:
id version name address tel mobile fax dept director
1 1 zhangsan 小南街 15236356653 235689547 256324 开发部 XXXX
class Employee{
private String name;
private String shortString;//名字拼音简写
private String address;
private String tel;
private String mobile;
private String fax;
private String director;
private Dept dept;//部门
}
Dept表:
id version name shortString director address tel fax parentId
1 1 开发部 kfb 小王 三楼 15265487756 253684 0
class Dept{
private String name;
private String shortString;
private String director;//部门管理人员
private String address;
private String tel;
private String fax;
private String parentId;//部门的上级部门
}
3、模块授权
grant表授权,关联模块(module)、角色(role)。授权是授权给角色,不是授权给用户。
module表关联menu表,模块属于菜单。
menu表关联subsystem表,菜单属于系统。
Grant表:
id version roles module
1 1 1 crm_001
class Grant{
private Long id;
private Integer version;
private Role role;//角色
private Module module;//模块
}
module表:
id version name url menu
crm_001 1 部门管理 dept/listDept.action DM_01
class Module{
private String id;
private Integer version;
private String name;//模块名称
private String url;//模块访问地址
private Menu menu;//模块所属菜单
}
menu表:
id version name sys parentId
DM_01 1 系统维护 CM 无
class Menu{
private String id;
private Integer version;
private String name;//菜单名称
private String sys;//所属系统
}
subsystem表:
id version name
CM 1 电话中心
class Subsystem{
private String id;
private Integer version;
private String name;//系统名称
}