/**
* TestCube is an enterprise Test management tool.
* Copyright (C) 2011 JatakaSource Ltd.
*
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* TestCube is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with TestCube. If not, see <http://www.gnu.org/licenses/>.
*/
package org.jatakasource.testcube.model.security;
import java.util.Collection;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Transient;
import org.hibernate.annotations.Cache;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import org.jatakasource.common.model.IDomainObject;
import org.jatakasource.common.model.security.UserPojo;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;
/**
* Entity implementation class for Entity: User Represents a user
*/
@Entity
@Table(name = "CUB_USERS")
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class User extends UserPojo implements UserDetails, IDomainObject<Long> {
private static final long serialVersionUID = -1181257203921809659L;
private static final String[][] UNIQUE_CONSTRAINTS = new String[][] { new String[] { User.FIELD_USERNAME } };
public static final String FIELD_USERNAME = "username";
public static final String FIELD_FIRSTNAME = "firstName";
public static final String FIELD_LASTNAME = "lastName";
public static final String FIELD_ADMINISTRATOR = "administrator";
public static final String FIELD_ENABLED = "enabled";
public static final String FIELD_CREDENTIALS_NON_EXPIRED = "credentialsNonExpired";
public static final String FIELD_ACCOUNT_NON_LOCKED = "accountNonLocked";
public static final String FIELD_ACCOUNT_NON_EXPIRED = "accountNonExpired";
public static final int FIELD_PERSONAL_ID_LENGTH = 20;
public static final int FIELD_PASSWORD_LENGTH = 100;
public static final int FIELD_PASSWORD_SLAT_LENGTH = 50;
private Collection<GrantedAuthority> grantedAuthority;
public User() {
super();
}
public User(Long id) {
super(id);
}
@Id
@SequenceGenerator(name = "CUB_USERS_SEQ", sequenceName = "CUB_USERS_SEQ", initialValue = 0)
@GeneratedValue(strategy = GenerationType.AUTO, generator = "CUB_USERS_SEQ")
public Long getId() {
return super.getId();
}
public void setId(Long id) {
super.setId(id);
}
@Column(unique = true, length = FIELD_NAME_LENGTH, nullable = false)
public String getUsername() {
return super.getUsername();
}
@Override
public void setUsername(String username) {
super.setUsername(username);
}
@Column(length = FIELD_NAME_LENGTH, nullable = false)
public String getFirstName() {
return super.getFirstName();
}
@Override
public void setFirstName(String firstName) {
super.setFirstName(firstName);
}
@Column(length = FIELD_NAME_LENGTH, nullable = false)
public String getLastName() {
return super.getLastName();
}
@Override
public void setLastName(String lastName) {
super.setLastName(lastName);
}
@Column(length = FIELD_PERSONAL_ID_LENGTH)
public String getPersonalId() {
return super.getPersonalId();
}
@Override
public void setPersonalId(String personalId) {
super.setPersonalId(personalId);
}
@Override
@Column(length = FIELD_PASSWORD_LENGTH, nullable = false)
public String getPassword() {
return super.getPassword();
}
@Override
public void setPassword(String password) {
super.setPassword(password);
}
@Transient
@Override
public String getConfirmpassword() {
return super.getConfirmpassword();
}
@Override
public void setConfirmpassword(String confirmpassword) {
super.setConfirmpassword(confirmpassword);
}
@Override
@Column
public boolean isAccountNonExpired() {
return super.isAccountNonExpired();
}
@Override
public void setAccountNonExpired(boolean accountNonExpired) {
super.setAccountNonExpired(accountNonExpired);
}
@Override
@Column
public boolean isAccountNonLocked() {
return super.isAccountNonLocked();
}
@Override
public void setAccountNonLocked(boolean accountNonLocked) {
super.setAccountNonLocked(accountNonLocked);
}
@Override
@Column
public boolean isCredentialsNonExpired() {
return super.isCredentialsNonExpired();
}
@Override
public void setCredentialsNonExpired(boolean credentialsNonExpired) {
super.setCredentialsNonExpired(credentialsNonExpired);
}
@Override
@Column(name = "isEnabled")
public boolean isEnabled() {
return super.isEnabled();
}
@Override
public void setEnabled(boolean enabled) {
super.setEnabled(enabled);
}
@Column
public boolean isAdministrator() {
return super.isAdministrator();
}
@Override
public void setAdministrator(boolean administrator) {
super.setAdministrator(administrator);
}
@Column(length = FIELD_PASSWORD_SLAT_LENGTH, nullable = false)
public String getPasswordSlat() {
return super.getPasswordSlat();
}
@Override
public void setPasswordSlat(String passwordSlat) {
super.setPasswordSlat(passwordSlat);
}
@Override
@Transient
public Collection<GrantedAuthority> getAuthorities() {
return grantedAuthority;
}
public void setAuthorities(Collection<GrantedAuthority> grantedAuthority) {
this.grantedAuthority = grantedAuthority;
}
@Override
public String[][] uniqueConstraints() {
return UNIQUE_CONSTRAINTS;
}
}