package com.jspxcms.core.domain; import java.util.HashSet; import java.util.Set; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.Lob; import javax.persistence.ManyToOne; import javax.persistence.OneToMany; import javax.persistence.Table; import javax.persistence.TableGenerator; import javax.persistence.Transient; /** * RoleSite * * @author liufang * */ @Entity @Table(name = "cms_role_site") public class RoleSite implements java.io.Serializable { private static final long serialVersionUID = 1L; /** * 所有信息权限 */ public static final int INFO_RIGHT_ALL = 1; /** * 组织信息权限 */ public static final int INFO_RIGHT_ORG = 2; /** * 自身信息权限 */ public static final int INFO_RIGHT_SELF = 3; @Transient public Set<Node> getInfoRights() { Set<RoleNodeInfo> roleNodeInfos = getRoleNodeInfos(); if (roleNodeInfos == null) { return null; } Set<Node> nodes = new HashSet<Node>(roleNodeInfos.size()); for (RoleNodeInfo rni : roleNodeInfos) { nodes.add(rni.getNode()); } return nodes; } @Transient public Set<Node> getNodeRights() { Set<RoleNodeNode> roleNodeNodes = getRoleNodeNodes(); if (roleNodeNodes == null) { return null; } Set<Node> nodes = new HashSet<Node>(roleNodeNodes.size()); for (RoleNodeNode rnn : roleNodeNodes) { nodes.add(rnn.getNode()); } return nodes; } @Transient public void applyDefaultValue() { if (getAllPerm() == null) { setAllPerm(true); } if (getAllInfo() == null) { setAllInfo(true); } if (getAllNode() == null) { setAllNode(true); } if (getInfoRightType() == null) { setInfoRightType(INFO_RIGHT_ALL); } } private Integer id; private Set<RoleNodeNode> roleNodeNodes = new HashSet<RoleNodeNode>(); private Set<RoleNodeInfo> roleNodeInfos = new HashSet<RoleNodeInfo>(); private Role role; private Site site; private String perms; private Boolean allPerm; private Boolean allNode; private Boolean allInfo; private Integer infoRightType; @Id @Column(name = "f_rolesite_id", unique = true, nullable = false) @TableGenerator(name = "tg_cms_role_site", pkColumnValue = "cms_role_site", table = "t_id_table", pkColumnName = "f_table", valueColumnName = "f_id_value", initialValue = 1, allocationSize = 1) @GeneratedValue(strategy = GenerationType.TABLE, generator = "tg_cms_role_site") public Integer getId() { return this.id; } public void setId(Integer id) { this.id = id; } @OneToMany(fetch = FetchType.LAZY, cascade = { CascadeType.REMOVE }, mappedBy = "roleSite") public Set<RoleNodeNode> getRoleNodeNodes() { return roleNodeNodes; } public void setRoleNodeNodes(Set<RoleNodeNode> roleNodeNodes) { this.roleNodeNodes = roleNodeNodes; } @OneToMany(fetch = FetchType.LAZY, cascade = { CascadeType.REMOVE }, mappedBy = "roleSite") public Set<RoleNodeInfo> getRoleNodeInfos() { return roleNodeInfos; } public void setRoleNodeInfos(Set<RoleNodeInfo> roleNodeInfos) { this.roleNodeInfos = roleNodeInfos; } @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "f_role_id", nullable = false) public Role getRole() { return this.role; } public void setRole(Role role) { this.role = role; } @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "f_site_id", nullable = false) public Site getSite() { return this.site; } public void setSite(Site site) { this.site = site; } @Lob @Column(name = "f_perms") public String getPerms() { return perms; } public void setPerms(String perms) { this.perms = perms; } @Column(name = "f_is_all_perm", nullable = false, length = 1) public Boolean getAllPerm() { return allPerm; } public void setAllPerm(Boolean allPerm) { this.allPerm = allPerm; } @Column(name = "f_is_all_node", nullable = false, length = 1) public Boolean getAllNode() { return this.allNode; } public void setAllNode(Boolean allNode) { this.allNode = allNode; } @Column(name = "f_is_all_info", nullable = false, length = 1) public Boolean getAllInfo() { return this.allInfo; } public void setAllInfo(Boolean allInfo) { this.allInfo = allInfo; } @Column(name = "f_info_right_type", nullable = false) public Integer getInfoRightType() { return this.infoRightType; } public void setInfoRightType(Integer infoRightType) { this.infoRightType = infoRightType; } }