Merge with e6debcce7a3badad675880e67bf5da8b3b90482b

This commit is contained in:
Heng Sin Low 2012-08-10 11:49:49 +08:00
commit 16c5b8ee92
24 changed files with 4949 additions and 307 deletions

View File

@ -58,6 +58,7 @@ syntax: regexp
^plugins/.*\.class$ ^plugins/.*\.class$
^adempiere-local\.properties$ ^adempiere-local\.properties$
^org\.adempiere\.ui/.*\.class$ ^org\.adempiere\.ui/.*\.class$
^org\.adempiere\.ui/bin/.*\.css$
^org\.adempiere\.pipo.handlers/.*\.class$ ^org\.adempiere\.pipo.handlers/.*\.class$
^org\.adempiere\.pipo/.*\.class$ ^org\.adempiere\.pipo/.*\.class$
^org\.adempiere\.report\.jasper\.swing/.*\.class$ ^org\.adempiere\.report\.jasper\.swing/.*\.class$
@ -99,6 +100,7 @@ syntax: regexp
syntax: regexp syntax: regexp
swingclient.product .* swingclient.product .*
server.product .*
syntax: regexp syntax: regexp
^org\.zkoss\.zk\.library/bin$ ^org\.zkoss\.zk\.library/bin$
syntax: regexp syntax: regexp

View File

@ -6,3 +6,10 @@ UPDATE AD_Column SET AD_Reference_ID=12,Updated=TO_DATE('2012-04-06 16:08:25','Y
-- Apr 6, 2012 4:10:02 PM CEST -- Apr 6, 2012 4:10:02 PM CEST
UPDATE AD_Column SET AD_Reference_ID=12,Updated=TO_DATE('2012-04-06 16:10:02','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=7832 UPDATE AD_Column SET AD_Reference_ID=12,Updated=TO_DATE('2012-04-06 16:10:02','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=7832
; ;
UPDATE AD_System
SET LastMigrationScriptApplied='834_IDEMPIERE-113.sql'
WHERE LastMigrationScriptApplied<'834_IDEMPIERE-113.sql'
OR LastMigrationScriptApplied IS NULL
;

View File

@ -33,3 +33,4 @@ UPDATE AD_System
WHERE LastMigrationScriptApplied<'852_IDEMPIERE-338.sql' WHERE LastMigrationScriptApplied<'852_IDEMPIERE-338.sql'
OR LastMigrationScriptApplied IS NULL OR LastMigrationScriptApplied IS NULL
; ;

View File

@ -1,8 +1,9 @@
-- Oracle procedure T_InventoryValue_Create is no longer used, can be deleted -- Oracle procedure T_InventoryValue_Create is no longer used, can be deleted
drop procedure "T_INVENTORYVALUE_CREATE"; drop procedure T_INVENTORYVALUE_CREATE;
UPDATE AD_System UPDATE AD_System
SET LastMigrationScriptApplied='853_IDEMPIERE-326.sql' SET LastMigrationScriptApplied='853_IDEMPIERE-326.sql'
WHERE LastMigrationScriptApplied<'853_IDEMPIERE-326.sql' WHERE LastMigrationScriptApplied<'853_IDEMPIERE-326.sql'
OR LastMigrationScriptApplied IS NULL OR LastMigrationScriptApplied IS NULL
; ;

View File

@ -0,0 +1,594 @@
-- Aug 6, 2012 12:39:27 PM COT
-- IDEMPIERE-221 Implement password policies
UPDATE AD_Table SET AD_Window_ID=200002,Updated=TO_DATE('2012-08-06 12:39:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Table_ID=200005
;
-- Aug 6, 2012 12:44:29 PM COT
UPDATE AD_Field SET SeqNo=40,IsDisplayed='Y' WHERE AD_Field_ID=200252
;
-- Aug 6, 2012 12:44:29 PM COT
UPDATE AD_Field SET SeqNo=60,IsDisplayed='Y' WHERE AD_Field_ID=200076
;
-- Aug 6, 2012 12:44:29 PM COT
UPDATE AD_Field SET SeqNo=70,IsDisplayed='Y' WHERE AD_Field_ID=200081
;
-- Aug 6, 2012 12:44:29 PM COT
UPDATE AD_Field SET SeqNo=80,IsDisplayed='Y' WHERE AD_Field_ID=200256
;
-- Aug 6, 2012 12:44:29 PM COT
UPDATE AD_Field SET SeqNo=120,IsDisplayed='Y' WHERE AD_Field_ID=200086
;
-- Aug 6, 2012 12:44:29 PM COT
UPDATE AD_Field SET SeqNo=130,IsDisplayed='Y' WHERE AD_Field_ID=200089
;
-- Aug 6, 2012 12:44:29 PM COT
UPDATE AD_Field SET SeqNo=140,IsDisplayed='Y' WHERE AD_Field_ID=200094
;
-- Aug 6, 2012 12:44:29 PM COT
UPDATE AD_Field SET SeqNo=150,IsDisplayed='Y' WHERE AD_Field_ID=200093
;
-- Aug 6, 2012 12:44:29 PM COT
UPDATE AD_Field SET SeqNo=160,IsDisplayed='Y' WHERE AD_Field_ID=200254
;
-- Aug 6, 2012 12:44:29 PM COT
UPDATE AD_Field SET SeqNo=170,IsDisplayed='Y' WHERE AD_Field_ID=200079
;
-- Aug 6, 2012 12:44:29 PM COT
UPDATE AD_Field SET SeqNo=180,IsDisplayed='Y' WHERE AD_Field_ID=200080
;
-- Aug 6, 2012 12:44:29 PM COT
UPDATE AD_Field SET SeqNo=190,IsDisplayed='Y' WHERE AD_Field_ID=200251
;
-- Aug 6, 2012 12:44:29 PM COT
UPDATE AD_Field SET SeqNo=200,IsDisplayed='Y' WHERE AD_Field_ID=200074
;
-- Aug 6, 2012 12:44:46 PM COT
UPDATE AD_Field SET IsSameLine='Y',Updated=TO_DATE('2012-08-06 12:44:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200083
;
-- Aug 6, 2012 12:45:17 PM COT
UPDATE AD_Element SET Name='Minimum Length', PrintName='Minimum Length',Updated=TO_DATE('2012-08-06 12:45:17','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Element_ID=200065
;
-- Aug 6, 2012 12:45:17 PM COT
UPDATE AD_Element_Trl SET IsTranslated='N' WHERE AD_Element_ID=200065
;
-- Aug 6, 2012 12:45:17 PM COT
UPDATE AD_Column SET ColumnName='MinLength', Name='Minimum Length', Description=NULL, Help=NULL WHERE AD_Element_ID=200065
;
-- Aug 6, 2012 12:45:17 PM COT
UPDATE AD_Process_Para SET ColumnName='MinLength', Name='Minimum Length', Description=NULL, Help=NULL, AD_Element_ID=200065 WHERE UPPER(ColumnName)='MINLENGTH' AND IsCentrallyMaintained='Y' AND AD_Element_ID IS NULL
;
-- Aug 6, 2012 12:45:17 PM COT
UPDATE AD_Process_Para SET ColumnName='MinLength', Name='Minimum Length', Description=NULL, Help=NULL WHERE AD_Element_ID=200065 AND IsCentrallyMaintained='Y'
;
-- Aug 6, 2012 12:45:17 PM COT
UPDATE AD_Field SET Name='Minimum Length', Description=NULL, Help=NULL WHERE AD_Column_ID IN (SELECT AD_Column_ID FROM AD_Column WHERE AD_Element_ID=200065) AND IsCentrallyMaintained='Y'
;
-- Aug 6, 2012 12:45:17 PM COT
UPDATE AD_PrintFormatItem pi SET PrintName='Minimum Length', Name='Minimum Length' WHERE IsCentrallyMaintained='Y' AND EXISTS (SELECT * FROM AD_Column c WHERE c.AD_Column_ID=pi.AD_Column_ID AND c.AD_Element_ID=200065)
;
-- Aug 6, 2012 12:45:54 PM COT
UPDATE AD_Field SET IsSameLine='Y',Updated=TO_DATE('2012-08-06 12:45:54','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200081
;
-- Aug 6, 2012 12:45:58 PM COT
UPDATE AD_Field SET IsSameLine='Y',Updated=TO_DATE('2012-08-06 12:45:58','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200082
;
-- Aug 6, 2012 12:46:09 PM COT
UPDATE AD_Field SET IsSameLine='Y',Updated=TO_DATE('2012-08-06 12:46:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200089
;
-- Aug 6, 2012 12:46:45 PM COT
UPDATE AD_Element SET Name='Whitespace', PrintName='Whitespace',Updated=TO_DATE('2012-08-06 12:46:45','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Element_ID=200030
;
-- Aug 6, 2012 12:46:45 PM COT
UPDATE AD_Element_Trl SET IsTranslated='N' WHERE AD_Element_ID=200030
;
-- Aug 6, 2012 12:46:45 PM COT
UPDATE AD_Column SET ColumnName='whitespace', Name='Whitespace', Description=NULL, Help=NULL WHERE AD_Element_ID=200030
;
-- Aug 6, 2012 12:46:45 PM COT
UPDATE AD_Process_Para SET ColumnName='whitespace', Name='Whitespace', Description=NULL, Help=NULL, AD_Element_ID=200030 WHERE UPPER(ColumnName)='WHITESPACE' AND IsCentrallyMaintained='Y' AND AD_Element_ID IS NULL
;
-- Aug 6, 2012 12:46:45 PM COT
UPDATE AD_Process_Para SET ColumnName='whitespace', Name='Whitespace', Description=NULL, Help=NULL WHERE AD_Element_ID=200030 AND IsCentrallyMaintained='Y'
;
-- Aug 6, 2012 12:46:45 PM COT
UPDATE AD_Field SET Name='Whitespace', Description=NULL, Help=NULL WHERE AD_Column_ID IN (SELECT AD_Column_ID FROM AD_Column WHERE AD_Element_ID=200030) AND IsCentrallyMaintained='Y'
;
-- Aug 6, 2012 12:46:45 PM COT
UPDATE AD_PrintFormatItem pi SET PrintName='Whitespace', Name='Whitespace' WHERE IsCentrallyMaintained='Y' AND EXISTS (SELECT * FROM AD_Column c WHERE c.AD_Column_ID=pi.AD_Column_ID AND c.AD_Element_ID=200030)
;
-- Aug 6, 2012 12:47:20 PM COT
UPDATE AD_Field SET SeqNo=120,IsDisplayed='Y' WHERE AD_Field_ID=200251
;
-- Aug 6, 2012 12:47:20 PM COT
UPDATE AD_Field SET SeqNo=130,IsDisplayed='Y' WHERE AD_Field_ID=200086
;
-- Aug 6, 2012 12:47:20 PM COT
UPDATE AD_Field SET SeqNo=140,IsDisplayed='Y' WHERE AD_Field_ID=200089
;
-- Aug 6, 2012 12:47:20 PM COT
UPDATE AD_Field SET SeqNo=150,IsDisplayed='Y' WHERE AD_Field_ID=200094
;
-- Aug 6, 2012 12:47:20 PM COT
UPDATE AD_Field SET SeqNo=160,IsDisplayed='Y' WHERE AD_Field_ID=200093
;
-- Aug 6, 2012 12:47:20 PM COT
UPDATE AD_Field SET SeqNo=170,IsDisplayed='Y' WHERE AD_Field_ID=200254
;
-- Aug 6, 2012 12:47:20 PM COT
UPDATE AD_Field SET SeqNo=180,IsDisplayed='Y' WHERE AD_Field_ID=200079
;
-- Aug 6, 2012 12:47:20 PM COT
UPDATE AD_Field SET SeqNo=190,IsDisplayed='Y' WHERE AD_Field_ID=200080
;
-- Aug 6, 2012 12:47:31 PM COT
UPDATE AD_Field SET IsSameLine='Y',Updated=TO_DATE('2012-08-06 12:47:31','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200086
;
-- Aug 6, 2012 12:47:35 PM COT
UPDATE AD_Field SET IsSameLine='N',Updated=TO_DATE('2012-08-06 12:47:35','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200089
;
-- Aug 6, 2012 12:47:39 PM COT
UPDATE AD_Field SET IsSameLine='Y',Updated=TO_DATE('2012-08-06 12:47:39','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200094
;
-- Aug 6, 2012 12:47:56 PM COT
UPDATE AD_Field SET SeqNo=170,IsDisplayed='Y' WHERE AD_Field_ID=200079
;
-- Aug 6, 2012 12:47:56 PM COT
UPDATE AD_Field SET SeqNo=180,IsDisplayed='Y' WHERE AD_Field_ID=200254
;
-- Aug 6, 2012 12:48:02 PM COT
UPDATE AD_Field SET IsSameLine='Y',Updated=TO_DATE('2012-08-06 12:48:02','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200079
;
-- Aug 6, 2012 1:25:02 PM COT
UPDATE AD_Column SET FieldLength=10, AD_Reference_ID=11,Updated=TO_DATE('2012-08-06 13:25:02','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=200236
;
-- Aug 6, 2012 1:25:19 PM COT
UPDATE AD_Element SET Description='Lenght of required alphabetical sequence',Updated=TO_DATE('2012-08-06 13:25:19','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Element_ID=200068
;
-- Aug 6, 2012 1:25:19 PM COT
UPDATE AD_Element_Trl SET IsTranslated='N' WHERE AD_Element_ID=200068
;
-- Aug 6, 2012 1:25:19 PM COT
UPDATE AD_Column SET ColumnName='AlphabeticalSequence', Name='Alphabetical Sequence', Description='Lenght of required alphabetical sequence', Help=NULL WHERE AD_Element_ID=200068
;
-- Aug 6, 2012 1:25:19 PM COT
UPDATE AD_Process_Para SET ColumnName='AlphabeticalSequence', Name='Alphabetical Sequence', Description='Lenght of required alphabetical sequence', Help=NULL, AD_Element_ID=200068 WHERE UPPER(ColumnName)='ALPHABETICALSEQUENCE' AND IsCentrallyMaintained='Y' AND AD_Element_ID IS NULL
;
-- Aug 6, 2012 1:25:19 PM COT
UPDATE AD_Process_Para SET ColumnName='AlphabeticalSequence', Name='Alphabetical Sequence', Description='Lenght of required alphabetical sequence', Help=NULL WHERE AD_Element_ID=200068 AND IsCentrallyMaintained='Y'
;
-- Aug 6, 2012 1:25:19 PM COT
UPDATE AD_Field SET Name='Alphabetical Sequence', Description='Lenght of required alphabetical sequence', Help=NULL WHERE AD_Column_ID IN (SELECT AD_Column_ID FROM AD_Column WHERE AD_Element_ID=200068) AND IsCentrallyMaintained='Y'
;
-- Aug 6, 2012 1:25:31 PM COT
ALTER TABLE ad_passwordrule DROP ( AlphabeticalSequence ) CASCADE CONSTRAINT
;
-- Aug 6, 2012 1:27:54 PM COT
ALTER TABLE AD_PasswordRule ADD AlphabeticalSequence NUMBER(10) DEFAULT NULL
;
-- Aug 6, 2012 1:28:58 PM COT
UPDATE AD_Column SET FieldLength=10, AD_Reference_ID=11,Updated=TO_DATE('2012-08-06 13:28:58','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=200131
;
ALTER TABLE ad_passwordrule DROP ( QWERTYSequence ) CASCADE CONSTRAINT
;
-- Aug 6, 2012 1:29:01 PM COT
ALTER TABLE AD_PasswordRule ADD QWERTYSequence NUMBER(10) DEFAULT NULL
;
-- Aug 6, 2012 1:29:26 PM COT
UPDATE AD_Element SET Description='Lenght of QWERTY sequences to validate',Updated=TO_DATE('2012-08-06 13:29:26','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Element_ID=200029
;
-- Aug 6, 2012 1:29:26 PM COT
UPDATE AD_Element_Trl SET IsTranslated='N' WHERE AD_Element_ID=200029
;
-- Aug 6, 2012 1:29:26 PM COT
UPDATE AD_Column SET ColumnName='QWERTYSequence', Name='QWERTY Sequence', Description='Lenght of QWERTY sequences to validate', Help=NULL WHERE AD_Element_ID=200029
;
-- Aug 6, 2012 1:29:26 PM COT
UPDATE AD_Process_Para SET ColumnName='QWERTYSequence', Name='QWERTY Sequence', Description='Lenght of QWERTY sequences to validate', Help=NULL, AD_Element_ID=200029 WHERE UPPER(ColumnName)='QWERTYSEQUENCE' AND IsCentrallyMaintained='Y' AND AD_Element_ID IS NULL
;
-- Aug 6, 2012 1:29:26 PM COT
UPDATE AD_Process_Para SET ColumnName='QWERTYSequence', Name='QWERTY Sequence', Description='Lenght of QWERTY sequences to validate', Help=NULL WHERE AD_Element_ID=200029 AND IsCentrallyMaintained='Y'
;
-- Aug 6, 2012 1:29:26 PM COT
UPDATE AD_Field SET Name='QWERTY Sequence', Description='Lenght of QWERTY sequences to validate', Help=NULL WHERE AD_Column_ID IN (SELECT AD_Column_ID FROM AD_Column WHERE AD_Element_ID=200029) AND IsCentrallyMaintained='Y'
;
-- Aug 6, 2012 1:29:52 PM COT
UPDATE AD_Element SET Description='Lenght of alphabetical sequence to validate',Updated=TO_DATE('2012-08-06 13:29:52','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Element_ID=200068
;
-- Aug 6, 2012 1:29:52 PM COT
UPDATE AD_Element_Trl SET IsTranslated='N' WHERE AD_Element_ID=200068
;
-- Aug 6, 2012 1:29:52 PM COT
UPDATE AD_Column SET ColumnName='AlphabeticalSequence', Name='Alphabetical Sequence', Description='Lenght of alphabetical sequence to validate', Help=NULL WHERE AD_Element_ID=200068
;
-- Aug 6, 2012 1:29:52 PM COT
UPDATE AD_Process_Para SET ColumnName='AlphabeticalSequence', Name='Alphabetical Sequence', Description='Lenght of alphabetical sequence to validate', Help=NULL, AD_Element_ID=200068 WHERE UPPER(ColumnName)='ALPHABETICALSEQUENCE' AND IsCentrallyMaintained='Y' AND AD_Element_ID IS NULL
;
-- Aug 6, 2012 1:29:52 PM COT
UPDATE AD_Process_Para SET ColumnName='AlphabeticalSequence', Name='Alphabetical Sequence', Description='Lenght of alphabetical sequence to validate', Help=NULL WHERE AD_Element_ID=200068 AND IsCentrallyMaintained='Y'
;
-- Aug 6, 2012 1:29:52 PM COT
UPDATE AD_Field SET Name='Alphabetical Sequence', Description='Lenght of alphabetical sequence to validate', Help=NULL WHERE AD_Column_ID IN (SELECT AD_Column_ID FROM AD_Column WHERE AD_Element_ID=200068) AND IsCentrallyMaintained='Y'
;
-- Aug 6, 2012 1:30:38 PM COT
UPDATE AD_Element SET Description='Length of numerical sequence to validate',Updated=TO_DATE('2012-08-06 13:30:38','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Element_ID=200028
;
-- Aug 6, 2012 1:30:38 PM COT
UPDATE AD_Element_Trl SET IsTranslated='N' WHERE AD_Element_ID=200028
;
-- Aug 6, 2012 1:30:38 PM COT
UPDATE AD_Column SET ColumnName='NumericalSequence', Name='Numerical Sequence', Description='Length of numerical sequence to validate', Help=NULL WHERE AD_Element_ID=200028
;
-- Aug 6, 2012 1:30:38 PM COT
UPDATE AD_Process_Para SET ColumnName='NumericalSequence', Name='Numerical Sequence', Description='Length of numerical sequence to validate', Help=NULL, AD_Element_ID=200028 WHERE UPPER(ColumnName)='NUMERICALSEQUENCE' AND IsCentrallyMaintained='Y' AND AD_Element_ID IS NULL
;
-- Aug 6, 2012 1:30:38 PM COT
UPDATE AD_Process_Para SET ColumnName='NumericalSequence', Name='Numerical Sequence', Description='Length of numerical sequence to validate', Help=NULL WHERE AD_Element_ID=200028 AND IsCentrallyMaintained='Y'
;
-- Aug 6, 2012 1:30:38 PM COT
UPDATE AD_Field SET Name='Numerical Sequence', Description='Length of numerical sequence to validate', Help=NULL WHERE AD_Column_ID IN (SELECT AD_Column_ID FROM AD_Column WHERE AD_Element_ID=200028) AND IsCentrallyMaintained='Y'
;
-- Aug 6, 2012 1:31:18 PM COT
UPDATE AD_Element SET Description='Require at least # alphabetical in passwords',Updated=TO_DATE('2012-08-06 13:31:18','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Element_ID=200027
;
-- Aug 6, 2012 1:31:18 PM COT
UPDATE AD_Element_Trl SET IsTranslated='N' WHERE AD_Element_ID=200027
;
-- Aug 6, 2012 1:31:18 PM COT
UPDATE AD_Column SET ColumnName='AlphabeticalCharacter', Name='Alphabetical Character', Description='Require at least # alphabetical in passwords', Help=NULL WHERE AD_Element_ID=200027
;
-- Aug 6, 2012 1:31:18 PM COT
UPDATE AD_Process_Para SET ColumnName='AlphabeticalCharacter', Name='Alphabetical Character', Description='Require at least # alphabetical in passwords', Help=NULL, AD_Element_ID=200027 WHERE UPPER(ColumnName)='ALPHABETICALCHARACTER' AND IsCentrallyMaintained='Y' AND AD_Element_ID IS NULL
;
-- Aug 6, 2012 1:31:18 PM COT
UPDATE AD_Process_Para SET ColumnName='AlphabeticalCharacter', Name='Alphabetical Character', Description='Require at least # alphabetical in passwords', Help=NULL WHERE AD_Element_ID=200027 AND IsCentrallyMaintained='Y'
;
-- Aug 6, 2012 1:31:18 PM COT
UPDATE AD_Field SET Name='Alphabetical Character', Description='Require at least # alphabetical in passwords', Help=NULL WHERE AD_Column_ID IN (SELECT AD_Column_ID FROM AD_Column WHERE AD_Element_ID=200027) AND IsCentrallyMaintained='Y'
;
-- Aug 6, 2012 1:32:21 PM COT
UPDATE AD_Element SET Description='Length of repeated characters to validate',Updated=TO_DATE('2012-08-06 13:32:21','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Element_ID=200069
;
-- Aug 6, 2012 1:32:21 PM COT
UPDATE AD_Element_Trl SET IsTranslated='N' WHERE AD_Element_ID=200069
;
-- Aug 6, 2012 1:32:21 PM COT
UPDATE AD_Column SET ColumnName='RepeatCharacterRegex', Name='Repeat Character Regex', Description='Length of repeated characters to validate', Help=NULL WHERE AD_Element_ID=200069
;
-- Aug 6, 2012 1:32:21 PM COT
UPDATE AD_Process_Para SET ColumnName='RepeatCharacterRegex', Name='Repeat Character Regex', Description='Length of repeated characters to validate', Help=NULL, AD_Element_ID=200069 WHERE UPPER(ColumnName)='REPEATCHARACTERREGEX' AND IsCentrallyMaintained='Y' AND AD_Element_ID IS NULL
;
-- Aug 6, 2012 1:32:21 PM COT
UPDATE AD_Process_Para SET ColumnName='RepeatCharacterRegex', Name='Repeat Character Regex', Description='Length of repeated characters to validate', Help=NULL WHERE AD_Element_ID=200069 AND IsCentrallyMaintained='Y'
;
-- Aug 6, 2012 1:32:21 PM COT
UPDATE AD_Field SET Name='Repeat Character Regex', Description='Length of repeated characters to validate', Help=NULL WHERE AD_Column_ID IN (SELECT AD_Column_ID FROM AD_Column WHERE AD_Element_ID=200069) AND IsCentrallyMaintained='Y'
;
-- Aug 6, 2012 1:34:52 PM COT
UPDATE AD_Element SET ColumnName='IsDictMatchBackwards',Updated=TO_DATE('2012-08-06 13:34:52','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Element_ID=200033
;
-- Aug 6, 2012 1:34:52 PM COT
UPDATE AD_Column SET ColumnName='IsDictMatchBackwards', Name='Match Backwards of Dictionary', Description='Match dictionary words backwards', Help=NULL WHERE AD_Element_ID=200033
;
-- Aug 6, 2012 1:34:52 PM COT
UPDATE AD_Process_Para SET ColumnName='IsDictMatchBackwards', Name='Match Backwards of Dictionary', Description='Match dictionary words backwards', Help=NULL, AD_Element_ID=200033 WHERE UPPER(ColumnName)='ISDICTMATCHBACKWARDS' AND IsCentrallyMaintained='Y' AND AD_Element_ID IS NULL
;
-- Aug 6, 2012 1:34:52 PM COT
UPDATE AD_Process_Para SET ColumnName='IsDictMatchBackwards', Name='Match Backwards of Dictionary', Description='Match dictionary words backwards', Help=NULL WHERE AD_Element_ID=200033 AND IsCentrallyMaintained='Y'
;
-- Aug 6, 2012 1:35:09 PM COT
UPDATE AD_Column SET IsMandatory='Y', DefaultValue='N',Updated=TO_DATE('2012-08-06 13:35:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=200138
;
-- Aug 6, 2012 1:35:12 PM COT
ALTER TABLE ad_passwordrule RENAME COLUMN DictMatchBackwards TO IsDictMatchBackwards
;
-- Aug 6, 2012 1:35:32 PM COT
UPDATE AD_Column SET IsMandatory='Y', DefaultValue='N',Updated=TO_DATE('2012-08-06 13:35:32','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=200133
;
-- Aug 6, 2012 1:35:33 PM COT
ALTER TABLE ad_passwordrule RENAME COLUMN whitespace TO iswhitespace
;
-- Aug 6, 2012 1:36:48 PM COT
DELETE FROM AD_Column_Trl WHERE AD_Column_ID=200240
;
-- Aug 6, 2012 1:36:48 PM COT
DELETE FROM AD_Column WHERE AD_Column_ID=200240
;
-- Aug 6, 2012 2:16:41 PM COT
INSERT INTO AD_Element (ColumnName,AD_Element_ID,EntityType,Name,Description,PrintName,AD_Element_UU,AD_Client_ID,Created,Updated,AD_Org_ID,CreatedBy,UpdatedBy,IsActive) VALUES ('IsUserNameRule',200072,'D','User Name Rule','Validate the password doesn''t contain user name (ignore case and match backwards)','User Name Rule','9eda063a-90bd-442f-95ed-89804cf6497a',0,TO_DATE('2012-08-06 14:16:40','YYYY-MM-DD HH24:MI:SS'),TO_DATE('2012-08-06 14:16:40','YYYY-MM-DD HH24:MI:SS'),0,100,100,'Y')
;
-- Aug 6, 2012 2:16:41 PM COT
INSERT INTO AD_Element_Trl (AD_Language,AD_Element_ID, Help,PO_Description,PO_Help,Name,Description,PrintName,PO_Name,PO_PrintName, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy,AD_Element_Trl_UU ) SELECT l.AD_Language,t.AD_Element_ID, t.Help,t.PO_Description,t.PO_Help,t.Name,t.Description,t.PrintName,t.PO_Name,t.PO_PrintName, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy,Generate_UUID() FROM AD_Language l, AD_Element t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Element_ID=200072 AND NOT EXISTS (SELECT * FROM AD_Element_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Element_ID=t.AD_Element_ID)
;
-- Aug 6, 2012 1:37:02 PM COT
UPDATE AD_Column SET IsMandatory='Y', AD_Element_ID=200072, ColumnName='IsUserNameRule', Description='Validate the password doesn''t contain user name (ignore case and match backwards)', DefaultValue='N', Help=NULL, Name='User Name Rule',Updated=TO_DATE('2012-08-06 13:37:02','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=200134
;
-- Aug 6, 2012 1:37:02 PM COT
UPDATE AD_Column_Trl SET IsTranslated='N' WHERE AD_Column_ID=200134
;
-- Aug 6, 2012 1:37:02 PM COT
UPDATE AD_Field SET Name='User Name Rule', Description='Validate the password doesn''t contain user name (ignore case and match backwards)', Help=NULL WHERE AD_Column_ID=200134 AND IsCentrallyMaintained='Y'
;
-- Aug 6, 2012 1:34:16 PM COT
ALTER TABLE ad_passwordrule RENAME COLUMN username TO IsUserNameRule
;
-- Aug 6, 2012 1:37:03 PM COT
UPDATE AD_PasswordRule SET IsUserNameRule='N' WHERE IsUserNameRule IS NULL
;
-- Aug 6, 2012 1:37:10 PM COT
UPDATE AD_Field SET SeqNo=210,IsDisplayed='Y' WHERE AD_Field_ID=200090
;
-- Aug 6, 2012 1:37:57 PM COT
UPDATE AD_Element SET ColumnName='IsUsingDictionary',Updated=TO_DATE('2012-08-06 13:37:57','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Element_ID=200031
;
-- Aug 6, 2012 1:37:57 PM COT
UPDATE AD_Column SET ColumnName='IsUsingDictionary', Name='Using Dictionary', Description=NULL, Help=NULL WHERE AD_Element_ID=200031
;
-- Aug 6, 2012 1:37:57 PM COT
UPDATE AD_Process_Para SET ColumnName='IsUsingDictionary', Name='Using Dictionary', Description=NULL, Help=NULL, AD_Element_ID=200031 WHERE UPPER(ColumnName)='ISUSINGDICTIONARY' AND IsCentrallyMaintained='Y' AND AD_Element_ID IS NULL
;
-- Aug 6, 2012 1:37:57 PM COT
UPDATE AD_Process_Para SET ColumnName='IsUsingDictionary', Name='Using Dictionary', Description=NULL, Help=NULL WHERE AD_Element_ID=200031 AND IsCentrallyMaintained='Y'
;
-- Aug 6, 2012 1:38:17 PM COT
UPDATE AD_Column SET IsMandatory='Y', DefaultValue='N',Updated=TO_DATE('2012-08-06 13:38:17','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=200135
;
-- Aug 6, 2012 1:38:18 PM COT
ALTER TABLE ad_passwordrule RENAME COLUMN UsingDictionary TO IsUsingDictionary
;
-- Aug 6, 2012 1:57:03 PM COT
UPDATE AD_Column SET IsMandatory='Y', DefaultValue='Y', IsAllowCopy='N',Updated=TO_DATE('2012-08-06 13:57:03','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=200121
;
-- Aug 6, 2012 1:57:05 PM COT
ALTER TABLE AD_PasswordRule MODIFY IsActive CHAR(1) DEFAULT 'Y'
;
-- Aug 6, 2012 1:57:05 PM COT
UPDATE AD_PasswordRule SET IsActive='Y' WHERE IsActive IS NULL
;
-- Aug 6, 2012 1:57:05 PM COT
ALTER TABLE AD_PasswordRule MODIFY IsActive NOT NULL
;
-- Aug 6, 2012 1:57:11 PM COT
ALTER TABLE AD_PasswordRule MODIFY IsDictMatchBackwards CHAR(1) DEFAULT 'N'
;
-- Aug 6, 2012 1:57:11 PM COT
UPDATE AD_PasswordRule SET IsDictMatchBackwards='N' WHERE IsDictMatchBackwards IS NULL
;
-- Aug 6, 2012 1:57:17 PM COT
ALTER TABLE AD_PasswordRule MODIFY IsUserNameRule CHAR(1) DEFAULT 'N'
;
-- Aug 6, 2012 1:57:17 PM COT
UPDATE AD_PasswordRule SET IsUserNameRule='N' WHERE IsUserNameRule IS NULL
;
-- Aug 6, 2012 1:57:22 PM COT
ALTER TABLE AD_PasswordRule MODIFY IsUsingDictionary CHAR(1) DEFAULT 'N'
;
-- Aug 6, 2012 1:57:22 PM COT
UPDATE AD_PasswordRule SET IsUsingDictionary='N' WHERE IsUsingDictionary IS NULL
;
-- Aug 6, 2012 1:57:28 PM COT
ALTER TABLE AD_PasswordRule MODIFY IsWhitespace CHAR(1) DEFAULT 'N'
;
-- Aug 6, 2012 1:57:28 PM COT
UPDATE AD_PasswordRule SET IsWhitespace='N' WHERE IsWhitespace IS NULL
;
-- Aug 6, 2012 2:31:39 PM COT
UPDATE AD_Field SET SeqNo=110,IsDisplayed='Y' WHERE AD_Field_ID=200251
;
-- Aug 6, 2012 2:31:39 PM COT
UPDATE AD_Field SET SeqNo=120,IsDisplayed='Y' WHERE AD_Field_ID=200086
;
-- Aug 6, 2012 2:31:39 PM COT
UPDATE AD_Field SET SeqNo=130,IsDisplayed='Y' WHERE AD_Field_ID=200089
;
-- Aug 6, 2012 2:31:39 PM COT
UPDATE AD_Field SET SeqNo=140,IsDisplayed='Y' WHERE AD_Field_ID=200255
;
-- Aug 6, 2012 2:31:39 PM COT
UPDATE AD_Field SET SeqNo=150,IsDisplayed='Y' WHERE AD_Field_ID=200090
;
-- Aug 6, 2012 2:31:39 PM COT
UPDATE AD_Field SET SeqNo=160,IsDisplayed='Y' WHERE AD_Field_ID=200094
;
-- Aug 6, 2012 2:31:39 PM COT
UPDATE AD_Field SET SeqNo=170,IsDisplayed='Y' WHERE AD_Field_ID=200093
;
-- Aug 6, 2012 2:31:39 PM COT
UPDATE AD_Field SET SeqNo=180,IsDisplayed='Y' WHERE AD_Field_ID=200079
;
-- Aug 6, 2012 2:31:39 PM COT
UPDATE AD_Field SET SeqNo=190,IsDisplayed='Y' WHERE AD_Field_ID=200254
;
-- Aug 6, 2012 2:31:40 PM COT
UPDATE AD_Field SET SeqNo=200,IsDisplayed='Y' WHERE AD_Field_ID=200080
;
-- Aug 6, 2012 2:31:40 PM COT
UPDATE AD_Field SET SeqNo=210,IsDisplayed='Y' WHERE AD_Field_ID=200074
;
-- Aug 6, 2012 2:31:57 PM COT
UPDATE AD_Field SET IsSameLine='Y',Updated=TO_DATE('2012-08-06 14:31:57','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200255
;
-- Aug 6, 2012 3:57:31 PM COT
UPDATE AD_Element SET ColumnName='IsWhitespace', Description='Whitespace validation',Updated=TO_DATE('2012-08-06 15:57:31','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Element_ID=200030
;
-- Aug 6, 2012 3:57:31 PM COT
UPDATE AD_Element_Trl SET IsTranslated='N' WHERE AD_Element_ID=200030
;
-- Aug 6, 2012 3:57:31 PM COT
UPDATE AD_Column SET ColumnName='IsWhitespace', Name='Whitespace', Description='Whitespace validation', Help=NULL WHERE AD_Element_ID=200030
;
-- Aug 6, 2012 3:57:31 PM COT
UPDATE AD_Process_Para SET ColumnName='IsWhitespace', Name='Whitespace', Description='Whitespace validation', Help=NULL, AD_Element_ID=200030 WHERE UPPER(ColumnName)='ISWHITESPACE' AND IsCentrallyMaintained='Y' AND AD_Element_ID IS NULL
;
-- Aug 6, 2012 3:57:31 PM COT
UPDATE AD_Process_Para SET ColumnName='IsWhitespace', Name='Whitespace', Description='Whitespace validation', Help=NULL WHERE AD_Element_ID=200030 AND IsCentrallyMaintained='Y'
;
-- Aug 6, 2012 3:57:31 PM COT
UPDATE AD_Field SET Name='Whitespace', Description='Whitespace validation', Help=NULL WHERE AD_Column_ID IN (SELECT AD_Column_ID FROM AD_Column WHERE AD_Element_ID=200030) AND IsCentrallyMaintained='Y'
;
-- Aug 6, 2012 5:03:43 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 ('E','Password Errors',200011,'D','9a29cf03-6807-43c4-aa53-982d2aa63dfc','PasswordErrors','Y',TO_DATE('2012-08-06 17:03:42','YYYY-MM-DD HH24:MI:SS'),100,100,0,0,TO_DATE('2012-08-06 17:03:42','YYYY-MM-DD HH24:MI:SS'))
;
-- Aug 6, 2012 5:03:43 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,AD_Message_Trl_UU ) 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,Generate_UUID() FROM AD_Language l, AD_Message t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Message_ID=200011 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)
;
-- Aug 6, 2012 8:32:30 PM COT
UPDATE AD_Field SET DisplayLogic='@IsUsingDictionary@=Y',Updated=TO_DATE('2012-08-06 20:32:30','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200254
;
-- Aug 6, 2012 8:32:38 PM COT
UPDATE AD_Field SET DisplayLogic='@IsUsingDictionary@=Y',Updated=TO_DATE('2012-08-06 20:32:38','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200079
;
-- Aug 6, 2012 8:32:42 PM COT
UPDATE AD_Field SET DisplayLogic='@IsUsingDictionary@=Y',Updated=TO_DATE('2012-08-06 20:32:42','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200080
;
UPDATE AD_System
SET LastMigrationScriptApplied='865_IDEMPIERE-221.sql'
WHERE LastMigrationScriptApplied<'865_IDEMPIERE-221.sql'
OR LastMigrationScriptApplied IS NULL
;

View File

@ -0,0 +1,19 @@
update ad_element set entitytype = 'D' where entitytype='U' and AD_Element_id < 1000000;
update ad_field set entitytype = 'D' where entitytype='U' and AD_Field_id < 1000000;
update AD_Column set entitytype = 'D' where entitytype='U' and AD_Column_id < 1000000;
update AD_Column set entitytype = 'D' where entitytype='A' and AD_Column_id < 1000000;
update AD_Process_Para set entitytype = 'D' where entitytype='U' and AD_Process_Para_ID < 1000000;
update AD_Menu set entitytype = 'D' where entitytype='U' and AD_Menu_ID < 1000000;
update AD_Tab set entitytype = 'D' where entitytype='U' and AD_Tab_ID < 1000000;
UPDATE AD_System
SET LastMigrationScriptApplied='868_FixWrongEntityTypes.sql'
WHERE LastMigrationScriptApplied<'868_FixWrongEntityTypes.sql'
OR LastMigrationScriptApplied IS NULL
;

File diff suppressed because it is too large Load Diff

View File

@ -6,3 +6,10 @@ UPDATE AD_Column SET AD_Reference_ID=12,Updated=TO_TIMESTAMP('2012-04-06 16:08:2
-- Apr 6, 2012 4:10:02 PM CEST -- Apr 6, 2012 4:10:02 PM CEST
UPDATE AD_Column SET AD_Reference_ID=12,Updated=TO_TIMESTAMP('2012-04-06 16:10:02','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=7832 UPDATE AD_Column SET AD_Reference_ID=12,Updated=TO_TIMESTAMP('2012-04-06 16:10:02','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=7832
; ;
UPDATE AD_System
SET LastMigrationScriptApplied='834_IDEMPIERE-113.sql'
WHERE LastMigrationScriptApplied<'834_IDEMPIERE-113.sql'
OR LastMigrationScriptApplied IS NULL
;

View File

@ -0,0 +1,594 @@
-- Aug 6, 2012 12:39:27 PM COT
-- IDEMPIERE-221 Implement password policies
UPDATE AD_Table SET AD_Window_ID=200002,Updated=TO_TIMESTAMP('2012-08-06 12:39:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Table_ID=200005
;
-- Aug 6, 2012 12:44:29 PM COT
UPDATE AD_Field SET SeqNo=40,IsDisplayed='Y' WHERE AD_Field_ID=200252
;
-- Aug 6, 2012 12:44:29 PM COT
UPDATE AD_Field SET SeqNo=60,IsDisplayed='Y' WHERE AD_Field_ID=200076
;
-- Aug 6, 2012 12:44:29 PM COT
UPDATE AD_Field SET SeqNo=70,IsDisplayed='Y' WHERE AD_Field_ID=200081
;
-- Aug 6, 2012 12:44:29 PM COT
UPDATE AD_Field SET SeqNo=80,IsDisplayed='Y' WHERE AD_Field_ID=200256
;
-- Aug 6, 2012 12:44:29 PM COT
UPDATE AD_Field SET SeqNo=120,IsDisplayed='Y' WHERE AD_Field_ID=200086
;
-- Aug 6, 2012 12:44:29 PM COT
UPDATE AD_Field SET SeqNo=130,IsDisplayed='Y' WHERE AD_Field_ID=200089
;
-- Aug 6, 2012 12:44:29 PM COT
UPDATE AD_Field SET SeqNo=140,IsDisplayed='Y' WHERE AD_Field_ID=200094
;
-- Aug 6, 2012 12:44:29 PM COT
UPDATE AD_Field SET SeqNo=150,IsDisplayed='Y' WHERE AD_Field_ID=200093
;
-- Aug 6, 2012 12:44:29 PM COT
UPDATE AD_Field SET SeqNo=160,IsDisplayed='Y' WHERE AD_Field_ID=200254
;
-- Aug 6, 2012 12:44:29 PM COT
UPDATE AD_Field SET SeqNo=170,IsDisplayed='Y' WHERE AD_Field_ID=200079
;
-- Aug 6, 2012 12:44:29 PM COT
UPDATE AD_Field SET SeqNo=180,IsDisplayed='Y' WHERE AD_Field_ID=200080
;
-- Aug 6, 2012 12:44:29 PM COT
UPDATE AD_Field SET SeqNo=190,IsDisplayed='Y' WHERE AD_Field_ID=200251
;
-- Aug 6, 2012 12:44:29 PM COT
UPDATE AD_Field SET SeqNo=200,IsDisplayed='Y' WHERE AD_Field_ID=200074
;
-- Aug 6, 2012 12:44:46 PM COT
UPDATE AD_Field SET IsSameLine='Y',Updated=TO_TIMESTAMP('2012-08-06 12:44:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200083
;
-- Aug 6, 2012 12:45:17 PM COT
UPDATE AD_Element SET Name='Minimum Length', PrintName='Minimum Length',Updated=TO_TIMESTAMP('2012-08-06 12:45:17','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Element_ID=200065
;
-- Aug 6, 2012 12:45:17 PM COT
UPDATE AD_Element_Trl SET IsTranslated='N' WHERE AD_Element_ID=200065
;
-- Aug 6, 2012 12:45:17 PM COT
UPDATE AD_Column SET ColumnName='MinLength', Name='Minimum Length', Description=NULL, Help=NULL WHERE AD_Element_ID=200065
;
-- Aug 6, 2012 12:45:17 PM COT
UPDATE AD_Process_Para SET ColumnName='MinLength', Name='Minimum Length', Description=NULL, Help=NULL, AD_Element_ID=200065 WHERE UPPER(ColumnName)='MINLENGTH' AND IsCentrallyMaintained='Y' AND AD_Element_ID IS NULL
;
-- Aug 6, 2012 12:45:17 PM COT
UPDATE AD_Process_Para SET ColumnName='MinLength', Name='Minimum Length', Description=NULL, Help=NULL WHERE AD_Element_ID=200065 AND IsCentrallyMaintained='Y'
;
-- Aug 6, 2012 12:45:17 PM COT
UPDATE AD_Field SET Name='Minimum Length', Description=NULL, Help=NULL WHERE AD_Column_ID IN (SELECT AD_Column_ID FROM AD_Column WHERE AD_Element_ID=200065) AND IsCentrallyMaintained='Y'
;
-- Aug 6, 2012 12:45:17 PM COT
UPDATE AD_PrintFormatItem SET PrintName='Minimum Length', Name='Minimum Length' WHERE IsCentrallyMaintained='Y' AND EXISTS (SELECT * FROM AD_Column c WHERE c.AD_Column_ID=AD_PrintFormatItem.AD_Column_ID AND c.AD_Element_ID=200065)
;
-- Aug 6, 2012 12:45:54 PM COT
UPDATE AD_Field SET IsSameLine='Y',Updated=TO_TIMESTAMP('2012-08-06 12:45:54','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200081
;
-- Aug 6, 2012 12:45:58 PM COT
UPDATE AD_Field SET IsSameLine='Y',Updated=TO_TIMESTAMP('2012-08-06 12:45:58','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200082
;
-- Aug 6, 2012 12:46:09 PM COT
UPDATE AD_Field SET IsSameLine='Y',Updated=TO_TIMESTAMP('2012-08-06 12:46:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200089
;
-- Aug 6, 2012 12:46:45 PM COT
UPDATE AD_Element SET Name='Whitespace', PrintName='Whitespace',Updated=TO_TIMESTAMP('2012-08-06 12:46:45','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Element_ID=200030
;
-- Aug 6, 2012 12:46:45 PM COT
UPDATE AD_Element_Trl SET IsTranslated='N' WHERE AD_Element_ID=200030
;
-- Aug 6, 2012 12:46:45 PM COT
UPDATE AD_Column SET ColumnName='whitespace', Name='Whitespace', Description=NULL, Help=NULL WHERE AD_Element_ID=200030
;
-- Aug 6, 2012 12:46:45 PM COT
UPDATE AD_Process_Para SET ColumnName='whitespace', Name='Whitespace', Description=NULL, Help=NULL, AD_Element_ID=200030 WHERE UPPER(ColumnName)='WHITESPACE' AND IsCentrallyMaintained='Y' AND AD_Element_ID IS NULL
;
-- Aug 6, 2012 12:46:45 PM COT
UPDATE AD_Process_Para SET ColumnName='whitespace', Name='Whitespace', Description=NULL, Help=NULL WHERE AD_Element_ID=200030 AND IsCentrallyMaintained='Y'
;
-- Aug 6, 2012 12:46:45 PM COT
UPDATE AD_Field SET Name='Whitespace', Description=NULL, Help=NULL WHERE AD_Column_ID IN (SELECT AD_Column_ID FROM AD_Column WHERE AD_Element_ID=200030) AND IsCentrallyMaintained='Y'
;
-- Aug 6, 2012 12:46:45 PM COT
UPDATE AD_PrintFormatItem SET PrintName='Whitespace', Name='Whitespace' WHERE IsCentrallyMaintained='Y' AND EXISTS (SELECT * FROM AD_Column c WHERE c.AD_Column_ID=AD_PrintFormatItem.AD_Column_ID AND c.AD_Element_ID=200030)
;
-- Aug 6, 2012 12:47:20 PM COT
UPDATE AD_Field SET SeqNo=120,IsDisplayed='Y' WHERE AD_Field_ID=200251
;
-- Aug 6, 2012 12:47:20 PM COT
UPDATE AD_Field SET SeqNo=130,IsDisplayed='Y' WHERE AD_Field_ID=200086
;
-- Aug 6, 2012 12:47:20 PM COT
UPDATE AD_Field SET SeqNo=140,IsDisplayed='Y' WHERE AD_Field_ID=200089
;
-- Aug 6, 2012 12:47:20 PM COT
UPDATE AD_Field SET SeqNo=150,IsDisplayed='Y' WHERE AD_Field_ID=200094
;
-- Aug 6, 2012 12:47:20 PM COT
UPDATE AD_Field SET SeqNo=160,IsDisplayed='Y' WHERE AD_Field_ID=200093
;
-- Aug 6, 2012 12:47:20 PM COT
UPDATE AD_Field SET SeqNo=170,IsDisplayed='Y' WHERE AD_Field_ID=200254
;
-- Aug 6, 2012 12:47:20 PM COT
UPDATE AD_Field SET SeqNo=180,IsDisplayed='Y' WHERE AD_Field_ID=200079
;
-- Aug 6, 2012 12:47:20 PM COT
UPDATE AD_Field SET SeqNo=190,IsDisplayed='Y' WHERE AD_Field_ID=200080
;
-- Aug 6, 2012 12:47:31 PM COT
UPDATE AD_Field SET IsSameLine='Y',Updated=TO_TIMESTAMP('2012-08-06 12:47:31','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200086
;
-- Aug 6, 2012 12:47:35 PM COT
UPDATE AD_Field SET IsSameLine='N',Updated=TO_TIMESTAMP('2012-08-06 12:47:35','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200089
;
-- Aug 6, 2012 12:47:39 PM COT
UPDATE AD_Field SET IsSameLine='Y',Updated=TO_TIMESTAMP('2012-08-06 12:47:39','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200094
;
-- Aug 6, 2012 12:47:56 PM COT
UPDATE AD_Field SET SeqNo=170,IsDisplayed='Y' WHERE AD_Field_ID=200079
;
-- Aug 6, 2012 12:47:56 PM COT
UPDATE AD_Field SET SeqNo=180,IsDisplayed='Y' WHERE AD_Field_ID=200254
;
-- Aug 6, 2012 12:48:02 PM COT
UPDATE AD_Field SET IsSameLine='Y',Updated=TO_TIMESTAMP('2012-08-06 12:48:02','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200079
;
-- Aug 6, 2012 1:25:02 PM COT
UPDATE AD_Column SET FieldLength=10, AD_Reference_ID=11,Updated=TO_TIMESTAMP('2012-08-06 13:25:02','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=200236
;
-- Aug 6, 2012 1:25:19 PM COT
UPDATE AD_Element SET Description='Lenght of required alphabetical sequence',Updated=TO_TIMESTAMP('2012-08-06 13:25:19','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Element_ID=200068
;
-- Aug 6, 2012 1:25:19 PM COT
UPDATE AD_Element_Trl SET IsTranslated='N' WHERE AD_Element_ID=200068
;
-- Aug 6, 2012 1:25:19 PM COT
UPDATE AD_Column SET ColumnName='AlphabeticalSequence', Name='Alphabetical Sequence', Description='Lenght of required alphabetical sequence', Help=NULL WHERE AD_Element_ID=200068
;
-- Aug 6, 2012 1:25:19 PM COT
UPDATE AD_Process_Para SET ColumnName='AlphabeticalSequence', Name='Alphabetical Sequence', Description='Lenght of required alphabetical sequence', Help=NULL, AD_Element_ID=200068 WHERE UPPER(ColumnName)='ALPHABETICALSEQUENCE' AND IsCentrallyMaintained='Y' AND AD_Element_ID IS NULL
;
-- Aug 6, 2012 1:25:19 PM COT
UPDATE AD_Process_Para SET ColumnName='AlphabeticalSequence', Name='Alphabetical Sequence', Description='Lenght of required alphabetical sequence', Help=NULL WHERE AD_Element_ID=200068 AND IsCentrallyMaintained='Y'
;
-- Aug 6, 2012 1:25:19 PM COT
UPDATE AD_Field SET Name='Alphabetical Sequence', Description='Lenght of required alphabetical sequence', Help=NULL WHERE AD_Column_ID IN (SELECT AD_Column_ID FROM AD_Column WHERE AD_Element_ID=200068) AND IsCentrallyMaintained='Y'
;
-- Aug 6, 2012 1:25:31 PM COT
ALTER TABLE ad_passwordrule DROP COLUMN alphabeticalsequence
;
-- Aug 6, 2012 1:27:54 PM COT
ALTER TABLE AD_PasswordRule ADD COLUMN AlphabeticalSequence NUMERIC(10) DEFAULT NULL
;
-- Aug 6, 2012 1:28:58 PM COT
UPDATE AD_Column SET FieldLength=10, AD_Reference_ID=11,Updated=TO_TIMESTAMP('2012-08-06 13:28:58','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=200131
;
ALTER TABLE ad_passwordrule DROP COLUMN QWERTYSequence
;
-- Aug 6, 2012 1:29:01 PM COT
ALTER TABLE AD_PasswordRule ADD COLUMN QWERTYSequence NUMERIC(10) DEFAULT NULL
;
-- Aug 6, 2012 1:29:26 PM COT
UPDATE AD_Element SET Description='Lenght of QWERTY sequences to validate',Updated=TO_TIMESTAMP('2012-08-06 13:29:26','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Element_ID=200029
;
-- Aug 6, 2012 1:29:26 PM COT
UPDATE AD_Element_Trl SET IsTranslated='N' WHERE AD_Element_ID=200029
;
-- Aug 6, 2012 1:29:26 PM COT
UPDATE AD_Column SET ColumnName='QWERTYSequence', Name='QWERTY Sequence', Description='Lenght of QWERTY sequences to validate', Help=NULL WHERE AD_Element_ID=200029
;
-- Aug 6, 2012 1:29:26 PM COT
UPDATE AD_Process_Para SET ColumnName='QWERTYSequence', Name='QWERTY Sequence', Description='Lenght of QWERTY sequences to validate', Help=NULL, AD_Element_ID=200029 WHERE UPPER(ColumnName)='QWERTYSEQUENCE' AND IsCentrallyMaintained='Y' AND AD_Element_ID IS NULL
;
-- Aug 6, 2012 1:29:26 PM COT
UPDATE AD_Process_Para SET ColumnName='QWERTYSequence', Name='QWERTY Sequence', Description='Lenght of QWERTY sequences to validate', Help=NULL WHERE AD_Element_ID=200029 AND IsCentrallyMaintained='Y'
;
-- Aug 6, 2012 1:29:26 PM COT
UPDATE AD_Field SET Name='QWERTY Sequence', Description='Lenght of QWERTY sequences to validate', Help=NULL WHERE AD_Column_ID IN (SELECT AD_Column_ID FROM AD_Column WHERE AD_Element_ID=200029) AND IsCentrallyMaintained='Y'
;
-- Aug 6, 2012 1:29:52 PM COT
UPDATE AD_Element SET Description='Lenght of alphabetical sequence to validate',Updated=TO_TIMESTAMP('2012-08-06 13:29:52','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Element_ID=200068
;
-- Aug 6, 2012 1:29:52 PM COT
UPDATE AD_Element_Trl SET IsTranslated='N' WHERE AD_Element_ID=200068
;
-- Aug 6, 2012 1:29:52 PM COT
UPDATE AD_Column SET ColumnName='AlphabeticalSequence', Name='Alphabetical Sequence', Description='Lenght of alphabetical sequence to validate', Help=NULL WHERE AD_Element_ID=200068
;
-- Aug 6, 2012 1:29:52 PM COT
UPDATE AD_Process_Para SET ColumnName='AlphabeticalSequence', Name='Alphabetical Sequence', Description='Lenght of alphabetical sequence to validate', Help=NULL, AD_Element_ID=200068 WHERE UPPER(ColumnName)='ALPHABETICALSEQUENCE' AND IsCentrallyMaintained='Y' AND AD_Element_ID IS NULL
;
-- Aug 6, 2012 1:29:52 PM COT
UPDATE AD_Process_Para SET ColumnName='AlphabeticalSequence', Name='Alphabetical Sequence', Description='Lenght of alphabetical sequence to validate', Help=NULL WHERE AD_Element_ID=200068 AND IsCentrallyMaintained='Y'
;
-- Aug 6, 2012 1:29:52 PM COT
UPDATE AD_Field SET Name='Alphabetical Sequence', Description='Lenght of alphabetical sequence to validate', Help=NULL WHERE AD_Column_ID IN (SELECT AD_Column_ID FROM AD_Column WHERE AD_Element_ID=200068) AND IsCentrallyMaintained='Y'
;
-- Aug 6, 2012 1:30:38 PM COT
UPDATE AD_Element SET Description='Length of numerical sequence to validate',Updated=TO_TIMESTAMP('2012-08-06 13:30:38','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Element_ID=200028
;
-- Aug 6, 2012 1:30:38 PM COT
UPDATE AD_Element_Trl SET IsTranslated='N' WHERE AD_Element_ID=200028
;
-- Aug 6, 2012 1:30:38 PM COT
UPDATE AD_Column SET ColumnName='NumericalSequence', Name='Numerical Sequence', Description='Length of numerical sequence to validate', Help=NULL WHERE AD_Element_ID=200028
;
-- Aug 6, 2012 1:30:38 PM COT
UPDATE AD_Process_Para SET ColumnName='NumericalSequence', Name='Numerical Sequence', Description='Length of numerical sequence to validate', Help=NULL, AD_Element_ID=200028 WHERE UPPER(ColumnName)='NUMERICALSEQUENCE' AND IsCentrallyMaintained='Y' AND AD_Element_ID IS NULL
;
-- Aug 6, 2012 1:30:38 PM COT
UPDATE AD_Process_Para SET ColumnName='NumericalSequence', Name='Numerical Sequence', Description='Length of numerical sequence to validate', Help=NULL WHERE AD_Element_ID=200028 AND IsCentrallyMaintained='Y'
;
-- Aug 6, 2012 1:30:38 PM COT
UPDATE AD_Field SET Name='Numerical Sequence', Description='Length of numerical sequence to validate', Help=NULL WHERE AD_Column_ID IN (SELECT AD_Column_ID FROM AD_Column WHERE AD_Element_ID=200028) AND IsCentrallyMaintained='Y'
;
-- Aug 6, 2012 1:31:18 PM COT
UPDATE AD_Element SET Description='Require at least # alphabetical in passwords',Updated=TO_TIMESTAMP('2012-08-06 13:31:18','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Element_ID=200027
;
-- Aug 6, 2012 1:31:18 PM COT
UPDATE AD_Element_Trl SET IsTranslated='N' WHERE AD_Element_ID=200027
;
-- Aug 6, 2012 1:31:18 PM COT
UPDATE AD_Column SET ColumnName='AlphabeticalCharacter', Name='Alphabetical Character', Description='Require at least # alphabetical in passwords', Help=NULL WHERE AD_Element_ID=200027
;
-- Aug 6, 2012 1:31:18 PM COT
UPDATE AD_Process_Para SET ColumnName='AlphabeticalCharacter', Name='Alphabetical Character', Description='Require at least # alphabetical in passwords', Help=NULL, AD_Element_ID=200027 WHERE UPPER(ColumnName)='ALPHABETICALCHARACTER' AND IsCentrallyMaintained='Y' AND AD_Element_ID IS NULL
;
-- Aug 6, 2012 1:31:18 PM COT
UPDATE AD_Process_Para SET ColumnName='AlphabeticalCharacter', Name='Alphabetical Character', Description='Require at least # alphabetical in passwords', Help=NULL WHERE AD_Element_ID=200027 AND IsCentrallyMaintained='Y'
;
-- Aug 6, 2012 1:31:18 PM COT
UPDATE AD_Field SET Name='Alphabetical Character', Description='Require at least # alphabetical in passwords', Help=NULL WHERE AD_Column_ID IN (SELECT AD_Column_ID FROM AD_Column WHERE AD_Element_ID=200027) AND IsCentrallyMaintained='Y'
;
-- Aug 6, 2012 1:32:21 PM COT
UPDATE AD_Element SET Description='Length of repeated characters to validate',Updated=TO_TIMESTAMP('2012-08-06 13:32:21','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Element_ID=200069
;
-- Aug 6, 2012 1:32:21 PM COT
UPDATE AD_Element_Trl SET IsTranslated='N' WHERE AD_Element_ID=200069
;
-- Aug 6, 2012 1:32:21 PM COT
UPDATE AD_Column SET ColumnName='RepeatCharacterRegex', Name='Repeat Character Regex', Description='Length of repeated characters to validate', Help=NULL WHERE AD_Element_ID=200069
;
-- Aug 6, 2012 1:32:21 PM COT
UPDATE AD_Process_Para SET ColumnName='RepeatCharacterRegex', Name='Repeat Character Regex', Description='Length of repeated characters to validate', Help=NULL, AD_Element_ID=200069 WHERE UPPER(ColumnName)='REPEATCHARACTERREGEX' AND IsCentrallyMaintained='Y' AND AD_Element_ID IS NULL
;
-- Aug 6, 2012 1:32:21 PM COT
UPDATE AD_Process_Para SET ColumnName='RepeatCharacterRegex', Name='Repeat Character Regex', Description='Length of repeated characters to validate', Help=NULL WHERE AD_Element_ID=200069 AND IsCentrallyMaintained='Y'
;
-- Aug 6, 2012 1:32:21 PM COT
UPDATE AD_Field SET Name='Repeat Character Regex', Description='Length of repeated characters to validate', Help=NULL WHERE AD_Column_ID IN (SELECT AD_Column_ID FROM AD_Column WHERE AD_Element_ID=200069) AND IsCentrallyMaintained='Y'
;
-- Aug 6, 2012 1:34:52 PM COT
UPDATE AD_Element SET ColumnName='IsDictMatchBackwards',Updated=TO_TIMESTAMP('2012-08-06 13:34:52','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Element_ID=200033
;
-- Aug 6, 2012 1:34:52 PM COT
UPDATE AD_Column SET ColumnName='IsDictMatchBackwards', Name='Match Backwards of Dictionary', Description='Match dictionary words backwards', Help=NULL WHERE AD_Element_ID=200033
;
-- Aug 6, 2012 1:34:52 PM COT
UPDATE AD_Process_Para SET ColumnName='IsDictMatchBackwards', Name='Match Backwards of Dictionary', Description='Match dictionary words backwards', Help=NULL, AD_Element_ID=200033 WHERE UPPER(ColumnName)='ISDICTMATCHBACKWARDS' AND IsCentrallyMaintained='Y' AND AD_Element_ID IS NULL
;
-- Aug 6, 2012 1:34:52 PM COT
UPDATE AD_Process_Para SET ColumnName='IsDictMatchBackwards', Name='Match Backwards of Dictionary', Description='Match dictionary words backwards', Help=NULL WHERE AD_Element_ID=200033 AND IsCentrallyMaintained='Y'
;
-- Aug 6, 2012 1:35:09 PM COT
UPDATE AD_Column SET IsMandatory='Y', DefaultValue='N',Updated=TO_TIMESTAMP('2012-08-06 13:35:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=200138
;
-- Aug 6, 2012 1:35:12 PM COT
ALTER TABLE ad_passwordrule RENAME DictMatchBackwards TO IsDictMatchBackwards
;
-- Aug 6, 2012 1:35:32 PM COT
UPDATE AD_Column SET IsMandatory='Y', DefaultValue='N',Updated=TO_TIMESTAMP('2012-08-06 13:35:32','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=200133
;
-- Aug 6, 2012 1:35:33 PM COT
ALTER TABLE ad_passwordrule RENAME whitespace TO iswhitespace
;
-- Aug 6, 2012 1:36:48 PM COT
DELETE FROM AD_Column_Trl WHERE AD_Column_ID=200240
;
-- Aug 6, 2012 1:36:48 PM COT
DELETE FROM AD_Column WHERE AD_Column_ID=200240
;
-- Aug 6, 2012 2:16:41 PM COT
INSERT INTO AD_Element (ColumnName,AD_Element_ID,EntityType,Name,Description,PrintName,AD_Element_UU,AD_Client_ID,Created,Updated,AD_Org_ID,CreatedBy,UpdatedBy,IsActive) VALUES ('IsUserNameRule',200072,'D','User Name Rule','Validate the password doesn''t contain user name (ignore case and match backwards)','User Name Rule','9eda063a-90bd-442f-95ed-89804cf6497a',0,TO_TIMESTAMP('2012-08-06 14:16:40','YYYY-MM-DD HH24:MI:SS'),TO_TIMESTAMP('2012-08-06 14:16:40','YYYY-MM-DD HH24:MI:SS'),0,100,100,'Y')
;
-- Aug 6, 2012 2:16:41 PM COT
INSERT INTO AD_Element_Trl (AD_Language,AD_Element_ID, Help,PO_Description,PO_Help,Name,Description,PrintName,PO_Name,PO_PrintName, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy,AD_Element_Trl_UU ) SELECT l.AD_Language,t.AD_Element_ID, t.Help,t.PO_Description,t.PO_Help,t.Name,t.Description,t.PrintName,t.PO_Name,t.PO_PrintName, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy,Generate_UUID() FROM AD_Language l, AD_Element t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Element_ID=200072 AND NOT EXISTS (SELECT * FROM AD_Element_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Element_ID=t.AD_Element_ID)
;
-- Aug 6, 2012 1:37:02 PM COT
UPDATE AD_Column SET IsMandatory='Y', AD_Element_ID=200072, ColumnName='IsUserNameRule', Description='Validate the password doesn''t contain user name (ignore case and match backwards)', DefaultValue='N', Help=NULL, Name='User Name Rule',Updated=TO_TIMESTAMP('2012-08-06 13:37:02','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=200134
;
-- Aug 6, 2012 1:37:02 PM COT
UPDATE AD_Column_Trl SET IsTranslated='N' WHERE AD_Column_ID=200134
;
-- Aug 6, 2012 1:37:02 PM COT
UPDATE AD_Field SET Name='User Name Rule', Description='Validate the password doesn''t contain user name (ignore case and match backwards)', Help=NULL WHERE AD_Column_ID=200134 AND IsCentrallyMaintained='Y'
;
-- Aug 6, 2012 1:37:03 PM COT
ALTER TABLE ad_passwordrule RENAME username TO IsUserNameRule
;
-- Aug 6, 2012 1:37:03 PM COT
UPDATE AD_PasswordRule SET IsUserNameRule='N' WHERE IsUserNameRule IS NULL
;
-- Aug 6, 2012 1:37:10 PM COT
UPDATE AD_Field SET SeqNo=210,IsDisplayed='Y' WHERE AD_Field_ID=200090
;
-- Aug 6, 2012 1:37:57 PM COT
UPDATE AD_Element SET ColumnName='IsUsingDictionary',Updated=TO_TIMESTAMP('2012-08-06 13:37:57','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Element_ID=200031
;
-- Aug 6, 2012 1:37:57 PM COT
UPDATE AD_Column SET ColumnName='IsUsingDictionary', Name='Using Dictionary', Description=NULL, Help=NULL WHERE AD_Element_ID=200031
;
-- Aug 6, 2012 1:37:57 PM COT
UPDATE AD_Process_Para SET ColumnName='IsUsingDictionary', Name='Using Dictionary', Description=NULL, Help=NULL, AD_Element_ID=200031 WHERE UPPER(ColumnName)='ISUSINGDICTIONARY' AND IsCentrallyMaintained='Y' AND AD_Element_ID IS NULL
;
-- Aug 6, 2012 1:37:57 PM COT
UPDATE AD_Process_Para SET ColumnName='IsUsingDictionary', Name='Using Dictionary', Description=NULL, Help=NULL WHERE AD_Element_ID=200031 AND IsCentrallyMaintained='Y'
;
-- Aug 6, 2012 1:38:17 PM COT
UPDATE AD_Column SET IsMandatory='Y', DefaultValue='N',Updated=TO_TIMESTAMP('2012-08-06 13:38:17','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=200135
;
-- Aug 6, 2012 1:38:18 PM COT
ALTER TABLE ad_passwordrule RENAME UsingDictionary TO IsUsingDictionary
;
-- Aug 6, 2012 1:57:03 PM COT
UPDATE AD_Column SET IsMandatory='Y', DefaultValue='Y', IsAllowCopy='N',Updated=TO_TIMESTAMP('2012-08-06 13:57:03','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=200121
;
-- Aug 6, 2012 1:57:05 PM COT
INSERT INTO t_alter_column values('ad_passwordrule','IsActive','CHAR(1)',null,'Y')
;
-- Aug 6, 2012 1:57:05 PM COT
UPDATE AD_PasswordRule SET IsActive='Y' WHERE IsActive IS NULL
;
-- Aug 6, 2012 1:57:05 PM COT
INSERT INTO t_alter_column values('ad_passwordrule','IsActive',null,'NOT NULL',null)
;
-- Aug 6, 2012 1:57:11 PM COT
INSERT INTO t_alter_column values('ad_passwordrule','IsDictMatchBackwards','CHAR(1)',null,'N')
;
-- Aug 6, 2012 1:57:11 PM COT
UPDATE AD_PasswordRule SET IsDictMatchBackwards='N' WHERE IsDictMatchBackwards IS NULL
;
-- Aug 6, 2012 1:57:17 PM COT
INSERT INTO t_alter_column values('ad_passwordrule','IsUserNameRule','CHAR(1)',null,'N')
;
-- Aug 6, 2012 1:57:17 PM COT
UPDATE AD_PasswordRule SET IsUserNameRule='N' WHERE IsUserNameRule IS NULL
;
-- Aug 6, 2012 1:57:22 PM COT
INSERT INTO t_alter_column values('ad_passwordrule','IsUsingDictionary','CHAR(1)',null,'N')
;
-- Aug 6, 2012 1:57:22 PM COT
UPDATE AD_PasswordRule SET IsUsingDictionary='N' WHERE IsUsingDictionary IS NULL
;
-- Aug 6, 2012 1:57:28 PM COT
INSERT INTO t_alter_column values('ad_passwordrule','IsWhitespace','CHAR(1)',null,'N')
;
-- Aug 6, 2012 1:57:28 PM COT
UPDATE AD_PasswordRule SET IsWhitespace='N' WHERE IsWhitespace IS NULL
;
-- Aug 6, 2012 2:31:39 PM COT
UPDATE AD_Field SET SeqNo=110,IsDisplayed='Y' WHERE AD_Field_ID=200251
;
-- Aug 6, 2012 2:31:39 PM COT
UPDATE AD_Field SET SeqNo=120,IsDisplayed='Y' WHERE AD_Field_ID=200086
;
-- Aug 6, 2012 2:31:39 PM COT
UPDATE AD_Field SET SeqNo=130,IsDisplayed='Y' WHERE AD_Field_ID=200089
;
-- Aug 6, 2012 2:31:39 PM COT
UPDATE AD_Field SET SeqNo=140,IsDisplayed='Y' WHERE AD_Field_ID=200255
;
-- Aug 6, 2012 2:31:39 PM COT
UPDATE AD_Field SET SeqNo=150,IsDisplayed='Y' WHERE AD_Field_ID=200090
;
-- Aug 6, 2012 2:31:39 PM COT
UPDATE AD_Field SET SeqNo=160,IsDisplayed='Y' WHERE AD_Field_ID=200094
;
-- Aug 6, 2012 2:31:39 PM COT
UPDATE AD_Field SET SeqNo=170,IsDisplayed='Y' WHERE AD_Field_ID=200093
;
-- Aug 6, 2012 2:31:39 PM COT
UPDATE AD_Field SET SeqNo=180,IsDisplayed='Y' WHERE AD_Field_ID=200079
;
-- Aug 6, 2012 2:31:39 PM COT
UPDATE AD_Field SET SeqNo=190,IsDisplayed='Y' WHERE AD_Field_ID=200254
;
-- Aug 6, 2012 2:31:40 PM COT
UPDATE AD_Field SET SeqNo=200,IsDisplayed='Y' WHERE AD_Field_ID=200080
;
-- Aug 6, 2012 2:31:40 PM COT
UPDATE AD_Field SET SeqNo=210,IsDisplayed='Y' WHERE AD_Field_ID=200074
;
-- Aug 6, 2012 2:31:57 PM COT
UPDATE AD_Field SET IsSameLine='Y',Updated=TO_TIMESTAMP('2012-08-06 14:31:57','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200255
;
-- Aug 6, 2012 3:57:31 PM COT
UPDATE AD_Element SET ColumnName='IsWhitespace', Description='Whitespace validation',Updated=TO_TIMESTAMP('2012-08-06 15:57:31','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Element_ID=200030
;
-- Aug 6, 2012 3:57:31 PM COT
UPDATE AD_Element_Trl SET IsTranslated='N' WHERE AD_Element_ID=200030
;
-- Aug 6, 2012 3:57:31 PM COT
UPDATE AD_Column SET ColumnName='IsWhitespace', Name='Whitespace', Description='Whitespace validation', Help=NULL WHERE AD_Element_ID=200030
;
-- Aug 6, 2012 3:57:31 PM COT
UPDATE AD_Process_Para SET ColumnName='IsWhitespace', Name='Whitespace', Description='Whitespace validation', Help=NULL, AD_Element_ID=200030 WHERE UPPER(ColumnName)='ISWHITESPACE' AND IsCentrallyMaintained='Y' AND AD_Element_ID IS NULL
;
-- Aug 6, 2012 3:57:31 PM COT
UPDATE AD_Process_Para SET ColumnName='IsWhitespace', Name='Whitespace', Description='Whitespace validation', Help=NULL WHERE AD_Element_ID=200030 AND IsCentrallyMaintained='Y'
;
-- Aug 6, 2012 3:57:31 PM COT
UPDATE AD_Field SET Name='Whitespace', Description='Whitespace validation', Help=NULL WHERE AD_Column_ID IN (SELECT AD_Column_ID FROM AD_Column WHERE AD_Element_ID=200030) AND IsCentrallyMaintained='Y'
;
-- Aug 6, 2012 5:03:43 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 ('E','Password Errors',200011,'D','9a29cf03-6807-43c4-aa53-982d2aa63dfc','PasswordErrors','Y',TO_TIMESTAMP('2012-08-06 17:03:42','YYYY-MM-DD HH24:MI:SS'),100,100,0,0,TO_TIMESTAMP('2012-08-06 17:03:42','YYYY-MM-DD HH24:MI:SS'))
;
-- Aug 6, 2012 5:03:43 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,AD_Message_Trl_UU ) 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,Generate_UUID() FROM AD_Language l, AD_Message t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Message_ID=200011 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)
;
-- Aug 6, 2012 8:32:30 PM COT
UPDATE AD_Field SET DisplayLogic='@IsUsingDictionary@=Y',Updated=TO_TIMESTAMP('2012-08-06 20:32:30','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200254
;
-- Aug 6, 2012 8:32:38 PM COT
UPDATE AD_Field SET DisplayLogic='@IsUsingDictionary@=Y',Updated=TO_TIMESTAMP('2012-08-06 20:32:38','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200079
;
-- Aug 6, 2012 8:32:42 PM COT
UPDATE AD_Field SET DisplayLogic='@IsUsingDictionary@=Y',Updated=TO_TIMESTAMP('2012-08-06 20:32:42','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200080
;
UPDATE AD_System
SET LastMigrationScriptApplied='865_IDEMPIERE-221.sql'
WHERE LastMigrationScriptApplied<'865_IDEMPIERE-221.sql'
OR LastMigrationScriptApplied IS NULL
;

View File

@ -0,0 +1,19 @@
update ad_element set entitytype = 'D' where entitytype='U' and AD_Element_id < 1000000;
update ad_field set entitytype = 'D' where entitytype='U' and AD_Field_id < 1000000;
update AD_Column set entitytype = 'D' where entitytype='U' and AD_Column_id < 1000000;
update AD_Column set entitytype = 'D' where entitytype='A' and AD_Column_id < 1000000;
update AD_Process_Para set entitytype = 'D' where entitytype='U' and AD_Process_Para_ID < 1000000;
update AD_Menu set entitytype = 'D' where entitytype='U' and AD_Menu_ID < 1000000;
update AD_Tab set entitytype = 'D' where entitytype='U' and AD_Tab_ID < 1000000;
UPDATE AD_System
SET LastMigrationScriptApplied='868_FixWrongEntityTypes.sql'
WHERE LastMigrationScriptApplied<'868_FixWrongEntityTypes.sql'
OR LastMigrationScriptApplied IS NULL
;

File diff suppressed because it is too large Load Diff

View File

@ -18,8 +18,6 @@ package org.compiere.process;
import java.util.logging.Level; import java.util.logging.Level;
import org.compiere.model.MClient;
import org.compiere.model.MPasswordRule;
import org.compiere.model.MSysConfig; import org.compiere.model.MSysConfig;
import org.compiere.model.MUser; import org.compiere.model.MUser;
import org.compiere.util.Util; import org.compiere.util.Util;
@ -82,6 +80,7 @@ public class UserPassword extends SvrProcess
log.info ("AD_User_ID=" + p_AD_User_ID + " from " + getAD_User_ID()); log.info ("AD_User_ID=" + p_AD_User_ID + " from " + getAD_User_ID());
MUser user = MUser.get(getCtx(), p_AD_User_ID); MUser user = MUser.get(getCtx(), p_AD_User_ID);
user.load(get_TrxName());
MUser operator = MUser.get(getCtx(), getAD_User_ID()); MUser operator = MUser.get(getCtx(), getAD_User_ID());
log.fine("User=" + user + ", Operator=" + operator); log.fine("User=" + user + ", Operator=" + operator);
@ -112,11 +111,6 @@ public class UserPassword extends SvrProcess
} else { } else {
if (!p_NewPassword.equals(p_NewPasswordConfirm)) { if (!p_NewPassword.equals(p_NewPasswordConfirm)) {
throw new IllegalArgumentException("@PasswordNotMatch@"); throw new IllegalArgumentException("@PasswordNotMatch@");
} else {
String msg = validate();
if (msg != null) {
throw new IllegalArgumentException(msg);
}
} }
} }
} }
@ -132,7 +126,7 @@ public class UserPassword extends SvrProcess
} }
if (!Util.isEmpty(p_NewPassword)) if (!Util.isEmpty(p_NewPassword))
user.setPassword(p_NewPassword); user.set_ValueOfColumn("Password", p_NewPassword); // will be hashed and validate on saveEx
if (!Util.isEmpty(p_NewEMail)) if (!Util.isEmpty(p_NewEMail))
user.setEMail(p_NewEMail); user.setEMail(p_NewEMail);
if (!Util.isEmpty(p_NewEMailUser)) if (!Util.isEmpty(p_NewEMailUser))
@ -144,21 +138,5 @@ public class UserPassword extends SvrProcess
return "OK"; return "OK";
} // doIt } // 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 } // UserPassword

View File

@ -1,8 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<classpath> <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-dictionary-3.0.jar"/> <attributes>
<classpathentry exported="true" kind="lib" path="vt-password-3.1.1.jar"/> <attribute name="javadoc_location" value="http://vt-middleware.googlecode.com/svn/vt-dictionary/javadoc/vt-dictionary-3.0"/>
</attributes>
</classpathentry>
<classpathentry exported="true" kind="lib" path="vt-password-3.1.1.jar">
<attributes>
<attribute name="javadoc_location" value="http://vt-middleware.googlecode.com/svn/vt-password/javadoc/vt-password-3.1.1"/>
</attributes>
</classpathentry>
<classpathentry exported="true" kind="lib" path="groovy-all-1.7.5.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"> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6">
<accessrules> <accessrules>

View File

@ -16,7 +16,6 @@ Bundle-ClassPath: base.jar,
jfreechart-1.0.13.jar, jfreechart-1.0.13.jar,
jnlp.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-dictionary-3.0.jar,
vt-password-3.1.1.jar vt-password-3.1.1.jar
Export-Package: bsh, Export-Package: bsh,

View File

@ -14,7 +14,6 @@ bin.includes = META-INF/,\
jnlp.jar,\ jnlp.jar,\
OSGI-INF/,\ 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-dictionary-3.0.jar,\
vt-password-3.1.1.jar vt-password-3.1.1.jar
output.base.jar = build/ output.base.jar = build/

View File

@ -65,10 +65,10 @@ public interface I_AD_PasswordRule
/** Column name AD_PasswordRule_ID */ /** Column name AD_PasswordRule_ID */
public static final String COLUMNNAME_AD_PasswordRule_ID = "AD_PasswordRule_ID"; public static final String COLUMNNAME_AD_PasswordRule_ID = "AD_PasswordRule_ID";
/** Set AD_PasswordRule */ /** Set Password Policies */
public void setAD_PasswordRule_ID (int AD_PasswordRule_ID); public void setAD_PasswordRule_ID (int AD_PasswordRule_ID);
/** Get AD_PasswordRule */ /** Get Password Policies */
public int getAD_PasswordRule_ID(); public int getAD_PasswordRule_ID();
/** Column name AD_PasswordRule_UU */ /** Column name AD_PasswordRule_UU */
@ -83,24 +83,28 @@ public interface I_AD_PasswordRule
/** Column name AlphabeticalCharacter */ /** Column name AlphabeticalCharacter */
public static final String COLUMNNAME_AlphabeticalCharacter = "AlphabeticalCharacter"; public static final String COLUMNNAME_AlphabeticalCharacter = "AlphabeticalCharacter";
/** Set Alphabetical Character */ /** Set Alphabetical Character.
* Require at least # alphabetical in passwords
*/
public void setAlphabeticalCharacter (int AlphabeticalCharacter); public void setAlphabeticalCharacter (int AlphabeticalCharacter);
/** Get Alphabetical Character */ /** Get Alphabetical Character.
* Require at least # alphabetical in passwords
*/
public int getAlphabeticalCharacter(); public int getAlphabeticalCharacter();
/** Column name AlphabeticalSequence */ /** Column name AlphabeticalSequence */
public static final String COLUMNNAME_AlphabeticalSequence = "AlphabeticalSequence"; public static final String COLUMNNAME_AlphabeticalSequence = "AlphabeticalSequence";
/** Set Alphabetical Sequence. /** Set Alphabetical Sequence.
* Allow alphabetical sequences * Lenght of alphabetical sequence to validate
*/ */
public void setAlphabeticalSequence (boolean AlphabeticalSequence); public void setAlphabeticalSequence (int AlphabeticalSequence);
/** Get Alphabetical Sequence. /** Get Alphabetical Sequence.
* Allow alphabetical sequences * Lenght of alphabetical sequence to validate
*/ */
public boolean isAlphabeticalSequence(); public int getAlphabeticalSequence();
/** Column name Created */ /** Column name Created */
public static final String COLUMNNAME_Created = "Created"; public static final String COLUMNNAME_Created = "Created";
@ -118,19 +122,6 @@ public interface I_AD_PasswordRule
*/ */
public int getCreatedBy(); 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 */ /** Column name DictWordLength */
public static final String COLUMNNAME_DictWordLength = "DictWordLength"; public static final String COLUMNNAME_DictWordLength = "DictWordLength";
@ -166,6 +157,50 @@ public interface I_AD_PasswordRule
*/ */
public boolean isActive(); public boolean isActive();
/** Column name IsDictMatchBackwards */
public static final String COLUMNNAME_IsDictMatchBackwards = "IsDictMatchBackwards";
/** Set Match Backwards of Dictionary.
* Match dictionary words backwards
*/
public void setIsDictMatchBackwards (boolean IsDictMatchBackwards);
/** Get Match Backwards of Dictionary.
* Match dictionary words backwards
*/
public boolean isDictMatchBackwards();
/** Column name IsUserNameRule */
public static final String COLUMNNAME_IsUserNameRule = "IsUserNameRule";
/** Set User Name Rule.
* Validate the password doesn't contain user name (ignore case and match backwards)
*/
public void setIsUserNameRule (boolean IsUserNameRule);
/** Get User Name Rule.
* Validate the password doesn't contain user name (ignore case and match backwards)
*/
public boolean isUserNameRule();
/** Column name IsUsingDictionary */
public static final String COLUMNNAME_IsUsingDictionary = "IsUsingDictionary";
/** Set Using Dictionary */
public void setIsUsingDictionary (boolean IsUsingDictionary);
/** Get Using Dictionary */
public boolean isUsingDictionary();
/** Column name IsWhitespace */
public static final String COLUMNNAME_IsWhitespace = "IsWhitespace";
/** Set Whitespace */
public void setIsWhitespace (boolean IsWhitespace);
/** Get Whitespace */
public boolean isWhitespace();
/** Column name LowercaseCharacter */ /** Column name LowercaseCharacter */
public static final String COLUMNNAME_LowercaseCharacter = "LowercaseCharacter"; public static final String COLUMNNAME_LowercaseCharacter = "LowercaseCharacter";
@ -195,10 +230,10 @@ public interface I_AD_PasswordRule
/** Column name MinLength */ /** Column name MinLength */
public static final String COLUMNNAME_MinLength = "MinLength"; public static final String COLUMNNAME_MinLength = "MinLength";
/** Set Min Length */ /** Set Minimum Length */
public void setMinLength (int MinLength); public void setMinLength (int MinLength);
/** Get Min Length */ /** Get Minimum Length */
public int getMinLength(); public int getMinLength();
/** Column name Name */ /** Column name Name */
@ -231,12 +266,12 @@ public interface I_AD_PasswordRule
public static final String COLUMNNAME_NumericalSequence = "NumericalSequence"; public static final String COLUMNNAME_NumericalSequence = "NumericalSequence";
/** Set Numerical Sequence. /** Set Numerical Sequence.
* Allow numerical sequences of length # * Length of numerical sequence to validate
*/ */
public void setNumericalSequence (int NumericalSequence); public void setNumericalSequence (int NumericalSequence);
/** Get Numerical Sequence. /** Get Numerical Sequence.
* Allow numerical sequences of length # * Length of numerical sequence to validate
*/ */
public int getNumericalSequence(); public int getNumericalSequence();
@ -253,22 +288,26 @@ public interface I_AD_PasswordRule
public static final String COLUMNNAME_QWERTYSequence = "QWERTYSequence"; public static final String COLUMNNAME_QWERTYSequence = "QWERTYSequence";
/** Set QWERTY Sequence. /** Set QWERTY Sequence.
* Allow QWERTY sequences * Lenght of QWERTY sequences to validate
*/ */
public void setQWERTYSequence (boolean QWERTYSequence); public void setQWERTYSequence (int QWERTYSequence);
/** Get QWERTY Sequence. /** Get QWERTY Sequence.
* Allow QWERTY sequences * Lenght of QWERTY sequences to validate
*/ */
public boolean isQWERTYSequence(); public int getQWERTYSequence();
/** Column name RepeatCharacterRegex */ /** Column name RepeatCharacterRegex */
public static final String COLUMNNAME_RepeatCharacterRegex = "RepeatCharacterRegex"; public static final String COLUMNNAME_RepeatCharacterRegex = "RepeatCharacterRegex";
/** Set Repeat Character Regex */ /** Set Repeat Character Regex.
* Length of repeated characters to validate
*/
public void setRepeatCharacterRegex (int RepeatCharacterRegex); public void setRepeatCharacterRegex (int RepeatCharacterRegex);
/** Get Repeat Character Regex */ /** Get Repeat Character Regex.
* Length of repeated characters to validate
*/
public int getRepeatCharacterRegex(); public int getRepeatCharacterRegex();
/** Column name Updated */ /** Column name Updated */
@ -299,35 +338,4 @@ public interface I_AD_PasswordRule
* Require at least # upper case char * Require at least # upper case char
*/ */
public int getUppercaseCharacter(); 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();
} }

View File

@ -718,6 +718,17 @@ public class MLookupFactory
{ {
displayColumn.append(DB.TO_CHAR(columnSQL, ldc.DisplayType, language.getAD_Language())); displayColumn.append(DB.TO_CHAR(columnSQL, ldc.DisplayType, language.getAD_Language()));
} }
// Table
else if ((ldc.DisplayType == DisplayType.Table || ldc.DisplayType == DisplayType.Search) && ldc.AD_Reference_ID != 0)
{
String embeddedSQL;
if (ldc.IsVirtual)
embeddedSQL = getLookup_TableEmbed (language, ldc.ColumnSQL, TableName, ldc.AD_Reference_ID);
else
embeddedSQL = getLookup_TableEmbed (language, ldc.ColumnName, TableName, ldc.AD_Reference_ID);
if (embeddedSQL != null)
displayColumn.append("(").append(embeddedSQL).append(")");
}
// TableDir // TableDir
else if ((ldc.DisplayType == DisplayType.TableDir || ldc.DisplayType == DisplayType.Search) else if ((ldc.DisplayType == DisplayType.TableDir || ldc.DisplayType == DisplayType.Search)
&& ldc.ColumnName.endsWith("_ID")) && ldc.ColumnName.endsWith("_ID"))
@ -730,17 +741,6 @@ public class MLookupFactory
if (embeddedSQL != null) if (embeddedSQL != null)
displayColumn.append("(").append(embeddedSQL).append(")"); displayColumn.append("(").append(embeddedSQL).append(")");
} }
// Table
else if (ldc.DisplayType == DisplayType.Table && ldc.AD_Reference_ID != 0)
{
String embeddedSQL;
if (ldc.IsVirtual)
embeddedSQL = getLookup_TableEmbed (language, ldc.ColumnSQL, TableName, ldc.AD_Reference_ID);
else
embeddedSQL = getLookup_TableEmbed (language, ldc.ColumnName, TableName, ldc.AD_Reference_ID);
if (embeddedSQL != null)
displayColumn.append("(").append(embeddedSQL).append(")");
}
// number // number
else if (DisplayType.isNumeric(ldc.DisplayType)) else if (DisplayType.isNumeric(ldc.DisplayType))
{ {

View File

@ -21,20 +21,27 @@ package org.compiere.model;
import java.io.FileNotFoundException; import java.io.FileNotFoundException;
import java.io.FileReader; import java.io.FileReader;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Properties; import java.util.Properties;
import org.adempiere.exceptions.AdempiereException;
import org.compiere.util.Env;
import org.compiere.util.Msg;
import edu.vt.middleware.dictionary.ArrayWordList; import edu.vt.middleware.dictionary.ArrayWordList;
import edu.vt.middleware.dictionary.WordListDictionary; import edu.vt.middleware.dictionary.WordListDictionary;
import edu.vt.middleware.dictionary.WordLists; import edu.vt.middleware.dictionary.WordLists;
import edu.vt.middleware.dictionary.sort.ArraysSort; import edu.vt.middleware.dictionary.sort.ArraysSort;
import edu.vt.middleware.password.AlphabeticalCharacterRule;
import edu.vt.middleware.password.AlphabeticalSequenceRule; import edu.vt.middleware.password.AlphabeticalSequenceRule;
import edu.vt.middleware.password.CharacterCharacteristicsRule; import edu.vt.middleware.password.CharacterCharacteristicsRule;
import edu.vt.middleware.password.DictionarySubstringRule; import edu.vt.middleware.password.DictionarySubstringRule;
import edu.vt.middleware.password.DigitCharacterRule; import edu.vt.middleware.password.DigitCharacterRule;
import edu.vt.middleware.password.LengthRule; import edu.vt.middleware.password.LengthRule;
import edu.vt.middleware.password.LowercaseCharacterRule; import edu.vt.middleware.password.LowercaseCharacterRule;
import edu.vt.middleware.password.MessageResolver;
import edu.vt.middleware.password.NonAlphanumericCharacterRule; import edu.vt.middleware.password.NonAlphanumericCharacterRule;
import edu.vt.middleware.password.NumericalSequenceRule; import edu.vt.middleware.password.NumericalSequenceRule;
import edu.vt.middleware.password.Password; import edu.vt.middleware.password.Password;
@ -45,6 +52,7 @@ import edu.vt.middleware.password.RepeatCharacterRegexRule;
import edu.vt.middleware.password.Rule; import edu.vt.middleware.password.Rule;
import edu.vt.middleware.password.RuleResult; import edu.vt.middleware.password.RuleResult;
import edu.vt.middleware.password.UppercaseCharacterRule; import edu.vt.middleware.password.UppercaseCharacterRule;
import edu.vt.middleware.password.UsernameRule;
import edu.vt.middleware.password.WhitespaceRule; import edu.vt.middleware.password.WhitespaceRule;
/** /**
@ -55,7 +63,7 @@ public class MPasswordRule extends X_AD_PasswordRule {
/** /**
* *
*/ */
private static final long serialVersionUID = 6369065572886752718L; private static final long serialVersionUID = -3557291675139843726L;
/** /**
* @param ctx * @param ctx
@ -75,69 +83,74 @@ public class MPasswordRule extends X_AD_PasswordRule {
super(ctx, rs, trxName); super(ctx, rs, trxName);
} }
public String validate(String newPassword) { public void validate(String username, String newPassword) throws AdempiereException {
WhitespaceRule whitespaceRule;
AlphabeticalSequenceRule alphaSeqRule;
NumericalSequenceRule numSeqRule;
QwertySequenceRule qwertySeqRule;
RepeatCharacterRegexRule repeatRule;
ArrayList<Rule> ruleList = new ArrayList<Rule>(); ArrayList<Rule> ruleList = new ArrayList<Rule>();
if (getMinLength()>0 || getMaxLength()>0) { if (getMinLength() > 0 || getMaxLength() > 0) {
LengthRule lengthRule = new LengthRule(); LengthRule lengthRule = new LengthRule();
if (getMinLength()>0) if (getMinLength() > 0)
lengthRule.setMinimumLength(getMinLength()); lengthRule.setMinimumLength(getMinLength());
if (getMaxLength()>0) if (getMaxLength() > 0)
lengthRule.setMaximumLength(getMaxLength()); lengthRule.setMaximumLength(getMaxLength());
ruleList.add(lengthRule); ruleList.add(lengthRule);
} }
if (iswhitespace()) { if (isWhitespace()) {
whitespaceRule = new WhitespaceRule(); ruleList.add(new WhitespaceRule());
ruleList.add(whitespaceRule);
} }
// control allowed characters // control allowed characters
CharacterCharacteristicsRule charRule = new CharacterCharacteristicsRule(); CharacterCharacteristicsRule charRule = new CharacterCharacteristicsRule();
int numValidations = 0;
if (getDigitCharacter()>0) { if (getDigitCharacter() > 0) {
// require at least 1 digit in passwords // require at least n digit in passwords
numValidations++;
charRule.getRules().add(new DigitCharacterRule(getDigitCharacter())); charRule.getRules().add(new DigitCharacterRule(getDigitCharacter()));
} }
if (getNonAlphaNumericCharacter()>0) { if (getNonAlphaNumericCharacter() > 0) {
// require at least 1 non-alphanumeric char // require at least n non-alphanumeric char
numValidations++;
charRule.getRules().add(new NonAlphanumericCharacterRule(getNonAlphaNumericCharacter())); charRule.getRules().add(new NonAlphanumericCharacterRule(getNonAlphaNumericCharacter()));
} }
if (getUppercaseCharacter()>0) { if (getUppercaseCharacter() > 0) {
numValidations++;
charRule.getRules().add(new UppercaseCharacterRule(getUppercaseCharacter())); charRule.getRules().add(new UppercaseCharacterRule(getUppercaseCharacter()));
} }
if (getLowercaseCharacter() > 0) {
if (getLowercaseCharacter()>0) { numValidations++;
charRule.getRules().add(new LowercaseCharacterRule(getLowercaseCharacter())); charRule.getRules().add(new LowercaseCharacterRule(getLowercaseCharacter()));
} }
if (getAlphabeticalCharacter() > 0){
numValidations++;
charRule.getRules().add(new AlphabeticalCharacterRule(getAlphabeticalCharacter()));
}
if (! charRule.getRules().isEmpty()) {
charRule.setNumberOfCharacteristics(numValidations);
ruleList.add(charRule); ruleList.add(charRule);
if (isAlphabeticalSequence()) {
alphaSeqRule=new AlphabeticalSequenceRule();
ruleList.add(alphaSeqRule);
} }
if (getNumericalSequence()>0) { if (getAlphabeticalSequence() > 0) {
numSeqRule = new NumericalSequenceRule(getNumericalSequence(),true); ruleList.add(new AlphabeticalSequenceRule(getAlphabeticalSequence(), true));
ruleList.add(numSeqRule);
}
if (isQWERTYSequence()) {
qwertySeqRule = new QwertySequenceRule();
ruleList.add(qwertySeqRule);
} }
if (getRepeatCharacterRegex()>0) { if (getNumericalSequence() > 0) {
repeatRule = new RepeatCharacterRegexRule(getRepeatCharacterRegex()); ruleList.add(new NumericalSequenceRule(getNumericalSequence(), true));
ruleList.add(repeatRule); }
if (getQWERTYSequence() > 0) {
ruleList.add(new QwertySequenceRule(getQWERTYSequence(), true));
}
if (getRepeatCharacterRegex() > 0) {
ruleList.add(new RepeatCharacterRegexRule(getRepeatCharacterRegex()));
}
if (isUserNameRule()) {
ruleList.add(new UsernameRule(true, true));
} }
if (isUsingDictionary()) { if (isUsingDictionary()) {
if (getPathDictionary().length()>0) { if (getPathDictionary().length() > 0) {
try { try {
ArrayWordList awl = WordLists.createFromReader( ArrayWordList awl = WordLists.createFromReader(
new FileReader[] {new FileReader(getPathDictionary())}, new FileReader[] {new FileReader(getPathDictionary())},
@ -147,10 +160,9 @@ public class MPasswordRule extends X_AD_PasswordRule {
WordListDictionary dict = new WordListDictionary(awl); WordListDictionary dict = new WordListDictionary(awl);
DictionarySubstringRule dictRule = new DictionarySubstringRule(dict); DictionarySubstringRule dictRule = new DictionarySubstringRule(dict);
if (getDictWordLength()>0) { if (getDictWordLength() > 0) {
dictRule.setWordLength(getDictWordLength()); // size of words to check in the password dictRule.setWordLength(getDictWordLength()); // size of words to check in the password
} } else{
else{
dictRule.setWordLength(DictionarySubstringRule.DEFAULT_WORD_LENGTH); dictRule.setWordLength(DictionarySubstringRule.DEFAULT_WORD_LENGTH);
} }
@ -160,27 +172,47 @@ public class MPasswordRule extends X_AD_PasswordRule {
ruleList.add(dictRule); ruleList.add(dictRule);
} catch (FileNotFoundException e) { } catch (FileNotFoundException e) {
return "Could not find dictionary file: " + e.getMessage(); throw new AdempiereException("Could not find dictionary file: " + e.getMessage());
} catch (IOException e) { } catch (IOException e) {
return "Could not read dictionary file: " + e.getMessage(); throw new AdempiereException("Could not find dictionary file: " + e.getMessage());
} }
} }
} }
if (!ruleList.isEmpty()) { if (!ruleList.isEmpty()) {
PasswordValidator validator = new PasswordValidator(ruleList); PasswordValidator validator = new PasswordValidator(getCustomResolver(), ruleList);
PasswordData passwordData = new PasswordData(new Password(newPassword)); PasswordData passwordData = new PasswordData(new Password(newPassword));
passwordData.setUsername(username);
RuleResult result = validator.validate(passwordData); RuleResult result = validator.validate(passwordData);
if (!result.isValid()) { if (!result.isValid()) {
String error = null; String error = Msg.getMsg(getCtx(), "PasswordErrors") + ": [";
for (String msg : validator.getMessages(result)) { for (String msg : validator.getMessages(result)) {
error = (error == null ? "" : error) + " " + msg; error = error + " " + msg;
} }
return error; error = error + " ]";
throw new AdempiereException(error);
} }
} }
return null; }
private MessageResolver getCustomResolver() {
Properties props = null;
InputStream in = null;
try {
String file = "vtpassword_messages_" + Env.getLoginLanguage(getCtx()).getLocale().getLanguage() + ".properties";
in = this.getClass().getResourceAsStream(file);
if (in != null) {
props = new Properties();
props.load(in);
}
} catch (Exception e) {
props = null;
}
if (props == null)
return new MessageResolver();
else
return new MessageResolver(props);
} }
} }

View File

@ -351,7 +351,7 @@ public class MUser extends X_AD_User
/** User Access Rights */ /** User Access Rights */
private X_AD_UserBPAccess[] m_bpAccess = null; private X_AD_UserBPAccess[] m_bpAccess = null;
/** Password Hashed **/ /** Password Hashed **/
private boolean hashed = false; private boolean being_hashed = false;
/** /**
@ -438,10 +438,10 @@ public class MUser extends X_AD_User
return; return;
} }
if ( hashed ) if ( being_hashed )
return; return;
hashed = true; // prevents double call from beforeSave being_hashed = true; // prevents double call from beforeSave
// Uses a secure Random not a simple Random // Uses a secure Random not a simple Random
SecureRandom random; SecureRandom random;
@ -918,6 +918,18 @@ public class MUser extends X_AD_User
setValue(super.getValue()); setValue(super.getValue());
if (newRecord || is_ValueChanged("Password")) { if (newRecord || is_ValueChanged("Password")) {
// Validate password policies / IDEMPIERE-221
if (get_ValueOld("Salt") == null && get_Value("Salt") != null) { // being hashed
;
} else {
int pwdruleid = MClient.get(getCtx(), getAD_Client_ID()).getAD_PasswordRule_ID();
if (pwdruleid > 0) {
MPasswordRule pwdrule = new MPasswordRule(getCtx(), MClient.get(getCtx()).getAD_PasswordRule_ID(), get_TrxName());
pwdrule.validate((getLDAPUser() != null ? getLDAPUser() : getName()), getPassword());
}
}
// Hash password - IDEMPIERE-347
boolean hash_password = MSysConfig.getBooleanValue("USER_PASSWORD_HASH", false); boolean hash_password = MSysConfig.getBooleanValue("USER_PASSWORD_HASH", false);
if (hash_password) if (hash_password)
setPassword(getPassword()); setPassword(getPassword());

View File

@ -30,7 +30,7 @@ public class X_AD_PasswordRule extends PO implements I_AD_PasswordRule, I_Persis
/** /**
* *
*/ */
private static final long serialVersionUID = 20120802L; private static final long serialVersionUID = 20120806L;
/** Standard Constructor */ /** Standard Constructor */
public X_AD_PasswordRule (Properties ctx, int AD_PasswordRule_ID, String trxName) public X_AD_PasswordRule (Properties ctx, int AD_PasswordRule_ID, String trxName)
@ -39,6 +39,15 @@ public class X_AD_PasswordRule extends PO implements I_AD_PasswordRule, I_Persis
/** if (AD_PasswordRule_ID == 0) /** if (AD_PasswordRule_ID == 0)
{ {
setAD_PasswordRule_ID (0); setAD_PasswordRule_ID (0);
setIsDictMatchBackwards (false);
// N
setIsUserNameRule (false);
// N
setIsUsingDictionary (false);
// N
setIsWhitespace (false);
// N
setName (null);
} */ } */
} }
@ -70,8 +79,8 @@ public class X_AD_PasswordRule extends PO implements I_AD_PasswordRule, I_Persis
return sb.toString(); return sb.toString();
} }
/** Set AD_PasswordRule. /** Set Password Policies.
@param AD_PasswordRule_ID AD_PasswordRule */ @param AD_PasswordRule_ID Password Policies */
public void setAD_PasswordRule_ID (int AD_PasswordRule_ID) public void setAD_PasswordRule_ID (int AD_PasswordRule_ID)
{ {
if (AD_PasswordRule_ID < 1) if (AD_PasswordRule_ID < 1)
@ -80,8 +89,8 @@ public class X_AD_PasswordRule extends PO implements I_AD_PasswordRule, I_Persis
set_ValueNoCheck (COLUMNNAME_AD_PasswordRule_ID, Integer.valueOf(AD_PasswordRule_ID)); set_ValueNoCheck (COLUMNNAME_AD_PasswordRule_ID, Integer.valueOf(AD_PasswordRule_ID));
} }
/** Get AD_PasswordRule. /** Get Password Policies.
@return AD_PasswordRule */ @return Password Policies */
public int getAD_PasswordRule_ID () public int getAD_PasswordRule_ID ()
{ {
Integer ii = (Integer)get_Value(COLUMNNAME_AD_PasswordRule_ID); Integer ii = (Integer)get_Value(COLUMNNAME_AD_PasswordRule_ID);
@ -105,14 +114,17 @@ public class X_AD_PasswordRule extends PO implements I_AD_PasswordRule, I_Persis
} }
/** Set Alphabetical Character. /** Set Alphabetical Character.
@param AlphabeticalCharacter Alphabetical Character */ @param AlphabeticalCharacter
Require at least # alphabetical in passwords
*/
public void setAlphabeticalCharacter (int AlphabeticalCharacter) public void setAlphabeticalCharacter (int AlphabeticalCharacter)
{ {
set_Value (COLUMNNAME_AlphabeticalCharacter, Integer.valueOf(AlphabeticalCharacter)); set_Value (COLUMNNAME_AlphabeticalCharacter, Integer.valueOf(AlphabeticalCharacter));
} }
/** Get Alphabetical Character. /** Get Alphabetical Character.
@return Alphabetical Character */ @return Require at least # alphabetical in passwords
*/
public int getAlphabeticalCharacter () public int getAlphabeticalCharacter ()
{ {
Integer ii = (Integer)get_Value(COLUMNNAME_AlphabeticalCharacter); Integer ii = (Integer)get_Value(COLUMNNAME_AlphabeticalCharacter);
@ -123,50 +135,22 @@ public class X_AD_PasswordRule extends PO implements I_AD_PasswordRule, I_Persis
/** Set Alphabetical Sequence. /** Set Alphabetical Sequence.
@param AlphabeticalSequence @param AlphabeticalSequence
Allow alphabetical sequences Lenght of alphabetical sequence to validate
*/ */
public void setAlphabeticalSequence (boolean AlphabeticalSequence) public void setAlphabeticalSequence (int AlphabeticalSequence)
{ {
set_Value (COLUMNNAME_AlphabeticalSequence, Boolean.valueOf(AlphabeticalSequence)); set_Value (COLUMNNAME_AlphabeticalSequence, Integer.valueOf(AlphabeticalSequence));
} }
/** Get Alphabetical Sequence. /** Get Alphabetical Sequence.
@return Allow alphabetical sequences @return Lenght of alphabetical sequence to validate
*/ */
public boolean isAlphabeticalSequence () public int getAlphabeticalSequence ()
{ {
Object oo = get_Value(COLUMNNAME_AlphabeticalSequence); Integer ii = (Integer)get_Value(COLUMNNAME_AlphabeticalSequence);
if (oo != null) if (ii == null)
{ return 0;
if (oo instanceof Boolean) return ii.intValue();
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. /** Set Word Length Dictionary.
@ -206,6 +190,96 @@ public class X_AD_PasswordRule extends PO implements I_AD_PasswordRule, I_Persis
return ii.intValue(); return ii.intValue();
} }
/** Set Match Backwards of Dictionary.
@param IsDictMatchBackwards
Match dictionary words backwards
*/
public void setIsDictMatchBackwards (boolean IsDictMatchBackwards)
{
set_Value (COLUMNNAME_IsDictMatchBackwards, Boolean.valueOf(IsDictMatchBackwards));
}
/** Get Match Backwards of Dictionary.
@return Match dictionary words backwards
*/
public boolean isDictMatchBackwards ()
{
Object oo = get_Value(COLUMNNAME_IsDictMatchBackwards);
if (oo != null)
{
if (oo instanceof Boolean)
return ((Boolean)oo).booleanValue();
return "Y".equals(oo);
}
return false;
}
/** Set User Name Rule.
@param IsUserNameRule
Validate the password doesn't contain user name (ignore case and match backwards)
*/
public void setIsUserNameRule (boolean IsUserNameRule)
{
set_Value (COLUMNNAME_IsUserNameRule, Boolean.valueOf(IsUserNameRule));
}
/** Get User Name Rule.
@return Validate the password doesn't contain user name (ignore case and match backwards)
*/
public boolean isUserNameRule ()
{
Object oo = get_Value(COLUMNNAME_IsUserNameRule);
if (oo != null)
{
if (oo instanceof Boolean)
return ((Boolean)oo).booleanValue();
return "Y".equals(oo);
}
return false;
}
/** Set Using Dictionary.
@param IsUsingDictionary Using Dictionary */
public void setIsUsingDictionary (boolean IsUsingDictionary)
{
set_Value (COLUMNNAME_IsUsingDictionary, Boolean.valueOf(IsUsingDictionary));
}
/** Get Using Dictionary.
@return Using Dictionary */
public boolean isUsingDictionary ()
{
Object oo = get_Value(COLUMNNAME_IsUsingDictionary);
if (oo != null)
{
if (oo instanceof Boolean)
return ((Boolean)oo).booleanValue();
return "Y".equals(oo);
}
return false;
}
/** Set Whitespace.
@param IsWhitespace Whitespace */
public void setIsWhitespace (boolean IsWhitespace)
{
set_Value (COLUMNNAME_IsWhitespace, Boolean.valueOf(IsWhitespace));
}
/** Get Whitespace.
@return Whitespace */
public boolean isWhitespace ()
{
Object oo = get_Value(COLUMNNAME_IsWhitespace);
if (oo != null)
{
if (oo instanceof Boolean)
return ((Boolean)oo).booleanValue();
return "Y".equals(oo);
}
return false;
}
/** Set Lowercase Character. /** Set Lowercase Character.
@param LowercaseCharacter @param LowercaseCharacter
Require at least # lower case char Require at least # lower case char
@ -246,15 +320,15 @@ public class X_AD_PasswordRule extends PO implements I_AD_PasswordRule, I_Persis
return ii.intValue(); return ii.intValue();
} }
/** Set Min Length. /** Set Minimum Length.
@param MinLength Min Length */ @param MinLength Minimum Length */
public void setMinLength (int MinLength) public void setMinLength (int MinLength)
{ {
set_Value (COLUMNNAME_MinLength, Integer.valueOf(MinLength)); set_Value (COLUMNNAME_MinLength, Integer.valueOf(MinLength));
} }
/** Get Min Length. /** Get Minimum Length.
@return Min Length */ @return Minimum Length */
public int getMinLength () public int getMinLength ()
{ {
Integer ii = (Integer)get_Value(COLUMNNAME_MinLength); Integer ii = (Integer)get_Value(COLUMNNAME_MinLength);
@ -310,7 +384,7 @@ public class X_AD_PasswordRule extends PO implements I_AD_PasswordRule, I_Persis
/** Set Numerical Sequence. /** Set Numerical Sequence.
@param NumericalSequence @param NumericalSequence
Allow numerical sequences of length # Length of numerical sequence to validate
*/ */
public void setNumericalSequence (int NumericalSequence) public void setNumericalSequence (int NumericalSequence)
{ {
@ -318,7 +392,7 @@ public class X_AD_PasswordRule extends PO implements I_AD_PasswordRule, I_Persis
} }
/** Get Numerical Sequence. /** Get Numerical Sequence.
@return Allow numerical sequences of length # @return Length of numerical sequence to validate
*/ */
public int getNumericalSequence () public int getNumericalSequence ()
{ {
@ -344,37 +418,36 @@ public class X_AD_PasswordRule extends PO implements I_AD_PasswordRule, I_Persis
/** Set QWERTY Sequence. /** Set QWERTY Sequence.
@param QWERTYSequence @param QWERTYSequence
Allow QWERTY sequences Lenght of QWERTY sequences to validate
*/ */
public void setQWERTYSequence (boolean QWERTYSequence) public void setQWERTYSequence (int QWERTYSequence)
{ {
set_Value (COLUMNNAME_QWERTYSequence, Boolean.valueOf(QWERTYSequence)); set_Value (COLUMNNAME_QWERTYSequence, Integer.valueOf(QWERTYSequence));
} }
/** Get QWERTY Sequence. /** Get QWERTY Sequence.
@return Allow QWERTY sequences @return Lenght of QWERTY sequences to validate
*/ */
public boolean isQWERTYSequence () public int getQWERTYSequence ()
{ {
Object oo = get_Value(COLUMNNAME_QWERTYSequence); Integer ii = (Integer)get_Value(COLUMNNAME_QWERTYSequence);
if (oo != null) if (ii == null)
{ return 0;
if (oo instanceof Boolean) return ii.intValue();
return ((Boolean)oo).booleanValue();
return "Y".equals(oo);
}
return false;
} }
/** Set Repeat Character Regex. /** Set Repeat Character Regex.
@param RepeatCharacterRegex Repeat Character Regex */ @param RepeatCharacterRegex
Length of repeated characters to validate
*/
public void setRepeatCharacterRegex (int RepeatCharacterRegex) public void setRepeatCharacterRegex (int RepeatCharacterRegex)
{ {
set_Value (COLUMNNAME_RepeatCharacterRegex, Integer.valueOf(RepeatCharacterRegex)); set_Value (COLUMNNAME_RepeatCharacterRegex, Integer.valueOf(RepeatCharacterRegex));
} }
/** Get Repeat Character Regex. /** Get Repeat Character Regex.
@return Repeat Character Regex */ @return Length of repeated characters to validate
*/
public int getRepeatCharacterRegex () public int getRepeatCharacterRegex ()
{ {
Integer ii = (Integer)get_Value(COLUMNNAME_RepeatCharacterRegex); Integer ii = (Integer)get_Value(COLUMNNAME_RepeatCharacterRegex);
@ -402,70 +475,4 @@ public class X_AD_PasswordRule extends PO implements I_AD_PasswordRule, I_Persis
return 0; return 0;
return ii.intValue(); 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;
}
} }

View File

@ -0,0 +1,15 @@
HISTORY_VIOLATION=Clave coincide con una de las %1$s claves anteriores.
ILLEGAL_WORD=Clave contiene la palabra del diccionario '%1$s'.
ILLEGAL_WORD_REVERSED=Clave contiene la palabra inversa del diccionario '%1$s'.
ILLEGAL_MATCH=Clave coincide con la secuencia ilegal '%1$s'.
ILLEGAL_CHAR=Clave contiene el caracter ilegal '%1$s'.
ALLOWED_CHAR=Clave contiene el caracter ilegal '%1$s'.
ILLEGAL_SEQUENCE=Clave contiene la secuencia ilegal '%1$s'.
ILLEGAL_USERNAME=Clave contiene el identificador de usuario '%1$s'.
ILLEGAL_USERNAME_REVERSED=Clave contiene el identificador de usuario '%1$s' inverso.
ILLEGAL_WHITESPACE=Clave no puede contener espacios en blanco.
INSUFFICIENT_CHARACTERS=Clave debe contener al menos %1$s caracter(es) %2$s.
INSUFFICIENT_CHARACTERISTICS=Clave cumple %1$s de %2$s reglas de caracteres, pero %3$s son necesarias.
SOURCE_VIOLATION=Clave no puede ser la misma que su %1$s clave.
TOO_LONG=Clave debe tener hasta %2$s caracteres de longitud.
TOO_SHORT=Clave debe tener al menos %1$s caracteres de longitud.

View File

@ -974,14 +974,12 @@ public abstract class AbstractADWindowPanel extends AbstractUIPart implements To
*/ */
public boolean onExit() public boolean onExit()
{ {
String message = Msg.getMsg(ctx, "SaveBeforeClose");
if (!boolChanges) if (!boolChanges)
{ {
return true; return true;
} }
else else
FDialog.info(this.curWindowNo, null, message); FDialog.info(this.curWindowNo, null, "SaveBeforeClose");
return false; return false;
} }

View File

@ -431,7 +431,7 @@ public class InfoProductPanel extends InfoPanel implements EventListener
list.add(new ColumnInfo(Msg.translate(Env.getCtx(), "PriceLimit"), "bomPriceLimit(pp.M_Product_ID, pp.M_PriceList_Version_ID) AS PriceLimit", Double.class)); list.add(new ColumnInfo(Msg.translate(Env.getCtx(), "PriceLimit"), "bomPriceLimit(pp.M_Product_ID, pp.M_PriceList_Version_ID) AS PriceLimit", Double.class));
ColumnInfo[] s_layoutProductPrice = new ColumnInfo[list.size()]; ColumnInfo[] s_layoutProductPrice = new ColumnInfo[list.size()];
list.toArray(s_layoutProductPrice); list.toArray(s_layoutProductPrice);
s_sqlFrom = "M_ProductPrice pp INNER JOIN M_PriceList_Version plv ON pp.M_PriceList_Version_ID = plv.M_PriceList_Version_ID"; s_sqlFrom = "M_ProductPrice pp INNER JOIN M_PriceList_Version plv ON (pp.M_PriceList_Version_ID = plv.M_PriceList_Version_ID)";
s_sqlWhere = "pp.M_Product_ID = ? AND plv.IsActive = 'Y' AND pp.IsActive = 'Y'"; s_sqlWhere = "pp.M_Product_ID = ? AND plv.IsActive = 'Y' AND pp.IsActive = 'Y'";
m_sqlProductprice = productpriceTbl.prepareTable(s_layoutProductPrice, s_sqlFrom, s_sqlWhere, false, "pp") + " ORDER BY plv.ValidFrom DESC"; m_sqlProductprice = productpriceTbl.prepareTable(s_layoutProductPrice, s_sqlFrom, s_sqlWhere, false, "pp") + " ORDER BY plv.ValidFrom DESC";
productpriceTbl.setMultiSelection(false); productpriceTbl.setMultiSelection(false);
@ -1328,6 +1328,7 @@ public class InfoProductPanel extends InfoPanel implements EventListener
if (fieldValue.getText().length() == 0 && fieldName.getText().length() == 0 && contentPanel.getRowCount() == 0) if (fieldValue.getText().length() == 0 && fieldName.getText().length() == 0 && contentPanel.getRowCount() == 0)
execute = false; execute = false;
// Remove existing headers // Remove existing headers
if (contentPanel.getListhead() != null)
contentPanel.getListhead().detach(); contentPanel.getListhead().detach();
// Create Grid // Create Grid
int M_Warehouse_ID = 0; int M_Warehouse_ID = 0;

View File

@ -188,6 +188,18 @@ public class LoginPanel extends Window implements EventListener
tr.appendChild(td); tr.appendChild(td);
td.appendChild(lstLanguage); td.appendChild(lstLanguage);
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);
if (MSystem.isZKRememberUserAllowed()) { if (MSystem.isZKRememberUserAllowed()) {
tr = new Tr(); tr = new Tr();
tr.setId("rowRememberMe"); tr.setId("rowRememberMe");
@ -200,17 +212,7 @@ public class LoginPanel extends Window implements EventListener
td.setSclass(ITheme.LOGIN_FIELD_CLASS); td.setSclass(ITheme.LOGIN_FIELD_CLASS);
tr.appendChild(td); tr.appendChild(td);
td.appendChild(chkRememberMe); 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(); div = new Div();