Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright (c) 2015 the original author or authors
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   * 	http://www.apache.org/licenses/LICENSE-2.0
   *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 
 package com.clusterra.iam.core.domain.model.user;
 
 import  org.springframework.data.annotation.CreatedBy;
 import  org.springframework.data.annotation.CreatedDate;
 import  org.springframework.data.annotation.LastModifiedBy;
 import  org.springframework.data.annotation.LastModifiedDate;
 
 import java.util.Date;

Author(s):
Alexander Fyodorov
Denis Kuchugurov
 
 @Table(name = "iam_user")
 public class User {
 
 
     @Id
     @GeneratedValue(generator = "base64")
     @GenericGenerator(name = "base64", strategy = "com.clusterra.hibernate.base64.Base64IdGenerator")
     private String id;
 
     @Basic
     @Column(unique = true)
     private String login;
 
     @Basic
     private String passwordHash;
 
     @Basic
     private UserStatus status;
 
     @Embedded
             @AttributeOverride(name = "token", column = @Column(name = "activationToken")),
             @AttributeOverride(name = "expiresAt", column = @Column(name = "activationTokenExpiresAt"))
     })
     private Token activationToken;
 
     @Embedded
             @AttributeOverride(name = "token", column = @Column(name = "passwordToken")),
             @AttributeOverride(name = "expiresAt", column = @Column(name = "passwordTokenExpiresAt"))
     })
     private Token passwordToken;
 
     @Embedded
     private Person person;
 
     @ManyToOne
     private Tenant tenant;
 
     @Basic
     @CreatedDate
     private Date createdDate;
 
     @Basic
     @CreatedBy
     private String createdByUserId;
 
     @Basic
     @LastModifiedDate
     private Date lastModifiedDate;
 
    @Basic
    @LastModifiedBy
    private String lastModifiedByUserId;
    @Basic
    private Date lastLoginDate;
    public User(String emailTenant tenant) {
        setTenant(tenant);
        this. = new Person(new ContactInformation(email));
        disable();
    }
    public void setActivationToken() {
        this. = new Token(DateTime.now().plusDays(5).toDate());
        this. = .;
    }
    public Token getActivationToken() {
        return ;
    }
    public void resetActivationToken() {
        this. = null;
    }
    public void resetPasswordToken() {
        this. = null;
    }
    public void setPasswordToken() {
        this. = new Token(DateTime.now().plusDays(5).toDate());
    }
    public Token getPasswordToken() {
        return ;
    }
    public void setCredentials(String loginString passwordHash) {
        setLogin(login);
        this. = passwordHash;
    }
    public void setFirstName(String firstName) {
        this..setFirstName(firstName);
    }
    public void setLastName(String lastName) {
        this..setLastName(lastName);
    }
    public void setAvatarId(String avatarId) {
        this..setAvatarId(avatarId);
    }
    public void updateLastLoginDate() {
        this. = new Date();
    }
    public Date getLastLoginDate() {
        return ;
    }
    public void changeEmail(String email) {
        this..getContactInformation().setEmail(email);
    }
    public String getId() {
        return ;
    }
    public String getLogin() {
        return ;
    }
    public String getPasswordHash() {
        return ;
    }
    public boolean isEnabled() {
        return .equals(.);
    }
    public Date getLastModifiedDate() {
        return ;
    }
    public void enable() {
        this. = .;
    }
    public void updatePassword(String passwordHash) {
        this. = passwordHash;
    }
    public void disable() {
        this. = .;
    }
    public Person getPerson() {
        return ;
    }
    public Tenant getTenant() {
        return ;
    }
    @Override
    public boolean equals(Object o) {
        if (this == oreturn true;
        if (o == null || getClass() != o.getClass()) return false;
        User user = (Usero;
        return .equals(user.id);
    }
    @Override
    public int hashCode() {
        return .hashCode();
    }
    public void setLogin(String login) {
        login = login.trim();
        Validate.notBlank(login"login is blank");
        Validate.matchesPattern(login"^(.){3,50}$""Login is incorrect");
        this. = login.toLowerCase();
    }
    private void setTenant(Tenant tenant) {
        Validate.notNull(tenant"tenant is null");
        this. = tenant;
    }
    protected User() {
    } // for ORM
    public Boolean hasActivationToken() {
        return  != null;
    }
New to GrepCode? Check out our FAQ X