User.java
/*
* GovWay - A customizable API Gateway
* https://govway.org
*
* Copyright (c) 2005-2024 Link.it srl (https://link.it).
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 3, as published by
* the Free Software Foundation.
*
* This program 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
package org.openspcoop2.web.lib.users.dao;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.openspcoop2.core.id.IDServizio;
import org.openspcoop2.core.id.IDSoggetto;
/**
* User
*
* @author Andrea Poli (apoli@link.it)
* @author Stefano Corallo (corallo@link.it)
* @author Sandra Giangrandi (sandra@link.it)
* @author $Author$
* @version $Rev$, $Date$
*
*/
public class User implements Serializable {
private Long id;
protected String login;
protected String password;
private Date lastUpdatePassword;
private boolean checkLastUpdatePassword;
private InterfaceType interfaceType;
private boolean permitInterfaceComplete = false;
private PermessiUtente permessi;
private List<String> protocolliSupportati;
private String protocolloSelezionatoPddConsole;
private String protocolloSelezionatoPddMonitor;
private String soggettoSelezionatoPddConsole;
private String soggettoSelezionatoPddMonitor;
private boolean permitAllSoggetti = false;
private boolean permitAllServizi = false;
private List<IDSoggetto> soggetti = new ArrayList<>();
private List<IDServizio> servizi = new ArrayList<>();
private List<Stato> stati = new ArrayList<>();
private List<UserPassword> precedentiPassword = new ArrayList<>();
public List<String> getProtocolliSupportati() {
return this.protocolliSupportati;
}
public String getProtocolliSupportatiAsString() {
if(this.protocolliSupportati==null || this.protocolliSupportati.size()<=0) {
return null;
}
else {
StringBuilder bf = new StringBuilder();
for (String p : this.protocolliSupportati) {
if(bf.length()>0) {
bf.append(",");
}
bf.append(p);
}
return bf.toString();
}
}
public void setProtocolliSupportati(List<String> protocolliSupportati) {
this.protocolliSupportati = protocolliSupportati;
}
public void addProtocolloSupportato(String protocolloSupportato) {
protocolloSupportato = protocolloSupportato.trim();
if(this.protocolliSupportati==null) {
this.protocolliSupportati = new ArrayList<>();
}
if(this.protocolliSupportati.contains(protocolloSupportato)==false) {
this.protocolliSupportati.add(protocolloSupportato);
}
}
public void setProtocolliSupportatiFromString(String v) {
if(v==null) {
this.protocolliSupportati=null;
return;
}
if(v.contains(",")) {
String [] tmp = v.split(",");
for (int i = 0; i < tmp.length; i++) {
String p = tmp[i].trim();
this.addProtocolloSupportato(p);
}
}
else {
this.addProtocolloSupportato(v);
}
}
public void clearProtocolliSupportati() {
if(this.protocolliSupportati==null) {
this.protocolliSupportati = new ArrayList<>();
} else
this.protocolliSupportati.clear();
}
public String getProtocolloSelezionatoPddConsole() {
return this.protocolloSelezionatoPddConsole;
}
public void setProtocolloSelezionatoPddConsole(String protocolloSelezionatoPddConsole) {
this.protocolloSelezionatoPddConsole = protocolloSelezionatoPddConsole;
}
public String getProtocolloSelezionatoPddMonitor() {
return this.protocolloSelezionatoPddMonitor;
}
public void setProtocolloSelezionatoPddMonitor(String protocolloSelezionatoPddMonitor) {
this.protocolloSelezionatoPddMonitor = protocolloSelezionatoPddMonitor;
}
public boolean isPermitInterfaceComplete() {
return this.permitInterfaceComplete;
}
public void setPermitInterfaceComplete(boolean permitInterfaceComplete) {
this.permitInterfaceComplete = permitInterfaceComplete;
}
public InterfaceType getInterfaceType() {
return this.interfaceType;
}
public void setInterfaceType(InterfaceType interfaceType) {
this.interfaceType = interfaceType;
}
public PermessiUtente getPermessi() {
return this.permessi;
}
public void setPermessi(PermessiUtente permessi) {
this.permessi = permessi;
}
public Long getId() {
if (this.id != null)
return this.id;
else
return Long.valueOf(-1);
}
public void setId(Long id) {
if (id != null)
this.id = id;
else
this.id = Long.valueOf(-1);
}
public String getLogin() {
if (this.login != null && ("".equals(this.login) == false)) {
return this.login.trim();
} else {
return null;
}
}
public void setLogin(String login) {
this.login = login;
}
public String getPassword() {
if (this.password != null && ("".equals(this.password) == false)) {
return this.password.trim();
} else {
return null;
}
}
public void setPassword(String password) {
this.password = password;
}
public boolean hasOnlyPermessiUtenti() {
if(this.permessi != null)
return (this.permessi.isUtenti() && !this.permessi.isAccordiCooperazione() && !this.permessi.isAuditing() && !this.permessi.isCodeMessaggi() && !this.permessi.isDiagnostica() && !this.permessi.isServizi() && !this.permessi.isSistema());
else
return false;
}
public List<IDSoggetto> getSoggetti() {
return this.soggetti;
}
public List<IDServizio> getServizi() {
return this.servizi;
}
public List<Stato> getStati() {
return this.stati;
}
public List<UserPassword> getPrecedentiPassword() {
return this.precedentiPassword;
}
public String getSoggettoSelezionatoPddConsole() {
return this.soggettoSelezionatoPddConsole;
}
public void setSoggettoSelezionatoPddConsole(String soggettoSelezionatoPddConsole) {
this.soggettoSelezionatoPddConsole = soggettoSelezionatoPddConsole;
}
public String getSoggettoSelezionatoPddMonitor() {
return this.soggettoSelezionatoPddMonitor;
}
public void setSoggettoSelezionatoPddMonitor(String soggettoSelezionatoPddMonitor) {
this.soggettoSelezionatoPddMonitor = soggettoSelezionatoPddMonitor;
}
public boolean isPermitAllSoggetti() {
return this.permitAllSoggetti;
}
public void setPermitAllSoggetti(boolean permitAllSoggetti) {
this.permitAllSoggetti = permitAllSoggetti;
}
public boolean isPermitAllServizi() {
return this.permitAllServizi;
}
public void setPermitAllServizi(boolean permitAllServizi) {
this.permitAllServizi = permitAllServizi;
}
public boolean isConfigurazioneValidaAbilitazioni() {
if(this.isConfigurazioneValidaSoggettiAbilitati()==false) {
return false;
}
if(this.isConfigurazioneValidaServiziAbilitati()==false) {
return false;
}
return true;
}
public boolean isConfigurazioneValidaSoggettiAbilitati() {
if( this.permessi.isDiagnostica() || this.permessi.isReportistica() ) {
if(this.permitAllSoggetti==false) {
if(this.soggetti==null || this.soggetti.size()<=0) {
return false;
}
}
}
return true;
}
public boolean isConfigurazioneValidaServiziAbilitati() {
if( this.permessi.isDiagnostica() || this.permessi.isReportistica() ) {
if(this.permitAllServizi==false) {
if(this.servizi==null || this.servizi.size()<=0) {
return false;
}
}
}
return true;
}
public Date getLastUpdatePassword() {
return this.lastUpdatePassword;
}
public void setLastUpdatePassword(Date lastUpdatePassword) {
this.lastUpdatePassword = lastUpdatePassword;
}
public boolean isCheckLastUpdatePassword() {
return this.checkLastUpdatePassword;
}
public void setCheckLastUpdatePassword(boolean checkLastUpdatePassword) {
this.checkLastUpdatePassword = checkLastUpdatePassword;
}
public String getReasonInvalidConfiguration() {
String msgErrore = "L'utente non possiede abilitazioni valide";
if(this.permitAllSoggetti==false) {
if(this.soggetti==null || this.soggetti.size()<=0) {
return msgErrore;
}
}
if( this.permessi.isDiagnostica() || this.permessi.isReportistica() ) {
if(this.permitAllServizi==false) {
if(this.servizi==null || this.servizi.size()<=0) {
return msgErrore;
}
}
}
return null;
}
private static final long serialVersionUID = 1L;
}