From 0347e6f4e8bdbb01f56a4bb41a0eb5f6f64c6c34 Mon Sep 17 00:00:00 2001 From: Carlos Ruiz Date: Tue, 25 Sep 2012 13:51:07 -0500 Subject: [PATCH] IDEMPIERE-221 Implement password policies / Thanks to Juliana Corredor --- .../src/org/compiere/model/MPasswordRule.java | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/org.adempiere.base/src/org/compiere/model/MPasswordRule.java b/org.adempiere.base/src/org/compiere/model/MPasswordRule.java index f4b7469304..0516bde83a 100644 --- a/org.adempiere.base/src/org/compiere/model/MPasswordRule.java +++ b/org.adempiere.base/src/org/compiere/model/MPasswordRule.java @@ -29,6 +29,7 @@ import java.util.Properties; import org.adempiere.exceptions.AdempiereException; import org.compiere.util.Env; import org.compiere.util.Msg; +import org.compiere.util.Util; import edu.vt.middleware.dictionary.ArrayWordList; import edu.vt.middleware.dictionary.WordListDictionary; @@ -64,7 +65,7 @@ public class MPasswordRule extends X_AD_PasswordRule { /** * */ - private static final long serialVersionUID = 7376091524332484101L; + private static final long serialVersionUID = 5454698615095632059L; /** * @param ctx @@ -93,6 +94,27 @@ public class MPasswordRule extends X_AD_PasswordRule { return pass; } + + @Override + protected boolean beforeSave (boolean newRecord) + { + if (isUsingDictionary()) { + StringBuilder msg = new StringBuilder(); + if (Util.isEmpty(getPathDictionary())) { + msg.append(Msg.getElement(getCtx(), COLUMNNAME_PathDictionary)); + } + if (getDictWordLength() <= 0) { + if (msg.length() > 0) + msg.append(", "); + msg.append(Msg.getElement(getCtx(), COLUMNNAME_DictWordLength)); + } + if (msg.length() > 0) { + log.saveError("FillMandatory", msg.toString()); + return false; + } + } + return true; + } public void validate(String username, String newPassword) throws AdempiereException {