//$Id: User.java,v 1.7 2007/01/05 03:48:05 chaostone Exp $
/*
*
* Copyright c 2005-2009
* Licensed under the Apache License, Version 2.0 (the "License")
* http://www.apache.org/licenses/LICENSE-2.0
*
*/
/********************************************************************************
* @author chaostone
*
* MODIFICATION DESCRIPTION
*
* Name Date Description
* ============ ============ ============
* dell 2005-9-15 Created
* chaostone 2005-9-26 add mngUsers
*
********************************************************************************/
package org.beanfuse.security.model;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.beanfuse.model.pojo.LongIdTimeObject;
import org.beanfuse.security.UserCategory;
import org.beanfuse.security.restriction.RestrictionHolder;
/**
* 系统中所有用户的账号、权限、状态信息.
*
* @author dell,chaostone 2005-9-26
*/
public class User extends LongIdTimeObject implements org.beanfuse.security.User, RestrictionHolder {
private static final long serialVersionUID = -3625902334772342380L;
/** 名称 */
protected String name;
/** 用户姓名 */
private String fullname;
/** 用户密文 */
private String password;
/** 用户联系email */
private String mail;
/** 是否管理员 */
private boolean admin;
/** 对应用户组 */
private Set groups = new HashSet();
/** 创建人 */
private org.beanfuse.security.User creator;
/** 向下级授权,所管理的用户组 */
private Set mngGroups = new HashSet();
/** 向下级授权,所管理的用户 */
private Set mngUsers = new HashSet();
/** 种类 */
protected Set categories = new HashSet();
/** 缺省类别 */
private UserCategory defaultCategory;
/** 状态 */
protected int status;
/** 访问限制 */
protected Set restrictions = new HashSet();
/** 备注 */
protected String remark;
public User() {
super();
}
public User(Long id) {
setId(id);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public Set getRestrictions() {
return restrictions;
}
public void setRestrictions(Set restrictions) {
this.restrictions = restrictions;
}
public String toString() {
return new ToStringBuilder(this).append("id", this.id).append("password", this.password)
.append("name", this.getName()).toString();
}
public boolean isCategory(Long categoryId) {
for (Iterator iter = categories.iterator(); iter.hasNext();) {
UserCategory category = (UserCategory) iter.next();
if (category.getId().equals(categoryId))
return true;
}
return false;
}
public String getMail() {
return mail;
}
public void setMail(String mail) {
this.mail = mail;
}
public Set getMngGroups() {
return mngGroups;
}
public void setMngGroups(Set mngGroups) {
this.mngGroups = mngGroups;
}
public Set getMngUsers() {
return mngUsers;
}
public void setMngUsers(Set mngUsers) {
this.mngUsers = mngUsers;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Set getGroups() {
return groups;
}
public Set getAllGroups() {
Set allGroups = new HashSet();
for (Iterator iter = groups.iterator(); iter.hasNext();) {
org.beanfuse.security.Group group = (Group) iter.next();
while (null != group) {
allGroups.add(group);
group = group.getParent();
}
}
return allGroups;
}
public void setGroups(Set groups) {
this.groups = groups;
}
public String getFullname() {
return fullname;
}
public void setFullname(String fullname) {
this.fullname = fullname;
}
public org.beanfuse.security.User getCreator() {
return creator;
}
public void setCreator(org.beanfuse.security.User creator) {
this.creator = creator;
}
public UserCategory getDefaultCategory() {
return defaultCategory;
}
public void setDefaultCategory(UserCategory defaultCategory) {
this.defaultCategory = defaultCategory;
}
public Set getCategories() {
return categories;
}
public void setCategories(Set categories) {
this.categories = categories;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public boolean isAdmin() {
return admin;
}
public void setAdmin(boolean admin) {
this.admin = admin;
}
/**
* 1 激活
*/
public boolean isEnabled() {
return status == 1;
}
}