com.agiletec.aps.system.services.user.User Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of entando-engine Show documentation
Show all versions of entando-engine Show documentation
Entando Engine: an agile, modern and user-centric open source Portal platform.
/*
* Copyright 2015-Present Entando Inc. (http://www.entando.com) All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library 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.
*/
package com.agiletec.aps.system.services.user;
import java.util.Calendar;
import java.util.Date;
/**
* Rappresentazione di un utente.
* @author M.Diana - E.Santoboni
*/
public class User extends AbstractUser {
@Override
@Deprecated
public boolean isJapsUser() {
return this.isEntandoUser();
}
@Override
public boolean isEntandoUser() {
return true;
}
/**
* Crea una copia dell'oggetto user e lo restituisce.
* @return Oggetto di tipo User clonato.
*/
@Override
public Object clone() {
User cl = new User();
cl.setUsername(this.getUsername());
cl.setPassword("");
cl.setAuthorizations(this.getAuthorizations());
return cl;
}
public Date getCreationDate() {
return _creationDate;
}
protected void setCreationDate(Date creationDate) {
this._creationDate = creationDate;
}
public Date getLastAccess() {
return _lastAccess;
}
public void setLastAccess(Date lastAccess) {
this._lastAccess = lastAccess;
}
public Date getLastPasswordChange() {
return _lastPasswordChange;
}
public void setLastPasswordChange(Date lastPasswordChange) {
this._lastPasswordChange = lastPasswordChange;
}
@Override
public boolean isDisabled() {
return _disabled;
}
public void setDisabled(boolean disabled) {
this._disabled = disabled;
}
protected boolean isCheckCredentials() {
return _checkCredentials;
}
protected void setCheckCredentials(boolean checkCredentials) {
this._checkCredentials = checkCredentials;
}
public int getMaxMonthsSinceLastAccess() {
return _maxMonthsSinceLastAccess;
}
public void setMaxMonthsSinceLastAccess(int maxMonthsSinceLastAccess) {
this._maxMonthsSinceLastAccess = maxMonthsSinceLastAccess;
}
public int getMaxMonthsSinceLastPasswordChange() {
return _maxMonthsSinceLastPasswordChange;
}
public void setMaxMonthsSinceLastPasswordChange(int maxMonthsSinceLastPasswordChange) {
this._maxMonthsSinceLastPasswordChange = maxMonthsSinceLastPasswordChange;
}
@Override
public boolean isAccountNotExpired() {
if (!this.isCheckCredentials()) return true;
int maxDelay = this.getMaxMonthsSinceLastAccess();
if (maxDelay > 0) {
Date dateForCheck = (this.getLastAccess() != null ? this.getLastAccess() : this.getCreationDate());
if (null != dateForCheck) {
Calendar cal = Calendar.getInstance();
cal.setTime(dateForCheck);
cal.add(Calendar.MONTH, maxDelay);
Date expirationDate = cal.getTime();
return expirationDate.after(new Date());
}
}
return super.isAccountNotExpired();
}
@Override
public boolean isCredentialsNotExpired() {
if (!this.isCheckCredentials()) return true;
int maxDelay = this.getMaxMonthsSinceLastPasswordChange();
if (maxDelay > 0) {
Date dateForCheck = (this.getLastPasswordChange() != null ? this.getLastPasswordChange() : this.getCreationDate());
if (null != dateForCheck) {
Calendar cal = Calendar.getInstance();
cal.setTime(dateForCheck);
cal.add(Calendar.MONTH, maxDelay);
Date expirationDate = cal.getTime();
return expirationDate.after(new Date());
}
}
return super.isCredentialsNotExpired();
}
private Date _creationDate;//CAMBIARE IN REGISTRATION DATE
private Date _lastAccess;
private Date _lastPasswordChange;
private boolean _disabled;
private boolean _checkCredentials;
private int _maxMonthsSinceLastAccess = -1;
private int _maxMonthsSinceLastPasswordChange = -1;
}