Merge with d36c55018d81d9bd6c771488900167ad054eae3b
This commit is contained in:
commit
54db8b6742
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,8 @@
|
|||
UPDATE GL_JournalLine SET Account_ID = (SELECT Account_ID FROM C_ValidCombination vc WHERE vc.C_ValidCombination_ID = GL_JournalLine.C_ValidCombination_ID);
|
||||
;
|
||||
|
||||
UPDATE AD_System
|
||||
SET LastMigrationScriptApplied='858_IDEMPIERE-344_GLJournalImprovement.sql'
|
||||
WHERE LastMigrationScriptApplied<'858_IDEMPIERE-344_GLJournalImprovement.sql'
|
||||
OR LastMigrationScriptApplied IS NULL
|
||||
;
|
|
@ -0,0 +1,14 @@
|
|||
-- Aug 1, 2012 4:43:04 PM COT
|
||||
INSERT INTO AD_Message (MsgType,MsgText,AD_Message_ID,EntityType,AD_Message_UU,Value,IsActive,Updated,CreatedBy,UpdatedBy,AD_Client_ID,AD_Org_ID,Created) VALUES ('I','Select Role',200009,'D','15bdd556-85d4-4518-87e9-4ab298c49bb0','SelectRole','Y',TO_DATE('2012-08-01 16:43:01','YYYY-MM-DD HH24:MI:SS'),0,0,0,0,TO_DATE('2012-08-01 16:43:01','YYYY-MM-DD HH24:MI:SS'))
|
||||
;
|
||||
|
||||
-- Aug 1, 2012 4:43:04 PM COT
|
||||
INSERT INTO AD_Message_Trl (AD_Language,AD_Message_ID, MsgText,MsgTip, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Message_ID, t.MsgText,t.MsgTip, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Message t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Message_ID=200009 AND NOT EXISTS (SELECT * FROM AD_Message_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Message_ID=t.AD_Message_ID)
|
||||
;
|
||||
|
||||
UPDATE AD_System
|
||||
SET LastMigrationScriptApplied='859_IDEMPIERE-354.sql'
|
||||
WHERE LastMigrationScriptApplied<'859_IDEMPIERE-354.sql'
|
||||
OR LastMigrationScriptApplied IS NULL
|
||||
;
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
-- Aug 2, 2012 10:34:37 PM COT
|
||||
-- IDEMPIERE-344 Improve usability for GL Journal
|
||||
UPDATE AD_Field SET IsAllowCopy='N',Updated=TO_DATE('2012-08-02 22:34:37','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200189
|
||||
;
|
||||
|
||||
-- Aug 2, 2012 10:34:56 PM COT
|
||||
UPDATE AD_Field SET IsAllowCopy='N',Updated=TO_DATE('2012-08-02 22:34:56','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200205
|
||||
;
|
||||
|
||||
-- Aug 2, 2012 10:35:00 PM COT
|
||||
UPDATE AD_Field SET IsAllowCopy='N',Updated=TO_DATE('2012-08-02 22:35:00','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200206
|
||||
;
|
||||
|
||||
-- Aug 2, 2012 10:35:17 PM COT
|
||||
UPDATE AD_Field SET IsAllowCopy='N',Updated=TO_DATE('2012-08-02 22:35:17','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200203
|
||||
;
|
||||
|
||||
UPDATE AD_System
|
||||
SET LastMigrationScriptApplied='861_IDEMPIERE-344_GLJournalImprovement.sql'
|
||||
WHERE LastMigrationScriptApplied<'861_IDEMPIERE-344_GLJournalImprovement.sql'
|
||||
OR LastMigrationScriptApplied IS NULL
|
||||
;
|
||||
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,8 @@
|
|||
UPDATE GL_JournalLine SET Account_ID = (SELECT Account_ID FROM C_ValidCombination vc WHERE vc.C_ValidCombination_ID = GL_JournalLine.C_ValidCombination_ID);
|
||||
;
|
||||
|
||||
UPDATE AD_System
|
||||
SET LastMigrationScriptApplied='858_IDEMPIERE-344_GLJournalImprovement.sql'
|
||||
WHERE LastMigrationScriptApplied<'858_IDEMPIERE-344_GLJournalImprovement.sql'
|
||||
OR LastMigrationScriptApplied IS NULL
|
||||
;
|
|
@ -0,0 +1,14 @@
|
|||
-- Aug 1, 2012 4:43:04 PM COT
|
||||
INSERT INTO AD_Message (MsgType,MsgText,AD_Message_ID,EntityType,AD_Message_UU,Value,IsActive,Updated,CreatedBy,UpdatedBy,AD_Client_ID,AD_Org_ID,Created) VALUES ('I','Select Role',200009,'D','15bdd556-85d4-4518-87e9-4ab298c49bb0','SelectRole','Y',TO_TIMESTAMP('2012-08-01 16:43:01','YYYY-MM-DD HH24:MI:SS'),0,0,0,0,TO_TIMESTAMP('2012-08-01 16:43:01','YYYY-MM-DD HH24:MI:SS'))
|
||||
;
|
||||
|
||||
-- Aug 1, 2012 4:43:04 PM COT
|
||||
INSERT INTO AD_Message_Trl (AD_Language,AD_Message_ID, MsgText,MsgTip, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Message_ID, t.MsgText,t.MsgTip, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Message t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Message_ID=200009 AND NOT EXISTS (SELECT * FROM AD_Message_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Message_ID=t.AD_Message_ID)
|
||||
;
|
||||
|
||||
UPDATE AD_System
|
||||
SET LastMigrationScriptApplied='859_IDEMPIERE-354.sql'
|
||||
WHERE LastMigrationScriptApplied<'859_IDEMPIERE-354.sql'
|
||||
OR LastMigrationScriptApplied IS NULL
|
||||
;
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
-- Aug 2, 2012 10:34:37 PM COT
|
||||
-- IDEMPIERE-344 Improve usability for GL Journal
|
||||
UPDATE AD_Field SET IsAllowCopy='N',Updated=TO_TIMESTAMP('2012-08-02 22:34:37','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200189
|
||||
;
|
||||
|
||||
-- Aug 2, 2012 10:34:56 PM COT
|
||||
UPDATE AD_Field SET IsAllowCopy='N',Updated=TO_TIMESTAMP('2012-08-02 22:34:56','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200205
|
||||
;
|
||||
|
||||
-- Aug 2, 2012 10:35:00 PM COT
|
||||
UPDATE AD_Field SET IsAllowCopy='N',Updated=TO_TIMESTAMP('2012-08-02 22:35:00','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200206
|
||||
;
|
||||
|
||||
-- Aug 2, 2012 10:35:17 PM COT
|
||||
UPDATE AD_Field SET IsAllowCopy='N',Updated=TO_TIMESTAMP('2012-08-02 22:35:17','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200203
|
||||
;
|
||||
|
||||
UPDATE AD_System
|
||||
SET LastMigrationScriptApplied='861_IDEMPIERE-344_GLJournalImprovement.sql'
|
||||
WHERE LastMigrationScriptApplied<'861_IDEMPIERE-344_GLJournalImprovement.sql'
|
||||
OR LastMigrationScriptApplied IS NULL
|
||||
;
|
||||
|
|
@ -18,10 +18,11 @@ package org.compiere.process;
|
|||
|
||||
import java.util.logging.Level;
|
||||
|
||||
import org.compiere.model.MClient;
|
||||
import org.compiere.model.MPasswordRule;
|
||||
import org.compiere.model.MSysConfig;
|
||||
import org.compiere.model.MUser;
|
||||
import org.compiere.util.Util;
|
||||
|
||||
/**
|
||||
* Reset Password
|
||||
*
|
||||
|
@ -30,10 +31,12 @@ import org.compiere.util.Util;
|
|||
*/
|
||||
public class UserPassword extends SvrProcess
|
||||
{
|
||||
private int p_AD_User_ID = -1;
|
||||
private int p_AD_User_ID = -1;
|
||||
private String p_OldPassword = null;
|
||||
private String p_NewPassword = null;
|
||||
private String p_NewPasswordConfirm = null;
|
||||
private String p_NewEMail = null;
|
||||
private String p_NewEMailConfirm = null;
|
||||
private String p_NewEMailUser = null;
|
||||
private String p_NewEMailUserPW = null;
|
||||
|
||||
|
@ -60,6 +63,10 @@ public class UserPassword extends SvrProcess
|
|||
p_NewEMailUser = (String)para[i].getParameter();
|
||||
else if (name.equals("NewEMailUserPW"))
|
||||
p_NewEMailUserPW = (String)para[i].getParameter();
|
||||
else if (name.equals("NewPasswordConfirm"))
|
||||
p_NewPasswordConfirm=(String)para[i].getParameter();
|
||||
else if (name.equals("NewEMailConfirm"))
|
||||
p_NewEMailConfirm = (String)para[i].getParameter();
|
||||
else
|
||||
log.log(Level.SEVERE, "Unknown Parameter: " + name);
|
||||
}
|
||||
|
@ -77,7 +84,7 @@ public class UserPassword extends SvrProcess
|
|||
MUser user = MUser.get(getCtx(), p_AD_User_ID);
|
||||
MUser operator = MUser.get(getCtx(), getAD_User_ID());
|
||||
log.fine("User=" + user + ", Operator=" + operator);
|
||||
|
||||
|
||||
boolean hash_password = MSysConfig.getBooleanValue("USER_PASSWORD_HASH", false);
|
||||
|
||||
// Do we need a password ?
|
||||
|
@ -87,18 +94,43 @@ public class UserPassword extends SvrProcess
|
|||
|| p_AD_User_ID == 100 // change of SuperUser
|
||||
|| !operator.isAdministrator())
|
||||
throw new IllegalArgumentException("@OldPasswordMandatory@");
|
||||
}
|
||||
// is entered Password correct ?
|
||||
else {
|
||||
if (hash_password){
|
||||
if (!user.authenticateHash(p_OldPassword) )
|
||||
} else {
|
||||
// is entered Password correct ?
|
||||
if (hash_password) {
|
||||
if (!user.authenticateHash(p_OldPassword))
|
||||
throw new IllegalArgumentException("@OldPasswordNoMatch@");
|
||||
} else{
|
||||
} else {
|
||||
if (!p_OldPassword.equals(user.getPassword()))
|
||||
throw new IllegalArgumentException("@OldPasswordNoMatch@");
|
||||
}
|
||||
}
|
||||
|
||||
// new password confirm
|
||||
if (!Util.isEmpty(p_NewPassword)) {
|
||||
if (Util.isEmpty(p_NewPasswordConfirm)) {
|
||||
throw new IllegalArgumentException("@NewPasswordConfirmMandatory@");
|
||||
} else {
|
||||
if (!p_NewPassword.equals(p_NewPasswordConfirm)) {
|
||||
throw new IllegalArgumentException("@PasswordNotMatch@");
|
||||
} else {
|
||||
String msg = validate();
|
||||
if (msg != null) {
|
||||
throw new IllegalArgumentException(msg);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!Util.isEmpty(p_NewEMailUserPW)) {
|
||||
if (Util.isEmpty(p_NewEMailConfirm)) {
|
||||
throw new IllegalArgumentException("@NewEmailConfirmMandatory@");
|
||||
} else {
|
||||
if (!p_NewEMailUserPW.equals(p_NewEMailConfirm)) {
|
||||
throw new IllegalArgumentException("@NewEmailNotMatch@");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!Util.isEmpty(p_NewPassword))
|
||||
user.setPassword(p_NewPassword);
|
||||
if (!Util.isEmpty(p_NewEMail))
|
||||
|
@ -112,4 +144,21 @@ public class UserPassword extends SvrProcess
|
|||
return "OK";
|
||||
} // doIt
|
||||
|
||||
|
||||
private String validate()
|
||||
{
|
||||
MClient client=new MClient(getCtx(), getAD_Client_ID(), get_TrxName());
|
||||
int ad_passwordrule_id = client.getAD_PasswordRule_ID();
|
||||
|
||||
String error = null;
|
||||
if (ad_passwordrule_id > 0)
|
||||
{
|
||||
MPasswordRule rule =new MPasswordRule(getCtx(), ad_passwordrule_id, get_TrxName());
|
||||
error = rule.validate(p_NewPassword);
|
||||
}
|
||||
|
||||
return error;
|
||||
}
|
||||
|
||||
} // UserPassword
|
||||
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry exported="true" kind="lib" path="vt-crypt-2.1.4.jar"/>
|
||||
<classpathentry exported="true" kind="lib" path="vt-dictionary-3.0.jar"/>
|
||||
<classpathentry exported="true" kind="lib" path="vt-password-3.1.1.jar"/>
|
||||
<classpathentry exported="true" kind="lib" path="groovy-all-1.7.5.jar"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6">
|
||||
<accessrules>
|
||||
|
|
|
@ -15,7 +15,10 @@ Bundle-ClassPath: base.jar,
|
|||
jcommon-1.0.16.jar,
|
||||
jfreechart-1.0.13.jar,
|
||||
jnlp.jar,
|
||||
groovy-all-1.7.5.jar
|
||||
groovy-all-1.7.5.jar,
|
||||
vt-crypt-2.1.4.jar,
|
||||
vt-dictionary-3.0.jar,
|
||||
vt-password-3.1.1.jar
|
||||
Export-Package: bsh,
|
||||
bsh.classpath,
|
||||
bsh.collection,
|
||||
|
|
|
@ -13,7 +13,10 @@ bin.includes = META-INF/,\
|
|||
jfreechart-1.0.13.jar,\
|
||||
jnlp.jar,\
|
||||
OSGI-INF/,\
|
||||
groovy-all-1.7.5.jar
|
||||
groovy-all-1.7.5.jar,\
|
||||
vt-crypt-2.1.4.jar,\
|
||||
vt-dictionary-3.0.jar,\
|
||||
vt-password-3.1.1.jar
|
||||
output.base.jar = build/
|
||||
source.base.jar = src/
|
||||
src.includes = schema/
|
||||
|
|
|
@ -1581,6 +1581,13 @@ public abstract class Doc
|
|||
*/
|
||||
public int getGL_Category_ID()
|
||||
{
|
||||
int index = p_po.get_ColumnIndex("GL_Category_ID");
|
||||
if (index != -1)
|
||||
{
|
||||
Integer ii = (Integer)p_po.get_Value(index);
|
||||
if (ii != null)
|
||||
return ii.intValue();
|
||||
}
|
||||
return m_GL_Category_ID;
|
||||
} // getGL_Category_ID
|
||||
|
||||
|
|
|
@ -31,7 +31,7 @@ public interface I_AD_Client
|
|||
public static final String Table_Name = "AD_Client";
|
||||
|
||||
/** AD_Table_ID=112 */
|
||||
public static final int Table_ID = MTable.getTable_ID(Table_Name);
|
||||
public static final int Table_ID = 112;
|
||||
|
||||
KeyNamePair Model = new KeyNamePair(Table_ID, Table_Name);
|
||||
|
||||
|
@ -49,6 +49,15 @@ public interface I_AD_Client
|
|||
*/
|
||||
public int getAD_Client_ID();
|
||||
|
||||
/** Column name AD_Client_UU */
|
||||
public static final String COLUMNNAME_AD_Client_UU = "AD_Client_UU";
|
||||
|
||||
/** Set AD_Client_UU */
|
||||
public void setAD_Client_UU (String AD_Client_UU);
|
||||
|
||||
/** Get AD_Client_UU */
|
||||
public String getAD_Client_UU();
|
||||
|
||||
/** Column name AD_Language */
|
||||
public static final String COLUMNNAME_AD_Language = "AD_Language";
|
||||
|
||||
|
@ -75,6 +84,17 @@ public interface I_AD_Client
|
|||
*/
|
||||
public int getAD_Org_ID();
|
||||
|
||||
/** Column name AD_PasswordRule_ID */
|
||||
public static final String COLUMNNAME_AD_PasswordRule_ID = "AD_PasswordRule_ID";
|
||||
|
||||
/** Set AD_PasswordRule */
|
||||
public void setAD_PasswordRule_ID (int AD_PasswordRule_ID);
|
||||
|
||||
/** Get AD_PasswordRule */
|
||||
public int getAD_PasswordRule_ID();
|
||||
|
||||
public org.compiere.model.I_AD_PasswordRule getAD_PasswordRule() throws RuntimeException;
|
||||
|
||||
/** Column name AD_ReplicationStrategy_ID */
|
||||
public static final String COLUMNNAME_AD_ReplicationStrategy_ID = "AD_ReplicationStrategy_ID";
|
||||
|
||||
|
@ -88,7 +108,7 @@ public interface I_AD_Client
|
|||
*/
|
||||
public int getAD_ReplicationStrategy_ID();
|
||||
|
||||
public I_AD_ReplicationStrategy getAD_ReplicationStrategy() throws RuntimeException;
|
||||
public org.compiere.model.I_AD_ReplicationStrategy getAD_ReplicationStrategy() throws RuntimeException;
|
||||
|
||||
/** Column name AutoArchive */
|
||||
public static final String COLUMNNAME_AutoArchive = "AutoArchive";
|
||||
|
@ -171,19 +191,6 @@ public interface I_AD_Client
|
|||
*/
|
||||
public boolean isActive();
|
||||
|
||||
/** Column name IsCostImmediate */
|
||||
public static final String COLUMNNAME_IsCostImmediate = "IsCostImmediate";
|
||||
|
||||
/** Set Cost Immediately.
|
||||
* Update Costs immediately for testing
|
||||
*/
|
||||
public void setIsCostImmediate (boolean IsCostImmediate);
|
||||
|
||||
/** Get Cost Immediately.
|
||||
* Update Costs immediately for testing
|
||||
*/
|
||||
public boolean isCostImmediate();
|
||||
|
||||
/** Column name IsMultiLingualDocument */
|
||||
public static final String COLUMNNAME_IsMultiLingualDocument = "IsMultiLingualDocument";
|
||||
|
||||
|
|
|
@ -0,0 +1,333 @@
|
|||
/******************************************************************************
|
||||
* Product: Adempiere ERP & CRM Smart Business Solution *
|
||||
* Copyright (C) 1999-2007 ComPiere, Inc. All Rights Reserved. *
|
||||
* This program is free software, you can redistribute it and/or modify it *
|
||||
* under the terms version 2 of the GNU General Public License 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, write to the Free Software Foundation, Inc., *
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
|
||||
* For the text or an alternative of this public license, you may reach us *
|
||||
* ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA *
|
||||
* or via info@compiere.org or http://www.compiere.org/license.html *
|
||||
*****************************************************************************/
|
||||
package org.compiere.model;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.sql.Timestamp;
|
||||
import org.compiere.util.KeyNamePair;
|
||||
|
||||
/** Generated Interface for AD_PasswordRule
|
||||
* @author Adempiere (generated)
|
||||
* @version Release 3.6.0LTS
|
||||
*/
|
||||
public interface I_AD_PasswordRule
|
||||
{
|
||||
|
||||
/** TableName=AD_PasswordRule */
|
||||
public static final String Table_Name = "AD_PasswordRule";
|
||||
|
||||
/** AD_Table_ID=200005 */
|
||||
public static final int Table_ID = 200005;
|
||||
|
||||
KeyNamePair Model = new KeyNamePair(Table_ID, Table_Name);
|
||||
|
||||
/** AccessLevel = 4 - System
|
||||
*/
|
||||
BigDecimal accessLevel = BigDecimal.valueOf(4);
|
||||
|
||||
/** Load Meta Data */
|
||||
|
||||
/** Column name AD_Client_ID */
|
||||
public static final String COLUMNNAME_AD_Client_ID = "AD_Client_ID";
|
||||
|
||||
/** Get Client.
|
||||
* Client/Tenant for this installation.
|
||||
*/
|
||||
public int getAD_Client_ID();
|
||||
|
||||
/** Column name AD_Org_ID */
|
||||
public static final String COLUMNNAME_AD_Org_ID = "AD_Org_ID";
|
||||
|
||||
/** Set Organization.
|
||||
* Organizational entity within client
|
||||
*/
|
||||
public void setAD_Org_ID (int AD_Org_ID);
|
||||
|
||||
/** Get Organization.
|
||||
* Organizational entity within client
|
||||
*/
|
||||
public int getAD_Org_ID();
|
||||
|
||||
/** Column name AD_PasswordRule_ID */
|
||||
public static final String COLUMNNAME_AD_PasswordRule_ID = "AD_PasswordRule_ID";
|
||||
|
||||
/** Set AD_PasswordRule */
|
||||
public void setAD_PasswordRule_ID (int AD_PasswordRule_ID);
|
||||
|
||||
/** Get AD_PasswordRule */
|
||||
public int getAD_PasswordRule_ID();
|
||||
|
||||
/** Column name AD_PasswordRule_UU */
|
||||
public static final String COLUMNNAME_AD_PasswordRule_UU = "AD_PasswordRule_UU";
|
||||
|
||||
/** Set AD_PasswordRule_UU */
|
||||
public void setAD_PasswordRule_UU (String AD_PasswordRule_UU);
|
||||
|
||||
/** Get AD_PasswordRule_UU */
|
||||
public String getAD_PasswordRule_UU();
|
||||
|
||||
/** Column name AlphabeticalCharacter */
|
||||
public static final String COLUMNNAME_AlphabeticalCharacter = "AlphabeticalCharacter";
|
||||
|
||||
/** Set Alphabetical Character */
|
||||
public void setAlphabeticalCharacter (int AlphabeticalCharacter);
|
||||
|
||||
/** Get Alphabetical Character */
|
||||
public int getAlphabeticalCharacter();
|
||||
|
||||
/** Column name AlphabeticalSequence */
|
||||
public static final String COLUMNNAME_AlphabeticalSequence = "AlphabeticalSequence";
|
||||
|
||||
/** Set Alphabetical Sequence.
|
||||
* Allow alphabetical sequences
|
||||
*/
|
||||
public void setAlphabeticalSequence (boolean AlphabeticalSequence);
|
||||
|
||||
/** Get Alphabetical Sequence.
|
||||
* Allow alphabetical sequences
|
||||
*/
|
||||
public boolean isAlphabeticalSequence();
|
||||
|
||||
/** Column name Created */
|
||||
public static final String COLUMNNAME_Created = "Created";
|
||||
|
||||
/** Get Created.
|
||||
* Date this record was created
|
||||
*/
|
||||
public Timestamp getCreated();
|
||||
|
||||
/** Column name CreatedBy */
|
||||
public static final String COLUMNNAME_CreatedBy = "CreatedBy";
|
||||
|
||||
/** Get Created By.
|
||||
* User who created this records
|
||||
*/
|
||||
public int getCreatedBy();
|
||||
|
||||
/** Column name DictMatchBackwards */
|
||||
public static final String COLUMNNAME_DictMatchBackwards = "DictMatchBackwards";
|
||||
|
||||
/** Set Match Backwards of Dictionary.
|
||||
* Match dictionary words backwards
|
||||
*/
|
||||
public void setDictMatchBackwards (boolean DictMatchBackwards);
|
||||
|
||||
/** Get Match Backwards of Dictionary.
|
||||
* Match dictionary words backwards
|
||||
*/
|
||||
public boolean isDictMatchBackwards();
|
||||
|
||||
/** Column name DictWordLength */
|
||||
public static final String COLUMNNAME_DictWordLength = "DictWordLength";
|
||||
|
||||
/** Set Word Length Dictionary */
|
||||
public void setDictWordLength (int DictWordLength);
|
||||
|
||||
/** Get Word Length Dictionary */
|
||||
public int getDictWordLength();
|
||||
|
||||
/** Column name DigitCharacter */
|
||||
public static final String COLUMNNAME_DigitCharacter = "DigitCharacter";
|
||||
|
||||
/** Set Digit Character.
|
||||
* Require at least # digit in passwords
|
||||
*/
|
||||
public void setDigitCharacter (int DigitCharacter);
|
||||
|
||||
/** Get Digit Character.
|
||||
* Require at least # digit in passwords
|
||||
*/
|
||||
public int getDigitCharacter();
|
||||
|
||||
/** Column name IsActive */
|
||||
public static final String COLUMNNAME_IsActive = "IsActive";
|
||||
|
||||
/** Set Active.
|
||||
* The record is active in the system
|
||||
*/
|
||||
public void setIsActive (boolean IsActive);
|
||||
|
||||
/** Get Active.
|
||||
* The record is active in the system
|
||||
*/
|
||||
public boolean isActive();
|
||||
|
||||
/** Column name LowercaseCharacter */
|
||||
public static final String COLUMNNAME_LowercaseCharacter = "LowercaseCharacter";
|
||||
|
||||
/** Set Lowercase Character.
|
||||
* Require at least # lower case char
|
||||
*/
|
||||
public void setLowercaseCharacter (int LowercaseCharacter);
|
||||
|
||||
/** Get Lowercase Character.
|
||||
* Require at least # lower case char
|
||||
*/
|
||||
public int getLowercaseCharacter();
|
||||
|
||||
/** Column name MaxLength */
|
||||
public static final String COLUMNNAME_MaxLength = "MaxLength";
|
||||
|
||||
/** Set Maximum Length.
|
||||
* Maximum Length of Data
|
||||
*/
|
||||
public void setMaxLength (int MaxLength);
|
||||
|
||||
/** Get Maximum Length.
|
||||
* Maximum Length of Data
|
||||
*/
|
||||
public int getMaxLength();
|
||||
|
||||
/** Column name MinLength */
|
||||
public static final String COLUMNNAME_MinLength = "MinLength";
|
||||
|
||||
/** Set Min Length */
|
||||
public void setMinLength (int MinLength);
|
||||
|
||||
/** Get Min Length */
|
||||
public int getMinLength();
|
||||
|
||||
/** Column name Name */
|
||||
public static final String COLUMNNAME_Name = "Name";
|
||||
|
||||
/** Set Name.
|
||||
* Alphanumeric identifier of the entity
|
||||
*/
|
||||
public void setName (String Name);
|
||||
|
||||
/** Get Name.
|
||||
* Alphanumeric identifier of the entity
|
||||
*/
|
||||
public String getName();
|
||||
|
||||
/** Column name NonAlphaNumericCharacter */
|
||||
public static final String COLUMNNAME_NonAlphaNumericCharacter = "NonAlphaNumericCharacter";
|
||||
|
||||
/** Set Non Alpha Numeric Character.
|
||||
* Require at least # non-alphanumeric char
|
||||
*/
|
||||
public void setNonAlphaNumericCharacter (int NonAlphaNumericCharacter);
|
||||
|
||||
/** Get Non Alpha Numeric Character.
|
||||
* Require at least # non-alphanumeric char
|
||||
*/
|
||||
public int getNonAlphaNumericCharacter();
|
||||
|
||||
/** Column name NumericalSequence */
|
||||
public static final String COLUMNNAME_NumericalSequence = "NumericalSequence";
|
||||
|
||||
/** Set Numerical Sequence.
|
||||
* Allow numerical sequences of length #
|
||||
*/
|
||||
public void setNumericalSequence (int NumericalSequence);
|
||||
|
||||
/** Get Numerical Sequence.
|
||||
* Allow numerical sequences of length #
|
||||
*/
|
||||
public int getNumericalSequence();
|
||||
|
||||
/** Column name PathDictionary */
|
||||
public static final String COLUMNNAME_PathDictionary = "PathDictionary";
|
||||
|
||||
/** Set Path Dictionary */
|
||||
public void setPathDictionary (String PathDictionary);
|
||||
|
||||
/** Get Path Dictionary */
|
||||
public String getPathDictionary();
|
||||
|
||||
/** Column name QWERTYSequence */
|
||||
public static final String COLUMNNAME_QWERTYSequence = "QWERTYSequence";
|
||||
|
||||
/** Set QWERTY Sequence.
|
||||
* Allow QWERTY sequences
|
||||
*/
|
||||
public void setQWERTYSequence (boolean QWERTYSequence);
|
||||
|
||||
/** Get QWERTY Sequence.
|
||||
* Allow QWERTY sequences
|
||||
*/
|
||||
public boolean isQWERTYSequence();
|
||||
|
||||
/** Column name RepeatCharacterRegex */
|
||||
public static final String COLUMNNAME_RepeatCharacterRegex = "RepeatCharacterRegex";
|
||||
|
||||
/** Set Repeat Character Regex */
|
||||
public void setRepeatCharacterRegex (int RepeatCharacterRegex);
|
||||
|
||||
/** Get Repeat Character Regex */
|
||||
public int getRepeatCharacterRegex();
|
||||
|
||||
/** Column name Updated */
|
||||
public static final String COLUMNNAME_Updated = "Updated";
|
||||
|
||||
/** Get Updated.
|
||||
* Date this record was updated
|
||||
*/
|
||||
public Timestamp getUpdated();
|
||||
|
||||
/** Column name UpdatedBy */
|
||||
public static final String COLUMNNAME_UpdatedBy = "UpdatedBy";
|
||||
|
||||
/** Get Updated By.
|
||||
* User who updated this records
|
||||
*/
|
||||
public int getUpdatedBy();
|
||||
|
||||
/** Column name UppercaseCharacter */
|
||||
public static final String COLUMNNAME_UppercaseCharacter = "UppercaseCharacter";
|
||||
|
||||
/** Set Uppercase Character.
|
||||
* Require at least # upper case char
|
||||
*/
|
||||
public void setUppercaseCharacter (int UppercaseCharacter);
|
||||
|
||||
/** Get Uppercase Character.
|
||||
* Require at least # upper case char
|
||||
*/
|
||||
public int getUppercaseCharacter();
|
||||
|
||||
/** Column name UserName */
|
||||
public static final String COLUMNNAME_UserName = "UserName";
|
||||
|
||||
/** Set Registered EMail.
|
||||
* Email of the responsible for the System
|
||||
*/
|
||||
public void setUserName (boolean UserName);
|
||||
|
||||
/** Get Registered EMail.
|
||||
* Email of the responsible for the System
|
||||
*/
|
||||
public boolean isUserName();
|
||||
|
||||
/** Column name UsingDictionary */
|
||||
public static final String COLUMNNAME_UsingDictionary = "UsingDictionary";
|
||||
|
||||
/** Set Using Dictionary */
|
||||
public void setUsingDictionary (boolean UsingDictionary);
|
||||
|
||||
/** Get Using Dictionary */
|
||||
public boolean isUsingDictionary();
|
||||
|
||||
/** Column name whitespace */
|
||||
public static final String COLUMNNAME_whitespace = "whitespace";
|
||||
|
||||
/** Set whitespace */
|
||||
public void setwhitespace (boolean whitespace);
|
||||
|
||||
/** Get whitespace */
|
||||
public boolean iswhitespace();
|
||||
}
|
|
@ -136,7 +136,6 @@ public class MClient extends X_AD_Client
|
|||
setAutoArchive(AUTOARCHIVE_None);
|
||||
setMMPolicy (MMPOLICY_FiFo); // F
|
||||
setIsPostImmediate(false);
|
||||
setIsCostImmediate(false);
|
||||
}
|
||||
else
|
||||
load(get_TrxName());
|
||||
|
|
|
@ -0,0 +1,186 @@
|
|||
/******************************************************************************
|
||||
* Product: iDempiere ERP & CRM Smart Business Solution *
|
||||
* Copyright (C) Trek Global All Rights Reserved. *
|
||||
* This program is free software; you can redistribute it and/or modify it *
|
||||
* under the terms version 2 of the GNU General Public License 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, write to the Free Software Foundation, Inc., *
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
|
||||
* *
|
||||
* @author Juliana Corredor, jcorredor@trekglobal.com *
|
||||
* IDEMPIERE-221 Password reset validation *
|
||||
* http://jira.idempiere.com/browse/IDEMPIERE-221 *
|
||||
* *
|
||||
*****************************************************************************/
|
||||
package org.compiere.model;
|
||||
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileReader;
|
||||
import java.io.IOException;
|
||||
import java.sql.ResultSet;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Properties;
|
||||
|
||||
import edu.vt.middleware.dictionary.ArrayWordList;
|
||||
import edu.vt.middleware.dictionary.WordListDictionary;
|
||||
import edu.vt.middleware.dictionary.WordLists;
|
||||
import edu.vt.middleware.dictionary.sort.ArraysSort;
|
||||
import edu.vt.middleware.password.AlphabeticalSequenceRule;
|
||||
import edu.vt.middleware.password.CharacterCharacteristicsRule;
|
||||
import edu.vt.middleware.password.DictionarySubstringRule;
|
||||
import edu.vt.middleware.password.DigitCharacterRule;
|
||||
import edu.vt.middleware.password.LengthRule;
|
||||
import edu.vt.middleware.password.LowercaseCharacterRule;
|
||||
import edu.vt.middleware.password.NonAlphanumericCharacterRule;
|
||||
import edu.vt.middleware.password.NumericalSequenceRule;
|
||||
import edu.vt.middleware.password.Password;
|
||||
import edu.vt.middleware.password.PasswordData;
|
||||
import edu.vt.middleware.password.PasswordValidator;
|
||||
import edu.vt.middleware.password.QwertySequenceRule;
|
||||
import edu.vt.middleware.password.RepeatCharacterRegexRule;
|
||||
import edu.vt.middleware.password.Rule;
|
||||
import edu.vt.middleware.password.RuleResult;
|
||||
import edu.vt.middleware.password.UppercaseCharacterRule;
|
||||
import edu.vt.middleware.password.WhitespaceRule;
|
||||
|
||||
/**
|
||||
* @author juliana
|
||||
*
|
||||
*/
|
||||
public class MPasswordRule extends X_AD_PasswordRule {
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 6369065572886752718L;
|
||||
|
||||
/**
|
||||
* @param ctx
|
||||
* @param AD_PasswordRule_ID
|
||||
* @param trxName
|
||||
*/
|
||||
public MPasswordRule(Properties ctx, int AD_PasswordRule_ID, String trxName) {
|
||||
super(ctx, AD_PasswordRule_ID, trxName);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param ctx
|
||||
* @param rs
|
||||
* @param trxName
|
||||
*/
|
||||
public MPasswordRule(Properties ctx, ResultSet rs, String trxName) {
|
||||
super(ctx, rs, trxName);
|
||||
}
|
||||
|
||||
public String validate(String newPassword) {
|
||||
WhitespaceRule whitespaceRule;
|
||||
AlphabeticalSequenceRule alphaSeqRule;
|
||||
NumericalSequenceRule numSeqRule;
|
||||
QwertySequenceRule qwertySeqRule;
|
||||
RepeatCharacterRegexRule repeatRule;
|
||||
|
||||
ArrayList<Rule> ruleList = new ArrayList<Rule>();
|
||||
|
||||
if (getMinLength()>0 || getMaxLength()>0) {
|
||||
LengthRule lengthRule = new LengthRule();
|
||||
if (getMinLength()>0)
|
||||
lengthRule.setMinimumLength(getMinLength());
|
||||
if (getMaxLength()>0)
|
||||
lengthRule.setMaximumLength(getMaxLength());
|
||||
ruleList.add(lengthRule);
|
||||
}
|
||||
|
||||
if (iswhitespace()) {
|
||||
whitespaceRule = new WhitespaceRule();
|
||||
ruleList.add(whitespaceRule);
|
||||
}
|
||||
// control allowed characters
|
||||
CharacterCharacteristicsRule charRule = new CharacterCharacteristicsRule();
|
||||
|
||||
if (getDigitCharacter()>0) {
|
||||
// require at least 1 digit in passwords
|
||||
charRule.getRules().add(new DigitCharacterRule(getDigitCharacter()));
|
||||
}
|
||||
if (getNonAlphaNumericCharacter()>0) {
|
||||
// require at least 1 non-alphanumeric char
|
||||
charRule.getRules().add(new NonAlphanumericCharacterRule(getNonAlphaNumericCharacter()));
|
||||
}
|
||||
if (getUppercaseCharacter()>0) {
|
||||
charRule.getRules().add(new UppercaseCharacterRule(getUppercaseCharacter()));
|
||||
}
|
||||
|
||||
if (getLowercaseCharacter()>0) {
|
||||
charRule.getRules().add(new LowercaseCharacterRule(getLowercaseCharacter()));
|
||||
}
|
||||
ruleList.add(charRule);
|
||||
|
||||
if (isAlphabeticalSequence()) {
|
||||
alphaSeqRule=new AlphabeticalSequenceRule();
|
||||
ruleList.add(alphaSeqRule);
|
||||
}
|
||||
|
||||
if (getNumericalSequence()>0) {
|
||||
numSeqRule = new NumericalSequenceRule(getNumericalSequence(),true);
|
||||
ruleList.add(numSeqRule);
|
||||
}
|
||||
if (isQWERTYSequence()) {
|
||||
qwertySeqRule = new QwertySequenceRule();
|
||||
ruleList.add(qwertySeqRule);
|
||||
}
|
||||
|
||||
if (getRepeatCharacterRegex()>0) {
|
||||
repeatRule = new RepeatCharacterRegexRule(getRepeatCharacterRegex());
|
||||
ruleList.add(repeatRule);
|
||||
}
|
||||
|
||||
if (isUsingDictionary()) {
|
||||
if (getPathDictionary().length()>0) {
|
||||
try {
|
||||
ArrayWordList awl = WordLists.createFromReader(
|
||||
new FileReader[] {new FileReader(getPathDictionary())},
|
||||
true,
|
||||
new ArraysSort());
|
||||
|
||||
WordListDictionary dict = new WordListDictionary(awl);
|
||||
DictionarySubstringRule dictRule = new DictionarySubstringRule(dict);
|
||||
|
||||
if (getDictWordLength()>0) {
|
||||
dictRule.setWordLength(getDictWordLength()); // size of words to check in the password
|
||||
}
|
||||
else{
|
||||
dictRule.setWordLength(DictionarySubstringRule.DEFAULT_WORD_LENGTH);
|
||||
}
|
||||
|
||||
if (isDictMatchBackwards()) {
|
||||
dictRule.setMatchBackwards(true); // match dictionary words backwards
|
||||
}
|
||||
ruleList.add(dictRule);
|
||||
|
||||
} catch (FileNotFoundException e) {
|
||||
return "Could not find dictionary file: " + e.getMessage();
|
||||
} catch (IOException e) {
|
||||
return "Could not read dictionary file: " + e.getMessage();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if (!ruleList.isEmpty()) {
|
||||
PasswordValidator validator = new PasswordValidator(ruleList);
|
||||
PasswordData passwordData = new PasswordData(new Password(newPassword));
|
||||
RuleResult result = validator.validate(passwordData);
|
||||
if (!result.isValid()) {
|
||||
String error = null;
|
||||
for (String msg : validator.getMessages(result)) {
|
||||
error = (error == null ? "" : error) + " " + msg;
|
||||
}
|
||||
return error;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
|
@ -480,7 +480,7 @@ public class MSystem extends X_AD_System
|
|||
|
||||
public static boolean isZKRememberPasswordAllowed() {
|
||||
String ca = MSysConfig.getValue("ZK_LOGIN_ALLOW_REMEMBER_ME", SYSTEM_ALLOW_REMEMBER_USER);
|
||||
return (ca.equalsIgnoreCase(SYSTEM_ALLOW_REMEMBER_PASSWORD));
|
||||
return (ca.equalsIgnoreCase(SYSTEM_ALLOW_REMEMBER_PASSWORD) && !MSysConfig.getBooleanValue("USER_PASSWORD_HASH", false));
|
||||
}
|
||||
|
||||
public static boolean isSwingRememberUserAllowed() {
|
||||
|
@ -490,7 +490,7 @@ public class MSystem extends X_AD_System
|
|||
|
||||
public static boolean isSwingRememberPasswordAllowed() {
|
||||
String ca = MSysConfig.getValue("SWING_LOGIN_ALLOW_REMEMBER_ME", SYSTEM_ALLOW_REMEMBER_PASSWORD);
|
||||
return (ca.equalsIgnoreCase(SYSTEM_ALLOW_REMEMBER_PASSWORD));
|
||||
return (ca.equalsIgnoreCase(SYSTEM_ALLOW_REMEMBER_PASSWORD) && !MSysConfig.getBooleanValue("USER_PASSWORD_HASH", false));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -30,7 +30,7 @@ public class X_AD_Client extends PO implements I_AD_Client, I_Persistent
|
|||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 20100614L;
|
||||
private static final long serialVersionUID = 20120802L;
|
||||
|
||||
/** Standard Constructor */
|
||||
public X_AD_Client (Properties ctx, int AD_Client_ID, String trxName)
|
||||
|
@ -39,8 +39,6 @@ public class X_AD_Client extends PO implements I_AD_Client, I_Persistent
|
|||
/** if (AD_Client_ID == 0)
|
||||
{
|
||||
setAutoArchive (null);
|
||||
// N
|
||||
setIsCostImmediate (false);
|
||||
// N
|
||||
setIsMultiLingualDocument (false);
|
||||
setIsPostImmediate (false);
|
||||
|
@ -89,6 +87,20 @@ public class X_AD_Client extends PO implements I_AD_Client, I_Persistent
|
|||
return sb.toString();
|
||||
}
|
||||
|
||||
/** Set AD_Client_UU.
|
||||
@param AD_Client_UU AD_Client_UU */
|
||||
public void setAD_Client_UU (String AD_Client_UU)
|
||||
{
|
||||
set_Value (COLUMNNAME_AD_Client_UU, AD_Client_UU);
|
||||
}
|
||||
|
||||
/** Get AD_Client_UU.
|
||||
@return AD_Client_UU */
|
||||
public String getAD_Client_UU ()
|
||||
{
|
||||
return (String)get_Value(COLUMNNAME_AD_Client_UU);
|
||||
}
|
||||
|
||||
/** AD_Language AD_Reference_ID=327 */
|
||||
public static final int AD_LANGUAGE_AD_Reference_ID=327;
|
||||
/** Set Language.
|
||||
|
@ -109,9 +121,34 @@ public class X_AD_Client extends PO implements I_AD_Client, I_Persistent
|
|||
return (String)get_Value(COLUMNNAME_AD_Language);
|
||||
}
|
||||
|
||||
public I_AD_ReplicationStrategy getAD_ReplicationStrategy() throws RuntimeException
|
||||
public org.compiere.model.I_AD_PasswordRule getAD_PasswordRule() throws RuntimeException
|
||||
{
|
||||
return (I_AD_ReplicationStrategy)MTable.get(getCtx(), I_AD_ReplicationStrategy.Table_Name)
|
||||
return (org.compiere.model.I_AD_PasswordRule)MTable.get(getCtx(), org.compiere.model.I_AD_PasswordRule.Table_Name)
|
||||
.getPO(getAD_PasswordRule_ID(), get_TrxName()); }
|
||||
|
||||
/** Set AD_PasswordRule.
|
||||
@param AD_PasswordRule_ID AD_PasswordRule */
|
||||
public void setAD_PasswordRule_ID (int AD_PasswordRule_ID)
|
||||
{
|
||||
if (AD_PasswordRule_ID < 1)
|
||||
set_Value (COLUMNNAME_AD_PasswordRule_ID, null);
|
||||
else
|
||||
set_Value (COLUMNNAME_AD_PasswordRule_ID, Integer.valueOf(AD_PasswordRule_ID));
|
||||
}
|
||||
|
||||
/** Get AD_PasswordRule.
|
||||
@return AD_PasswordRule */
|
||||
public int getAD_PasswordRule_ID ()
|
||||
{
|
||||
Integer ii = (Integer)get_Value(COLUMNNAME_AD_PasswordRule_ID);
|
||||
if (ii == null)
|
||||
return 0;
|
||||
return ii.intValue();
|
||||
}
|
||||
|
||||
public org.compiere.model.I_AD_ReplicationStrategy getAD_ReplicationStrategy() throws RuntimeException
|
||||
{
|
||||
return (org.compiere.model.I_AD_ReplicationStrategy)MTable.get(getCtx(), org.compiere.model.I_AD_ReplicationStrategy.Table_Name)
|
||||
.getPO(getAD_ReplicationStrategy_ID(), get_TrxName()); }
|
||||
|
||||
/** Set Replication Strategy.
|
||||
|
@ -216,30 +253,6 @@ public class X_AD_Client extends PO implements I_AD_Client, I_Persistent
|
|||
return (String)get_Value(COLUMNNAME_EMailTest);
|
||||
}
|
||||
|
||||
/** Set Cost Immediately.
|
||||
@param IsCostImmediate
|
||||
Update Costs immediately for testing
|
||||
*/
|
||||
public void setIsCostImmediate (boolean IsCostImmediate)
|
||||
{
|
||||
set_Value (COLUMNNAME_IsCostImmediate, Boolean.valueOf(IsCostImmediate));
|
||||
}
|
||||
|
||||
/** Get Cost Immediately.
|
||||
@return Update Costs immediately for testing
|
||||
*/
|
||||
public boolean isCostImmediate ()
|
||||
{
|
||||
Object oo = get_Value(COLUMNNAME_IsCostImmediate);
|
||||
if (oo != null)
|
||||
{
|
||||
if (oo instanceof Boolean)
|
||||
return ((Boolean)oo).booleanValue();
|
||||
return "Y".equals(oo);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/** Set Multi Lingual Documents.
|
||||
@param IsMultiLingualDocument
|
||||
Documents are Multi Lingual
|
||||
|
|
|
@ -0,0 +1,471 @@
|
|||
/******************************************************************************
|
||||
* Product: Adempiere ERP & CRM Smart Business Solution *
|
||||
* Copyright (C) 1999-2007 ComPiere, Inc. All Rights Reserved. *
|
||||
* This program is free software, you can redistribute it and/or modify it *
|
||||
* under the terms version 2 of the GNU General Public License 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, write to the Free Software Foundation, Inc., *
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
|
||||
* For the text or an alternative of this public license, you may reach us *
|
||||
* ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA *
|
||||
* or via info@compiere.org or http://www.compiere.org/license.html *
|
||||
*****************************************************************************/
|
||||
/** Generated Model - DO NOT CHANGE */
|
||||
package org.compiere.model;
|
||||
|
||||
import java.sql.ResultSet;
|
||||
import java.util.Properties;
|
||||
import org.compiere.util.KeyNamePair;
|
||||
|
||||
/** Generated Model for AD_PasswordRule
|
||||
* @author Adempiere (generated)
|
||||
* @version Release 3.6.0LTS - $Id$ */
|
||||
public class X_AD_PasswordRule extends PO implements I_AD_PasswordRule, I_Persistent
|
||||
{
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 20120802L;
|
||||
|
||||
/** Standard Constructor */
|
||||
public X_AD_PasswordRule (Properties ctx, int AD_PasswordRule_ID, String trxName)
|
||||
{
|
||||
super (ctx, AD_PasswordRule_ID, trxName);
|
||||
/** if (AD_PasswordRule_ID == 0)
|
||||
{
|
||||
setAD_PasswordRule_ID (0);
|
||||
} */
|
||||
}
|
||||
|
||||
/** Load Constructor */
|
||||
public X_AD_PasswordRule (Properties ctx, ResultSet rs, String trxName)
|
||||
{
|
||||
super (ctx, rs, trxName);
|
||||
}
|
||||
|
||||
/** AccessLevel
|
||||
* @return 4 - System
|
||||
*/
|
||||
protected int get_AccessLevel()
|
||||
{
|
||||
return accessLevel.intValue();
|
||||
}
|
||||
|
||||
/** Load Meta Data */
|
||||
protected POInfo initPO (Properties ctx)
|
||||
{
|
||||
POInfo poi = POInfo.getPOInfo (ctx, Table_ID, get_TrxName());
|
||||
return poi;
|
||||
}
|
||||
|
||||
public String toString()
|
||||
{
|
||||
StringBuffer sb = new StringBuffer ("X_AD_PasswordRule[")
|
||||
.append(get_ID()).append("]");
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
/** Set AD_PasswordRule.
|
||||
@param AD_PasswordRule_ID AD_PasswordRule */
|
||||
public void setAD_PasswordRule_ID (int AD_PasswordRule_ID)
|
||||
{
|
||||
if (AD_PasswordRule_ID < 1)
|
||||
set_ValueNoCheck (COLUMNNAME_AD_PasswordRule_ID, null);
|
||||
else
|
||||
set_ValueNoCheck (COLUMNNAME_AD_PasswordRule_ID, Integer.valueOf(AD_PasswordRule_ID));
|
||||
}
|
||||
|
||||
/** Get AD_PasswordRule.
|
||||
@return AD_PasswordRule */
|
||||
public int getAD_PasswordRule_ID ()
|
||||
{
|
||||
Integer ii = (Integer)get_Value(COLUMNNAME_AD_PasswordRule_ID);
|
||||
if (ii == null)
|
||||
return 0;
|
||||
return ii.intValue();
|
||||
}
|
||||
|
||||
/** Set AD_PasswordRule_UU.
|
||||
@param AD_PasswordRule_UU AD_PasswordRule_UU */
|
||||
public void setAD_PasswordRule_UU (String AD_PasswordRule_UU)
|
||||
{
|
||||
set_Value (COLUMNNAME_AD_PasswordRule_UU, AD_PasswordRule_UU);
|
||||
}
|
||||
|
||||
/** Get AD_PasswordRule_UU.
|
||||
@return AD_PasswordRule_UU */
|
||||
public String getAD_PasswordRule_UU ()
|
||||
{
|
||||
return (String)get_Value(COLUMNNAME_AD_PasswordRule_UU);
|
||||
}
|
||||
|
||||
/** Set Alphabetical Character.
|
||||
@param AlphabeticalCharacter Alphabetical Character */
|
||||
public void setAlphabeticalCharacter (int AlphabeticalCharacter)
|
||||
{
|
||||
set_Value (COLUMNNAME_AlphabeticalCharacter, Integer.valueOf(AlphabeticalCharacter));
|
||||
}
|
||||
|
||||
/** Get Alphabetical Character.
|
||||
@return Alphabetical Character */
|
||||
public int getAlphabeticalCharacter ()
|
||||
{
|
||||
Integer ii = (Integer)get_Value(COLUMNNAME_AlphabeticalCharacter);
|
||||
if (ii == null)
|
||||
return 0;
|
||||
return ii.intValue();
|
||||
}
|
||||
|
||||
/** Set Alphabetical Sequence.
|
||||
@param AlphabeticalSequence
|
||||
Allow alphabetical sequences
|
||||
*/
|
||||
public void setAlphabeticalSequence (boolean AlphabeticalSequence)
|
||||
{
|
||||
set_Value (COLUMNNAME_AlphabeticalSequence, Boolean.valueOf(AlphabeticalSequence));
|
||||
}
|
||||
|
||||
/** Get Alphabetical Sequence.
|
||||
@return Allow alphabetical sequences
|
||||
*/
|
||||
public boolean isAlphabeticalSequence ()
|
||||
{
|
||||
Object oo = get_Value(COLUMNNAME_AlphabeticalSequence);
|
||||
if (oo != null)
|
||||
{
|
||||
if (oo instanceof Boolean)
|
||||
return ((Boolean)oo).booleanValue();
|
||||
return "Y".equals(oo);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/** Set Match Backwards of Dictionary.
|
||||
@param DictMatchBackwards
|
||||
Match dictionary words backwards
|
||||
*/
|
||||
public void setDictMatchBackwards (boolean DictMatchBackwards)
|
||||
{
|
||||
set_Value (COLUMNNAME_DictMatchBackwards, Boolean.valueOf(DictMatchBackwards));
|
||||
}
|
||||
|
||||
/** Get Match Backwards of Dictionary.
|
||||
@return Match dictionary words backwards
|
||||
*/
|
||||
public boolean isDictMatchBackwards ()
|
||||
{
|
||||
Object oo = get_Value(COLUMNNAME_DictMatchBackwards);
|
||||
if (oo != null)
|
||||
{
|
||||
if (oo instanceof Boolean)
|
||||
return ((Boolean)oo).booleanValue();
|
||||
return "Y".equals(oo);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/** Set Word Length Dictionary.
|
||||
@param DictWordLength Word Length Dictionary */
|
||||
public void setDictWordLength (int DictWordLength)
|
||||
{
|
||||
set_Value (COLUMNNAME_DictWordLength, Integer.valueOf(DictWordLength));
|
||||
}
|
||||
|
||||
/** Get Word Length Dictionary.
|
||||
@return Word Length Dictionary */
|
||||
public int getDictWordLength ()
|
||||
{
|
||||
Integer ii = (Integer)get_Value(COLUMNNAME_DictWordLength);
|
||||
if (ii == null)
|
||||
return 0;
|
||||
return ii.intValue();
|
||||
}
|
||||
|
||||
/** Set Digit Character.
|
||||
@param DigitCharacter
|
||||
Require at least # digit in passwords
|
||||
*/
|
||||
public void setDigitCharacter (int DigitCharacter)
|
||||
{
|
||||
set_Value (COLUMNNAME_DigitCharacter, Integer.valueOf(DigitCharacter));
|
||||
}
|
||||
|
||||
/** Get Digit Character.
|
||||
@return Require at least # digit in passwords
|
||||
*/
|
||||
public int getDigitCharacter ()
|
||||
{
|
||||
Integer ii = (Integer)get_Value(COLUMNNAME_DigitCharacter);
|
||||
if (ii == null)
|
||||
return 0;
|
||||
return ii.intValue();
|
||||
}
|
||||
|
||||
/** Set Lowercase Character.
|
||||
@param LowercaseCharacter
|
||||
Require at least # lower case char
|
||||
*/
|
||||
public void setLowercaseCharacter (int LowercaseCharacter)
|
||||
{
|
||||
set_Value (COLUMNNAME_LowercaseCharacter, Integer.valueOf(LowercaseCharacter));
|
||||
}
|
||||
|
||||
/** Get Lowercase Character.
|
||||
@return Require at least # lower case char
|
||||
*/
|
||||
public int getLowercaseCharacter ()
|
||||
{
|
||||
Integer ii = (Integer)get_Value(COLUMNNAME_LowercaseCharacter);
|
||||
if (ii == null)
|
||||
return 0;
|
||||
return ii.intValue();
|
||||
}
|
||||
|
||||
/** Set Maximum Length.
|
||||
@param MaxLength
|
||||
Maximum Length of Data
|
||||
*/
|
||||
public void setMaxLength (int MaxLength)
|
||||
{
|
||||
set_Value (COLUMNNAME_MaxLength, Integer.valueOf(MaxLength));
|
||||
}
|
||||
|
||||
/** Get Maximum Length.
|
||||
@return Maximum Length of Data
|
||||
*/
|
||||
public int getMaxLength ()
|
||||
{
|
||||
Integer ii = (Integer)get_Value(COLUMNNAME_MaxLength);
|
||||
if (ii == null)
|
||||
return 0;
|
||||
return ii.intValue();
|
||||
}
|
||||
|
||||
/** Set Min Length.
|
||||
@param MinLength Min Length */
|
||||
public void setMinLength (int MinLength)
|
||||
{
|
||||
set_Value (COLUMNNAME_MinLength, Integer.valueOf(MinLength));
|
||||
}
|
||||
|
||||
/** Get Min Length.
|
||||
@return Min Length */
|
||||
public int getMinLength ()
|
||||
{
|
||||
Integer ii = (Integer)get_Value(COLUMNNAME_MinLength);
|
||||
if (ii == null)
|
||||
return 0;
|
||||
return ii.intValue();
|
||||
}
|
||||
|
||||
/** Set Name.
|
||||
@param Name
|
||||
Alphanumeric identifier of the entity
|
||||
*/
|
||||
public void setName (String Name)
|
||||
{
|
||||
set_Value (COLUMNNAME_Name, Name);
|
||||
}
|
||||
|
||||
/** Get Name.
|
||||
@return Alphanumeric identifier of the entity
|
||||
*/
|
||||
public String getName ()
|
||||
{
|
||||
return (String)get_Value(COLUMNNAME_Name);
|
||||
}
|
||||
|
||||
/** Get Record ID/ColumnName
|
||||
@return ID/ColumnName pair
|
||||
*/
|
||||
public KeyNamePair getKeyNamePair()
|
||||
{
|
||||
return new KeyNamePair(get_ID(), getName());
|
||||
}
|
||||
|
||||
/** Set Non Alpha Numeric Character.
|
||||
@param NonAlphaNumericCharacter
|
||||
Require at least # non-alphanumeric char
|
||||
*/
|
||||
public void setNonAlphaNumericCharacter (int NonAlphaNumericCharacter)
|
||||
{
|
||||
set_Value (COLUMNNAME_NonAlphaNumericCharacter, Integer.valueOf(NonAlphaNumericCharacter));
|
||||
}
|
||||
|
||||
/** Get Non Alpha Numeric Character.
|
||||
@return Require at least # non-alphanumeric char
|
||||
*/
|
||||
public int getNonAlphaNumericCharacter ()
|
||||
{
|
||||
Integer ii = (Integer)get_Value(COLUMNNAME_NonAlphaNumericCharacter);
|
||||
if (ii == null)
|
||||
return 0;
|
||||
return ii.intValue();
|
||||
}
|
||||
|
||||
/** Set Numerical Sequence.
|
||||
@param NumericalSequence
|
||||
Allow numerical sequences of length #
|
||||
*/
|
||||
public void setNumericalSequence (int NumericalSequence)
|
||||
{
|
||||
set_Value (COLUMNNAME_NumericalSequence, Integer.valueOf(NumericalSequence));
|
||||
}
|
||||
|
||||
/** Get Numerical Sequence.
|
||||
@return Allow numerical sequences of length #
|
||||
*/
|
||||
public int getNumericalSequence ()
|
||||
{
|
||||
Integer ii = (Integer)get_Value(COLUMNNAME_NumericalSequence);
|
||||
if (ii == null)
|
||||
return 0;
|
||||
return ii.intValue();
|
||||
}
|
||||
|
||||
/** Set Path Dictionary.
|
||||
@param PathDictionary Path Dictionary */
|
||||
public void setPathDictionary (String PathDictionary)
|
||||
{
|
||||
set_Value (COLUMNNAME_PathDictionary, PathDictionary);
|
||||
}
|
||||
|
||||
/** Get Path Dictionary.
|
||||
@return Path Dictionary */
|
||||
public String getPathDictionary ()
|
||||
{
|
||||
return (String)get_Value(COLUMNNAME_PathDictionary);
|
||||
}
|
||||
|
||||
/** Set QWERTY Sequence.
|
||||
@param QWERTYSequence
|
||||
Allow QWERTY sequences
|
||||
*/
|
||||
public void setQWERTYSequence (boolean QWERTYSequence)
|
||||
{
|
||||
set_Value (COLUMNNAME_QWERTYSequence, Boolean.valueOf(QWERTYSequence));
|
||||
}
|
||||
|
||||
/** Get QWERTY Sequence.
|
||||
@return Allow QWERTY sequences
|
||||
*/
|
||||
public boolean isQWERTYSequence ()
|
||||
{
|
||||
Object oo = get_Value(COLUMNNAME_QWERTYSequence);
|
||||
if (oo != null)
|
||||
{
|
||||
if (oo instanceof Boolean)
|
||||
return ((Boolean)oo).booleanValue();
|
||||
return "Y".equals(oo);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/** Set Repeat Character Regex.
|
||||
@param RepeatCharacterRegex Repeat Character Regex */
|
||||
public void setRepeatCharacterRegex (int RepeatCharacterRegex)
|
||||
{
|
||||
set_Value (COLUMNNAME_RepeatCharacterRegex, Integer.valueOf(RepeatCharacterRegex));
|
||||
}
|
||||
|
||||
/** Get Repeat Character Regex.
|
||||
@return Repeat Character Regex */
|
||||
public int getRepeatCharacterRegex ()
|
||||
{
|
||||
Integer ii = (Integer)get_Value(COLUMNNAME_RepeatCharacterRegex);
|
||||
if (ii == null)
|
||||
return 0;
|
||||
return ii.intValue();
|
||||
}
|
||||
|
||||
/** Set Uppercase Character.
|
||||
@param UppercaseCharacter
|
||||
Require at least # upper case char
|
||||
*/
|
||||
public void setUppercaseCharacter (int UppercaseCharacter)
|
||||
{
|
||||
set_Value (COLUMNNAME_UppercaseCharacter, Integer.valueOf(UppercaseCharacter));
|
||||
}
|
||||
|
||||
/** Get Uppercase Character.
|
||||
@return Require at least # upper case char
|
||||
*/
|
||||
public int getUppercaseCharacter ()
|
||||
{
|
||||
Integer ii = (Integer)get_Value(COLUMNNAME_UppercaseCharacter);
|
||||
if (ii == null)
|
||||
return 0;
|
||||
return ii.intValue();
|
||||
}
|
||||
|
||||
/** Set Registered EMail.
|
||||
@param UserName
|
||||
Email of the responsible for the System
|
||||
*/
|
||||
public void setUserName (boolean UserName)
|
||||
{
|
||||
set_Value (COLUMNNAME_UserName, Boolean.valueOf(UserName));
|
||||
}
|
||||
|
||||
/** Get Registered EMail.
|
||||
@return Email of the responsible for the System
|
||||
*/
|
||||
public boolean isUserName ()
|
||||
{
|
||||
Object oo = get_Value(COLUMNNAME_UserName);
|
||||
if (oo != null)
|
||||
{
|
||||
if (oo instanceof Boolean)
|
||||
return ((Boolean)oo).booleanValue();
|
||||
return "Y".equals(oo);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/** Set Using Dictionary.
|
||||
@param UsingDictionary Using Dictionary */
|
||||
public void setUsingDictionary (boolean UsingDictionary)
|
||||
{
|
||||
set_Value (COLUMNNAME_UsingDictionary, Boolean.valueOf(UsingDictionary));
|
||||
}
|
||||
|
||||
/** Get Using Dictionary.
|
||||
@return Using Dictionary */
|
||||
public boolean isUsingDictionary ()
|
||||
{
|
||||
Object oo = get_Value(COLUMNNAME_UsingDictionary);
|
||||
if (oo != null)
|
||||
{
|
||||
if (oo instanceof Boolean)
|
||||
return ((Boolean)oo).booleanValue();
|
||||
return "Y".equals(oo);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/** Set whitespace.
|
||||
@param whitespace whitespace */
|
||||
public void setwhitespace (boolean whitespace)
|
||||
{
|
||||
set_Value (COLUMNNAME_whitespace, Boolean.valueOf(whitespace));
|
||||
}
|
||||
|
||||
/** Get whitespace.
|
||||
@return whitespace */
|
||||
public boolean iswhitespace ()
|
||||
{
|
||||
Object oo = get_Value(COLUMNNAME_whitespace);
|
||||
if (oo != null)
|
||||
{
|
||||
if (oo instanceof Boolean)
|
||||
return ((Boolean)oo).booleanValue();
|
||||
return "Y".equals(oo);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
|
@ -68,7 +68,6 @@ import org.zkoss.zhtml.Td;
|
|||
import org.zkoss.zhtml.Tr;
|
||||
import org.zkoss.zk.au.out.AuFocus;
|
||||
import org.zkoss.zk.au.out.AuScript;
|
||||
import org.zkoss.zk.fn.ZkFns;
|
||||
import org.zkoss.zk.ui.Component;
|
||||
import org.zkoss.zk.ui.Executions;
|
||||
import org.zkoss.zk.ui.Session;
|
||||
|
@ -109,6 +108,7 @@ public class LoginPanel extends Window implements EventListener
|
|||
private Combobox lstLanguage;
|
||||
private LoginWindow wndLogin;
|
||||
private Checkbox chkRememberMe;
|
||||
private Checkbox chkSelectRole;
|
||||
|
||||
public LoginPanel(Properties ctx, LoginWindow loginWindow)
|
||||
{
|
||||
|
@ -200,6 +200,17 @@ public class LoginPanel extends Window implements EventListener
|
|||
td.setSclass(ITheme.LOGIN_FIELD_CLASS);
|
||||
tr.appendChild(td);
|
||||
td.appendChild(chkRememberMe);
|
||||
tr = new Tr();
|
||||
tr.setId("rowSelectRole");
|
||||
table.appendChild(tr);
|
||||
td = new Td();
|
||||
tr.appendChild(td);
|
||||
td.setSclass(ITheme.LOGIN_LABEL_CLASS);
|
||||
td.appendChild(new Label(""));
|
||||
td = new Td();
|
||||
td.setSclass(ITheme.LOGIN_FIELD_CLASS);
|
||||
tr.appendChild(td);
|
||||
td.appendChild(chkSelectRole);
|
||||
}
|
||||
|
||||
div = new Div();
|
||||
|
@ -240,6 +251,7 @@ public class LoginPanel extends Window implements EventListener
|
|||
txtPassword.setAttribute("user.token.hash", token);
|
||||
txtPassword.setAttribute("user.token.sid", AD_Session_ID);
|
||||
}
|
||||
chkSelectRole.setChecked(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -305,6 +317,8 @@ public class LoginPanel extends Window implements EventListener
|
|||
|
||||
chkRememberMe = new Checkbox(Msg.getMsg(Language.getBaseAD_Language(), "RememberMe"));
|
||||
|
||||
chkSelectRole = new Checkbox(Msg.getMsg(Language.getBaseAD_Language(), "SelectRole"));
|
||||
|
||||
// Make the default language the language of client System
|
||||
String defaultLanguage = MClient.get(ctx, 0).getAD_Language();
|
||||
for(int i = 0; i < lstLanguage.getItemCount(); i++)
|
||||
|
@ -393,6 +407,8 @@ public class LoginPanel extends Window implements EventListener
|
|||
lblPassword.setValue(res.getString("Password"));
|
||||
lblLanguage.setValue(res.getString("Language"));
|
||||
chkRememberMe.setLabel(Msg.getMsg(language, "RememberMe"));
|
||||
chkSelectRole.setLabel(Msg.getMsg(language, "SelectRole"));
|
||||
|
||||
}
|
||||
|
||||
private Language findLanguage(String langName) {
|
||||
|
@ -431,6 +447,8 @@ public class LoginPanel extends Window implements EventListener
|
|||
}
|
||||
}
|
||||
|
||||
Env.setContext(ctx, BrowserToken.REMEMBER_ME, chkRememberMe.isChecked());
|
||||
|
||||
Session currSess = Executions.getCurrent().getDesktop().getSession();
|
||||
|
||||
KeyNamePair rolesKNPairs[] = login.getRoles(userId, userPassword);
|
||||
|
@ -445,10 +463,10 @@ public class LoginPanel extends Window implements EventListener
|
|||
else
|
||||
langName = Language.getBaseLanguage().getName();
|
||||
Language language = findLanguage(langName);
|
||||
wndLogin.loginOk(userId, userPassword);
|
||||
|
||||
Env.setContext(ctx, UserPreference.LANGUAGE_NAME, language.getName()); // Elaine 2009/02/06
|
||||
|
||||
wndLogin.loginOk(userId, userPassword, chkSelectRole.isChecked());
|
||||
|
||||
Locale locale = language.getLocale();
|
||||
currSess.setAttribute(Attributes.PREFERRED_LOCALE, locale);
|
||||
try {
|
||||
|
@ -470,8 +488,6 @@ public class LoginPanel extends Window implements EventListener
|
|||
currSess.setAttribute("Check_AD_User_ID", Env.getAD_User_ID(ctx));
|
||||
// End of temporary code for [ adempiere-ZK Web Client-2832968 ] User context lost?
|
||||
|
||||
Env.setContext(ctx, BrowserToken.REMEMBER_ME, chkRememberMe.isChecked());
|
||||
|
||||
/* Check DB version */
|
||||
String version = DB.getSQLValueString(null, "SELECT Version FROM AD_System");
|
||||
// Identical DB version
|
||||
|
|
|
@ -97,11 +97,14 @@ public class RolePanel extends Window implements EventListener, Deferrable
|
|||
/** Password */
|
||||
private String m_password;
|
||||
|
||||
public RolePanel(Properties ctx, LoginWindow loginWindow, String userName, String password) {
|
||||
private boolean m_show = true;
|
||||
|
||||
public RolePanel(Properties ctx, LoginWindow loginWindow, String userName, String password, boolean show) {
|
||||
this.wndLogin = loginWindow;
|
||||
m_ctx = ctx;
|
||||
m_userName = userName;
|
||||
m_password = password; login = new Login(ctx);
|
||||
m_show = show;
|
||||
rolesKNPairs = login.getRoles(userName, password);
|
||||
if(rolesKNPairs == null)
|
||||
throw new ApplicationException("Login is invalid, UserName: " + userName + " and Password:" + password);
|
||||
|
@ -110,8 +113,12 @@ public class RolePanel extends Window implements EventListener, Deferrable
|
|||
init();
|
||||
this.setId("rolePanel");
|
||||
|
||||
AuFocus auf = new AuFocus(lstRole);
|
||||
Clients.response(auf);
|
||||
if (m_show) {
|
||||
AuFocus auf = new AuFocus(lstRole);
|
||||
Clients.response(auf);
|
||||
} else {
|
||||
validateRoles();
|
||||
}
|
||||
}
|
||||
|
||||
private void init()
|
||||
|
@ -298,8 +305,10 @@ public class RolePanel extends Window implements EventListener, Deferrable
|
|||
if(rolesKNPairs[i].getID().equals(initDefault))
|
||||
lstRole.setSelectedItem(ci);
|
||||
}
|
||||
if (lstRole.getSelectedIndex() == -1 && lstRole.getItemCount() > 0)
|
||||
if (lstRole.getSelectedIndex() == -1 && lstRole.getItemCount() > 0) {
|
||||
m_show = true; // didn't find default role
|
||||
lstRole.setSelectedIndex(0);
|
||||
}
|
||||
//
|
||||
|
||||
// If we have only one role, we can hide the combobox - metas-2009_0021_AP1_G94
|
||||
|
@ -338,8 +347,10 @@ public class RolePanel extends Window implements EventListener, Deferrable
|
|||
if(clientKNPairs[i].getID().equals(initDefault))
|
||||
lstClient.setSelectedItem(ci);
|
||||
}
|
||||
if (lstClient.getSelectedIndex() == -1 && lstClient.getItemCount() > 0)
|
||||
if (lstClient.getSelectedIndex() == -1 && lstClient.getItemCount() > 0) {
|
||||
m_show = true; // didn't find default client
|
||||
lstClient.setSelectedIndex(0);
|
||||
}
|
||||
}
|
||||
//
|
||||
|
||||
|
@ -372,8 +383,10 @@ public class RolePanel extends Window implements EventListener, Deferrable
|
|||
lstOrganisation.setSelectedItem(ci);
|
||||
|
||||
}
|
||||
if (lstOrganisation.getSelectedIndex() == -1 && lstOrganisation.getItemCount() > 0)
|
||||
if (lstOrganisation.getSelectedIndex() == -1 && lstOrganisation.getItemCount() > 0) {
|
||||
m_show = true; // didn't find default organisation
|
||||
lstOrganisation.setSelectedIndex(0);
|
||||
}
|
||||
}
|
||||
//
|
||||
}
|
||||
|
@ -401,8 +414,10 @@ public class RolePanel extends Window implements EventListener, Deferrable
|
|||
if(warehouseKNPairs[i].getID().equals(initDefault))
|
||||
lstWarehouse.setSelectedItem(ci);
|
||||
}
|
||||
if (lstWarehouse.getSelectedIndex() == -1 && lstWarehouse.getItemCount() > 0)
|
||||
if (lstWarehouse.getSelectedIndex() == -1 && lstWarehouse.getItemCount() > 0) {
|
||||
m_show = true; // didn't find default warehouse
|
||||
lstWarehouse.setSelectedIndex(0);
|
||||
}
|
||||
}
|
||||
//
|
||||
}
|
||||
|
|
|
@ -74,9 +74,9 @@ public class LoginWindow extends FWindow implements EventListener
|
|||
pnlLogin = new LoginPanel(ctx, this);
|
||||
}
|
||||
|
||||
public void loginOk(String userName, String password)
|
||||
public void loginOk(String userName, String password, boolean show)
|
||||
{
|
||||
pnlRole = new RolePanel(ctx, this, userName, password);
|
||||
pnlRole = new RolePanel(ctx, this, userName, password, show);
|
||||
this.getChildren().clear();
|
||||
this.appendChild(pnlRole);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue