简单的权限管理-资源,角色,用户,部门(一)
2015-06-18 14:20
453 查看
在ssh框架下,分为资源:menu,角色:role,用户user,其中menu和role是多对多关系,role和user是多对多关系,分为三个层级管理。
menu是控制url访问地址的,是属于粗粒度的权限控制
1.menu
2.role
3.User
4.department
menu是控制url访问地址的,是属于粗粒度的权限控制
1.menu
public class Menu implements Serializable { private static final long serialVersionUID = 1L; private Long id; private String lable;//标签 private String uri; private String description; private Integer status; private Date date; private Set<Role> roles=new HashSet<Role>(); public String getStatusStr(){ if(status==1){ return "启用"; }else{ return "禁用"; } } public String getOperStr(){ if(status==0){ return "启用"; }else{ return "禁用"; } } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getLable() { return lable; } public void setLable(String lable) { this.lable = lable; } public String getUri() { return uri; } public void setUri(String uri) { this.uri = uri; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public Set<Role> getRoles() { return roles; } public void setRoles(Set<Role> roles) { this.roles = roles; } public Date getDate() { return date; } public void setDate(Date date) { this.date = date; } public Integer getStatus() { return status; } public void setStatus(Integer status) { this.status = status; } }
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="Menu" table="Menu"> <id name="id" type="java.lang.Long"> <column name="id" length="15" /> <generator class="increment" /> </id> <property name="lable" type="java.lang.String"> <column name="lable" length="50" /> </property> <property name="uri" type="java.lang.String"> <column name="uri" length="250" /> </property> <property name="description" type="java.lang.String"> <column name="description" length="250" /> </property> <property name="date" type="java.util.Date"> <column name="date" /> </property> <property name="status" type="java.lang.Integer"> <column name="status" length="2" /> </property> <set name="roles" table="menu_role" inverse="true" lazy="false"> <key column="menu_id"></key> <many-to-many column="role_id" class="Role"/> </set> </class> </hibernate-mapping>
2.role
public class Role implements Serializable { private static final long serialVersionUID = 1L; private Long id; private String name; private String description; private Integer status; private Date date; private Set<Menu> menus=new HashSet<Menu>(); private Set<User> users=new HashSet<User>(); public String getStatusStr(){ if(status==1){ return "启用"; }else{ return "禁用"; } } public String getOperStr(){ if(status==0){ return "启用"; }else{ return "禁用"; } } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public Set<Menu> getMenus() { return menus; } public void setMenus(Set<Menu> menus) { this.menus = menus; } public Set<User> getUsers() { return users; } public void setUsers(Set<User> users) { this.users = users; } public Date getDate() { return date; } public void setDate(Date date) { this.date = date; } public Integer getStatus() { return status; } public void setStatus(Integer status) { this.status = status; } }
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="Role" table="Role"> <id name="id" type="java.lang.Long"> <column name="id" length="15" /> <generator class="increment" /> </id> <property name="name" type="java.lang.String"> <column name="name" length="50" /> </property> <property name="description" type="java.lang.String"> <column name="description" length="250" /> </property> <property name="date" type="java.util.Date"> <column name="date" /> </property> <property name="status" type="java.lang.Integer"> <column name="status" length="2" /> </property> <set name="menus" table="menu_role" inverse="false" lazy="false"> <key column="role_id"></key> <many-to-many column="menu_id" class="Menu"/> </set> <set name="users" table="role_user" inverse="true" lazy="false"> <key column="role_id"></key> <many-to-many column="user_id" class="User"/> </set> </class> </hibernate-mapping>
3.User
public class User implements Serializable { private static final long serialVersionUID = 1L; private Long id; // 主键 private String username; // 用户名 private String nickname; private String password; // 密码 private Integer permission; // 权限标志位,暂时通过此标志位控制不同的登录用户操作不同的页面及页面按钮。 private Integer gender; //1:男 0:n:女 private Integer status; private Date date; private Set<Role> roles=new HashSet<Role>();//该用户所拥有的角色 private Department department;//用户所属部门 private String description; public String getStatusStr(){ if(status==1){ return "启用"; }else{ return "禁用"; } } public String getOperStr(){ if(status==0){ return "启用"; }else{ return "禁用"; } } public String getGenderStr(){ if(gender==1){ return "男"; }else{ return "女"; } } public String getNickname() { return nickname; } public void setNickname(String nickname) { this.nickname = nickname; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public Integer getPermission() { return permission; } public void setPermission(Integer permission) { this.permission = permission; } public Set<Role> getRoles() { return roles; } public void setRoles(Set<Role> roles) { this.roles = roles; } public Date getDate() { return date; } public void setDate(Date date) { this.date = date; } public Department getDepartment() { return department; } public void setDepartment(Department department) { this.department = department; } public Integer getGender() { return gender; } public void setGender(Integer gender) { this.gender = gender; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public Integer getStatus() { return status; } public void setStatus(Integer status) { this.status = status; } }
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="User" table="User"> <id name="id" type="java.lang.Long"> <column name="id" length="15" /> <generator class="increment" /> </id> <property name="username" type="java.lang.String"> <column name="username" length="50" /> </property> <property name="nickname" type="java.lang.String"> <column name="nickname" length="50" /> </property> <property name="password" type="java.lang.String"> <column name="password" length="50" /> </property> <property name="description" type="java.lang.String"> <column name="description" length="50" /> </property> <property name="permission" type="java.lang.Integer"> <column name="permission" length="100" /> </property> <property name="gender" type="java.lang.Integer"> <column name="gender" length="100" /> </property> <property name="date" type="java.util.Date"> <column name="date" /> </property> <property name="status" type="java.lang.Integer"> <column name="status" length="2" /> </property> <set name="roles" table="role_user" inverse="false" lazy="false"> <key column="user_id"></key> <many-to-many column="role_id" class="Role"/> </set> <many-to-one name="department" column="department_id" class="Department" lazy="false"/> </class> </hibernate-mapping>
4.department
public class Department implements Serializable { private static final long serialVersionUID = 1L; private Long id; // 主键 private String name; // 用户名 private String guider; private String description; private Integer status;//状态:禁用,启用 private Date date; public String getStatusStr(){ if(status==1){ return "启用"; }else{ return "禁用"; } } public String getOperStr(){ if(status==0){ return "启用"; }else{ return "禁用"; } } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getGuider() { return guider; } public void setGuider(String guider) { this.guider = guider; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public Date getDate() { return date; } public void setDate(Date date) { this.date = date; } public Integer getStatus() { return status; } public void setStatus(Integer status) { this.status = status; } }
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="Department" table="Department"> <id name="id" type="java.lang.Long"> <column name="id" length="15" /> <generator class="increment" /> </id> <property name="name" type="java.lang.String"> <column name="name" length="50" /> </property> <property name="guider" type="java.lang.String"> <column name="guider" length="50" /> </property> <property name="description" type="java.lang.String"> <column name="description" length="50" /> </property> <property name="status" type="java.lang.Integer"> <column name="status" length="2" /> </property> <property name="date" type="java.util.Date"> <column name="date" /> </property> </class> </hibernate-mapping>
相关文章推荐
- linux双机/多机互信
- PHP安装动态扩展模块
- keepalived 只用于心跳测试
- iOS使用脚本批量打渠道包
- 苹果api rsa公钥加密私钥解密
- 关于搭建haddoop分布式系统的全部过程复习
- 《构建之法》13~17章
- CC消隐字幕
- 怎样两周掌握GRE词汇
- 跳表(skiplist)的代码实现
- res与res-auto的区别
- 11.备忘录模式
- php实现socket 比较详细
- MapReduce工作原理图文详解
- 卷积神经网络
- MapReduce工作原理图文详解
- LVM 常用命令
- mysql表分区
- 编写函数strndel,参量是一个字符串string和两个整数start、length。在string中删除start开始的length个字符,最后返回string。
- Linux、hive、sqoop常用脚本