Package org.beangle.ems.security.model

Source Code of org.beangle.ems.security.model.UserBean

/* Copyright c 2005-2012.
* Licensed under GNU  LESSER General Public License, Version 3.
* http://www.gnu.org/licenses
*/
package org.beangle.ems.security.model;

import java.util.Date;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.ManyToMany;
import javax.persistence.OneToMany;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

import org.apache.commons.lang.builder.ToStringBuilder;
import org.beangle.commons.collection.CollectUtils;
import org.beangle.ems.security.Category;
import org.beangle.ems.security.GroupMember;
import org.beangle.ems.security.User;
import org.beangle.ems.security.restrict.RestrictionHolder;
import org.beangle.ems.security.restrict.UserRestriction;
import org.beangle.model.pojo.LongIdTimeObject;
import org.beangle.model.util.EntityUtils;

/**
* 系统中所有用户的账号、权限、状态信息.
*
* @author dell,chaostone 2005-9-26
*/
@Entity(name = "org.beangle.ems.security.User")
public class UserBean extends LongIdTimeObject implements User, RestrictionHolder<UserRestriction> {
  private static final long serialVersionUID = -3625902334772342380L;

  /** 名称 */
  @Size(max = 40)
  @NotNull
  @Column(unique = true)
  protected String name;

  /** 用户姓名 */
  @NotNull
  @Size(max = 50)
  private String fullname;

  /** 用户密文 */
  @Size(max = 100)
  @NotNull
  private String password;

  /** 用户联系email */
  @NotNull
  private String mail;

  /** 对应用户组 */
  @OneToMany(mappedBy = "user", cascade = CascadeType.ALL)
  private Set<GroupMember> groups = CollectUtils.newHashSet();

  /** 创建人 */
  private User creator;

  /** 种类 */
  @ManyToMany
  protected Set<Category> categories = CollectUtils.newHashSet();;

  /** 缺省类别 */
  @NotNull
  private Category defaultCategory;

  /**
   * 账户生效时间
   */
  @NotNull
  protected Date effectiveAt;

  /**
   * 账户失效时间
   */
  protected Date invalidAt;

  /**
   * 密码失效时间
   */
  protected Date passwordExpiredAt;

  @NotNull
  protected boolean enabled;

  /** 访问限制 */
  @OneToMany(mappedBy = "holder", cascade = CascadeType.ALL)
  protected Set<UserRestriction> restrictions = CollectUtils.newHashSet();

  /** 备注 */
  protected String remark;

  public UserBean() {
    super();
  }

  public UserBean(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 String getMail() {
    return mail;
  }

  public void setMail(String mail) {
    this.mail = mail;
  }

  public String getPassword() {
    return password;
  }

  public void setPassword(String password) {
    this.password = password;
  }

  public boolean isCategory(Long categoryId) {
    for (final Category category : categories) {
      if (category.getId().equals(categoryId)) return true;
    }
    return false;
  }

  public String getFullname() {
    return fullname;
  }

  public void setFullname(String fullname) {
    this.fullname = fullname;
  }

  public User getCreator() {
    return creator;
  }

  public void setCreator(User creator) {
    this.creator = creator;
  }

  public Category getDefaultCategory() {
    return defaultCategory;
  }

  public void setDefaultCategory(Category defaultCategory) {
    this.defaultCategory = defaultCategory;
  }

  /**
   * 是否账户过期
   */
  public boolean isAccountExpired() {
    return EntityUtils.isExpired(this);
  }

  /**
   * 是否密码过期
   */
  public boolean isPasswordExpired() {
    return (null != passwordExpiredAt && new Date().after(passwordExpiredAt));
  }

  public boolean isEnabled() {
    return enabled;
  }

  public void setEnabled(boolean enabled) {
    this.enabled = enabled;
  }

  public Set<GroupMember> getGroups() {
    return groups;
  }

  public void setGroups(Set<GroupMember> groups) {
    this.groups = groups;
  }

  public Set<Category> getCategories() {
    return categories;
  }

  public void setCategories(Set<Category> categories) {
    this.categories = categories;
  }

  public Set<UserRestriction> getRestrictions() {
    return restrictions;
  }

  public void setRestrictions(Set<UserRestriction> restrictions) {
    this.restrictions = restrictions;
  }

  public Date getEffectiveAt() {
    return effectiveAt;
  }

  public void setEffectiveAt(Date effectiveAt) {
    this.effectiveAt = effectiveAt;
  }

  public Date getInvalidAt() {
    return invalidAt;
  }

  public void setInvalidAt(Date invalidAt) {
    this.invalidAt = invalidAt;
  }

  public Date getPasswordExpiredAt() {
    return passwordExpiredAt;
  }

  public void setPasswordExpiredAt(Date passwordExpiredAt) {
    this.passwordExpiredAt = passwordExpiredAt;
  }

  public String toString() {
    return new ToStringBuilder(this).append("id", this.id).append("password", this.password)
        .append("name", this.getName()).toString();
  }
}
TOP

Related Classes of org.beangle.ems.security.model.UserBean

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.