package com.idega.core.accesscontrol.data; import java.sql.Date; import java.sql.SQLException; import com.idega.data.GenericEntity; import com.idega.data.MetaDataCapable; import com.idega.util.EncryptionType; import com.idega.util.IWTimestamp; /** * Title: User * Description: * Copyright: Copyright (c) 2001 * Company: idega.is * @author 2000 - idega team - <a href="mailto:gummi@idega.is">Gu�mundur �g�st S�mundsson</a> * @version 1.0 */ public class LoginInfoBMPBean extends com.idega.data.GenericEntity implements com.idega.core.accesscontrol.data.LoginInfo, MetaDataCapable { private static final String ENTITY_NAME = "IC_LOGIN_INFO"; private static final String COLUMN_ACCOUNT_ENABLED = "ACCOUNT_ENABLED"; private static final String COLUMN_MODIFIED = "MODIFIED"; private static final String COLUMN_DAYS_OF_VALITY = "DAYS_OF_VALITY"; private static final String COLUMN_PASSWD_EXPIRES = "PASSWD_EXPIRES"; private static final String COLUMN_ALLOWED_TO_CHANGE = "ALLOWED_TO_CHANGE"; private static final String COLUMN_CHANGE_NEXT_TIME = "CHANGE_NEXT_TIME"; private static final String COLUMN_ENCRYPTION_TYPE = "ENCRYPTION_TYPE"; private static final String META_DATA_ACCESS_CLOSED = "ACCESS_CLOSED"; private static final String META_DATA_FAILED_ATTEMPT_COUNT = "FAILED_ATTEMPT_COUNT"; public static String className = LoginInfo.class.getName(); public LoginInfoBMPBean() { super(); } public LoginInfoBMPBean(int id) throws SQLException { super(id); } public void initializeAttributes() { addAttribute(getIDColumnName(),"Notandi",true,true,Integer.class,"one-to-one",LoginTable.class); addAttribute(getAccountEnabledColumnName(),"A�gangur virkur",true,true,Boolean.class); addAttribute(getModifiedColumnName(),"S��ast breytt",true,true,java.sql.Date.class); addAttribute(getDaysOfValityColumnName(),"Dagar � gildi",true,true,Integer.class); addAttribute(getPasswordExpiresColumnName(),"Lykilor� rennur �t",true,true,Boolean.class); addAttribute(getAllowedToChangeColumnName(),"Notandi m� breyta",true,true,Boolean.class); addAttribute(getChangeNextTimeColumnName(),"Breyta n�st",true,true,Boolean.class); addAttribute(getEncryptionTypeColumnName(),"K��unara�fer�",true,true,String.class,30); addMetaDataRelationship(); setAsPrimaryKey(getIDColumnName(), true); } public void setDefaultValues(){ this.setAccountEnabled(Boolean.TRUE); this.setAllowedToChange(Boolean.TRUE); this.setChangeNextTime(Boolean.FALSE); this.setDaysOfVality(10000); this.setModified(IWTimestamp.RightNow()); this.setPasswordExpires(Boolean.FALSE); this.setEncriptionType(EncryptionType.MD5); } public String getEntityName() { return ENTITY_NAME; } public String getIDColumnName(){ return getLoginTableIdColumnName(); } public static LoginInfo getStaticInstance(){ return (LoginInfo)GenericEntity.getStaticInstance(className); } /* ColumNames begin */ public static String getLoginTableIdColumnName() { return com.idega.core.accesscontrol.data.LoginTableBMPBean.getStaticInstance().getIDColumnName(); } public static String getAccountEnabledColumnName() { return COLUMN_ACCOUNT_ENABLED; } public static String getModifiedColumnName(){ return COLUMN_MODIFIED; } public static String getDaysOfValityColumnName(){ return COLUMN_DAYS_OF_VALITY; } public static String getPasswordExpiresColumnName(){ return COLUMN_PASSWD_EXPIRES; } /** * @deprecated */ public static String getPasswNeverExpiresColumnName(){ return getPasswordExpiresColumnName(); } public static String getAllowedToChangeColumnName(){ return COLUMN_ALLOWED_TO_CHANGE; } public static String getChangeNextTimeColumnName(){ return COLUMN_CHANGE_NEXT_TIME; } public static String getEncryptionTypeColumnName(){ return COLUMN_ENCRYPTION_TYPE; } /* ColumNames end */ /* Getters begin */ public int getLoginTableId(){ return this.getIntColumnValue(getLoginTableIdColumnName()); } public boolean getAccountEnabled(){ return this.getBooleanColumnValue(getAccountEnabledColumnName()); } public IWTimestamp getModified(){ return new IWTimestamp((Date)this.getColumnValue(getModifiedColumnName())); } public int getDaysOfVality(){ return this.getIntColumnValue(getDaysOfValityColumnName()); } public boolean getPasswordExpires(){ return this.getBooleanColumnValue(getPasswordExpiresColumnName()); } /** * @deprecated */ public boolean getPasswNeverExpires(){ return !getPasswordExpires(); } public boolean getAllowedToChange(){ return this.getBooleanColumnValue(getAllowedToChangeColumnName()); } public boolean getChangeNextTime(){ return this.getBooleanColumnValue(getChangeNextTimeColumnName()); } public String getEncryprionType(){ return this.getStringColumnValue(getEncryptionTypeColumnName()); } public boolean getAccessClosed() { String value = getMetaData(META_DATA_ACCESS_CLOSED); return value!=null && value.equals("true"); } public int getFailedAttemptCount() { String value = getMetaData(META_DATA_FAILED_ATTEMPT_COUNT); return value==null?0:Integer.parseInt(value); } /* Getters end */ /* Setters begin */ public void setLoginTableId(int id){ this.setColumn(LoginInfoBMPBean.getLoginTableIdColumnName(),id); } public void setAccountEnabled(boolean value){ this.setColumn(getAccountEnabledColumnName(),value); } public void setAccountEnabled(Boolean value){ this.setColumn(getAccountEnabledColumnName(),value); } public void setModified(IWTimestamp date){ this.setColumn(getModifiedColumnName(),date.getSQLDate()); } public void setDaysOfVality(int days){ this.setColumn(getDaysOfValityColumnName(),days); } public void setAllowedToChange(boolean value){ this.setColumn(getAllowedToChangeColumnName(),value); } public void setAllowedToChange(Boolean value){ this.setColumn(getAllowedToChangeColumnName(),value); } public void setChangeNextTime(boolean value){ this.setColumn(getChangeNextTimeColumnName(),value); } public void setChangeNextTime(Boolean value){ this.setColumn(getChangeNextTimeColumnName(),value); } public void setPasswordExpires(boolean value){ this.setColumn(getPasswordExpiresColumnName(),value); } public void setPasswordExpires(Boolean value){ this.setColumn(getPasswordExpiresColumnName(),value); } /** * @deprecated */ public void setPasswNeverExpires(boolean value){ this.setColumn(getPasswNeverExpiresColumnName(),!value); } /** * @deprecated */ public void setPasswNeverExpires(Boolean value){ if(value != null){ this.setColumn(getPasswordExpiresColumnName(),!value.booleanValue()); }else{ this.setColumn(getPasswordExpiresColumnName(),value); } } public void setEncriptionType(String type){ this.setColumn(getEncryptionTypeColumnName(),type); } public boolean isLoginExpired(){ if(getPasswordExpires()){ IWTimestamp modified =getModified(); modified.addDays(this.getDaysOfVality()); return modified.isEarlierThan(IWTimestamp.RightNow()); } return false; } public boolean isLoginValid(){ return !isLoginExpired(); } public void setAccessClosed(boolean closed) { setMetaData(META_DATA_ACCESS_CLOSED, closed?"true":"false"); } public void setFailedAttemptCount(int attempts) { setMetaData(META_DATA_FAILED_ATTEMPT_COUNT, Integer.toString(attempts)); } /* Setters end */ //FOR BACKWARDS COMPATABILITY - TEMPORARY SOLUTION public void setID(int id){ super.setID(id); } }// Class end