package com.norteksoft.acs.entity.authority;
import java.io.Serializable;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OrderBy;
import javax.persistence.Table;
import javax.persistence.Transient;
import org.hibernate.annotations.LazyCollection;
import org.hibernate.annotations.LazyCollectionOption;
import com.norteksoft.acs.base.enumeration.PermissionAuthorize;
import com.norteksoft.mms.form.entity.ListView;
import com.norteksoft.mms.form.service.ListViewManager;
import com.norteksoft.product.orm.IdEntity;
import com.norteksoft.product.util.ContextUtils;
import com.norteksoft.product.web.struts2.Struts2Utils;
/**
* 授权
* @author Administrator
*
*/
@Entity
@Table(name="ACS_PERMISSION")
public class Permission extends IdEntity implements Serializable{
private static final long serialVersionUID = 1L;
private Integer priority;
private Integer authority;
@ManyToOne
@JoinColumn(name="FK_DATA_RULE_ID")
private DataRule dataRule;
@OneToMany(mappedBy="permission",cascade=CascadeType.ALL)
@LazyCollection(LazyCollectionOption.TRUE)
@OrderBy("displayOrder asc")
private List<PermissionItem> items;
private Long menuId;//与菜单关联
private String code;//编号
private String name;//名称
private Boolean fastable=false;//是否是快速授权,默认不是快速授权
@Transient
private String authorityName;//操作权限名称
private Long listViewId;//查看权限时对应的列表id,因为和查看权限关联,所以要放在授权中,不能放在分类中
@Transient
private String listViewName;
public Integer getPriority() {
return priority;
}
public void setPriority(Integer priority) {
this.priority = priority;
}
public Integer getAuthority() {
return authority;
}
public void setAuthority(Integer authority) {
this.authority = authority;
}
public DataRule getDataRule() {
return dataRule;
}
public void setDataRule(DataRule dataRule) {
this.dataRule = dataRule;
}
public List<PermissionItem> getItems() {
return items;
}
public void setItems(List<PermissionItem> items) {
this.items = items;
}
public String getAuthorityName() {
authorityName="";
for(PermissionAuthorize auth : PermissionAuthorize.values()){
if((this.authority & auth.getCode()) != 0){//有该权限
authorityName=authorityName+Struts2Utils.getText(auth.getI18nKey())+",";
}
}
if(authorityName.contains(",")){
authorityName=authorityName.substring(0,authorityName.lastIndexOf(","));
}
return authorityName;
}
public Long getMenuId() {
return menuId;
}
public void setMenuId(Long menuId) {
this.menuId = menuId;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Boolean getFastable() {
return fastable;
}
public void setFastable(Boolean fastable) {
this.fastable = fastable;
}
public Long getListViewId() {
return listViewId;
}
public void setListViewId(Long listViewId) {
this.listViewId = listViewId;
}
public String getListViewName() {
if(listViewId==null)return null;
ListViewManager listViewManager = (ListViewManager)ContextUtils.getBean("listViewManager");
ListView listView = listViewManager.getView(listViewId);
return listView.getName();
}
}