diff --git a/migration/360lts-release/oracle/913_IDEMPIERE-374.sql b/migration/360lts-release/oracle/913_IDEMPIERE-374.sql new file mode 100644 index 0000000000..3bb61edaef --- /dev/null +++ b/migration/360lts-release/oracle/913_IDEMPIERE-374.sql @@ -0,0 +1,202 @@ +-- Sep 18, 2012 2:38:36 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +INSERT INTO AD_Form (AccessLevel,Classname,AD_Form_ID,Help,IsBetaFunctionality,EntityType,AD_Form_UU,Description,Name,AD_Org_ID,UpdatedBy,CreatedBy,Updated,Created,AD_Client_ID,IsActive) VALUES ('1','org.compiere.apps.form.VResetPassword',200001,NULL,'N','D','e2db983d-c11a-46f7-a4f5-fca8167c8d6c','Reset Password','Reset Password',0,100,100,TO_DATE('2012-09-18 14:38:34','YYYY-MM-DD HH24:MI:SS'),TO_DATE('2012-09-18 14:38:34','YYYY-MM-DD HH24:MI:SS'),0,'Y') +; + +-- Sep 18, 2012 2:38:38 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +INSERT INTO AD_Form_Trl (AD_Language,AD_Form_ID, Help,Description,Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy,AD_Form_Trl_UU ) SELECT l.AD_Language,t.AD_Form_ID, t.Help,t.Description,t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy,Generate_UUID() FROM AD_Language l, AD_Form t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Form_ID=200001 AND NOT EXISTS (SELECT * FROM AD_Form_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Form_ID=t.AD_Form_ID) +; + +-- Sep 18, 2012 2:39:13 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +INSERT INTO AD_Menu (AD_Menu_ID,IsSummary,IsSOTrx,IsReadOnly,AD_Form_ID,EntityType,IsCentrallyMaintained,Name,Description,Action,AD_Menu_UU,IsActive,AD_Client_ID,CreatedBy,Updated,AD_Org_ID,Created,UpdatedBy) VALUES (200017,'N','N','N',200001,'D','Y','Reset Password','Reset Passwords for User','X','c9aa4c76-894d-4a72-97de-38d0345fd477','Y',0,100,TO_DATE('2012-09-18 14:39:12','YYYY-MM-DD HH24:MI:SS'),0,TO_DATE('2012-09-18 14:39:12','YYYY-MM-DD HH24:MI:SS'),100) +; + +-- Sep 18, 2012 2:39:14 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +INSERT INTO AD_Menu_Trl (AD_Language,AD_Menu_ID, Name,Description, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy,AD_Menu_Trl_UU ) SELECT l.AD_Language,t.AD_Menu_ID, t.Name,t.Description, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy,Generate_UUID() FROM AD_Language l, AD_Menu t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Menu_ID=200017 AND NOT EXISTS (SELECT * FROM AD_Menu_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Menu_ID=t.AD_Menu_ID) +; + +-- Sep 18, 2012 2:39:14 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +INSERT INTO AD_TreeNodeMM (AD_Client_ID,AD_Org_ID, IsActive,Created,CreatedBy,Updated,UpdatedBy, AD_Tree_ID, Node_ID, Parent_ID, SeqNo, AD_TreeNodeMM_UU) SELECT t.AD_Client_ID, 0, 'Y', SysDate, 100, SysDate, 100,t.AD_Tree_ID, 200017, 0, 999, Generate_UUID() FROM AD_Tree t WHERE t.AD_Client_ID=0 AND t.IsActive='Y' AND t.IsAllNodes='Y' AND t.TreeType='MM' AND NOT EXISTS (SELECT * FROM AD_TreeNodeMM e WHERE e.AD_Tree_ID=t.AD_Tree_ID AND Node_ID=200017) +; + +-- Sep 18, 2012 2:39:24 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +UPDATE AD_TreeNodeMM SET Parent_ID=367, SeqNo=0, Updated=SysDate WHERE AD_Tree_ID=10 AND Node_ID=200002 +; + +-- Sep 18, 2012 2:39:24 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +UPDATE AD_TreeNodeMM SET Parent_ID=367, SeqNo=1, Updated=SysDate WHERE AD_Tree_ID=10 AND Node_ID=147 +; + +-- Sep 18, 2012 2:39:24 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +UPDATE AD_TreeNodeMM SET Parent_ID=367, SeqNo=2, Updated=SysDate WHERE AD_Tree_ID=10 AND Node_ID=53246 +; + +-- Sep 18, 2012 2:39:24 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +UPDATE AD_TreeNodeMM SET Parent_ID=367, SeqNo=3, Updated=SysDate WHERE AD_Tree_ID=10 AND Node_ID=200017 +; + +-- Sep 18, 2012 2:39:24 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +UPDATE AD_TreeNodeMM SET Parent_ID=367, SeqNo=4, Updated=SysDate WHERE AD_Tree_ID=10 AND Node_ID=487 +; + +-- Sep 18, 2012 2:39:24 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +UPDATE AD_TreeNodeMM SET Parent_ID=367, SeqNo=5, Updated=SysDate WHERE AD_Tree_ID=10 AND Node_ID=200012 +; + +-- Sep 18, 2012 2:39:24 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +UPDATE AD_TreeNodeMM SET Parent_ID=367, SeqNo=6, Updated=SysDate WHERE AD_Tree_ID=10 AND Node_ID=150 +; + +-- Sep 18, 2012 2:39:24 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +UPDATE AD_TreeNodeMM SET Parent_ID=367, SeqNo=7, Updated=SysDate WHERE AD_Tree_ID=10 AND Node_ID=495 +; + +-- Sep 18, 2012 2:39:24 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +UPDATE AD_TreeNodeMM SET Parent_ID=367, SeqNo=8, Updated=SysDate WHERE AD_Tree_ID=10 AND Node_ID=50007 +; + +-- Sep 18, 2012 2:39:24 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +UPDATE AD_TreeNodeMM SET Parent_ID=367, SeqNo=9, Updated=SysDate WHERE AD_Tree_ID=10 AND Node_ID=362 +; + +-- Sep 18, 2012 2:39:24 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +UPDATE AD_TreeNodeMM SET Parent_ID=367, SeqNo=10, Updated=SysDate WHERE AD_Tree_ID=10 AND Node_ID=200001 +; + +-- Sep 18, 2012 2:39:24 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +UPDATE AD_TreeNodeMM SET Parent_ID=367, SeqNo=11, Updated=SysDate WHERE AD_Tree_ID=10 AND Node_ID=475 +; + +-- Sep 18, 2012 2:39:24 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +UPDATE AD_TreeNodeMM SET Parent_ID=367, SeqNo=12, Updated=SysDate WHERE AD_Tree_ID=10 AND Node_ID=366 +; + +-- Sep 18, 2012 2:39:24 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +UPDATE AD_TreeNodeMM SET Parent_ID=367, SeqNo=13, Updated=SysDate WHERE AD_Tree_ID=10 AND Node_ID=483 +; + +-- Sep 18, 2012 2:39:24 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +UPDATE AD_TreeNodeMM SET Parent_ID=367, SeqNo=14, Updated=SysDate WHERE AD_Tree_ID=10 AND Node_ID=368 +; + +-- Sep 18, 2012 2:39:24 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +UPDATE AD_TreeNodeMM SET Parent_ID=367, SeqNo=15, Updated=SysDate WHERE AD_Tree_ID=10 AND Node_ID=508 +; + +-- Sep 18, 2012 2:39:24 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +UPDATE AD_TreeNodeMM SET Parent_ID=367, SeqNo=16, Updated=SysDate WHERE AD_Tree_ID=10 AND Node_ID=53348 +; + +-- Sep 18, 2012 2:39:32 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +DELETE FROM AD_Menu_Trl WHERE AD_Menu_ID=487 +; + +-- Sep 18, 2012 2:39:33 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +DELETE FROM AD_Menu WHERE AD_Menu_ID=487 +; + +-- Sep 18, 2012 2:39:33 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +DELETE FROM AD_TreeNodeMM n WHERE Node_ID=487 AND EXISTS (SELECT * FROM AD_Tree t WHERE t.AD_Tree_ID=n.AD_Tree_ID AND t.TreeType='MM') +; + +-- Sep 18, 2012 2:48:49 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +UPDATE AD_Form SET AccessLevel='7',Updated=TO_DATE('2012-09-18 14:48:49','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Form_ID=200001 +; + +-- Sep 18, 2012 4:32:53 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +INSERT INTO AD_Message (MsgType,MsgText,MsgTip,AD_Message_ID,EntityType,AD_Message_UU,Value,IsActive,Updated,CreatedBy,UpdatedBy,AD_Client_ID,AD_Org_ID,Created) VALUES ('E','User is Mandatory',NULL,200067,'D','40544a9e-776d-4f96-8ef1-f38de2237027','UserMandatory','Y',TO_DATE('2012-09-18 16:32:51','YYYY-MM-DD HH24:MI:SS'),100,100,0,0,TO_DATE('2012-09-18 16:32:51','YYYY-MM-DD HH24:MI:SS')) +; + +-- Sep 18, 2012 4:32:53 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +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=200067 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) +; + +-- Sep 18, 2012 4:35:14 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +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','New EMail does not match the Confirm New EMail',200068,'D','5046c7a0-0846-4f09-b130-d8280a043775','NewEmailNotMatch','Y',TO_DATE('2012-09-18 16:35:13','YYYY-MM-DD HH24:MI:SS'),100,100,0,0,TO_DATE('2012-09-18 16:35:13','YYYY-MM-DD HH24:MI:SS')) +; + +-- Sep 18, 2012 4:35:14 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +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=200068 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) +; + +-- Sep 18, 2012 4:35:51 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +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','Confirm New EMail is Mandatory',200069,'D','c9e44d6f-af2e-4306-bb84-2df8258ad79c','NewEmailConfirmMandatory','Y',TO_DATE('2012-09-18 16:35:50','YYYY-MM-DD HH24:MI:SS'),100,100,0,0,TO_DATE('2012-09-18 16:35:50','YYYY-MM-DD HH24:MI:SS')) +; + +-- Sep 18, 2012 4:35:51 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +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=200069 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) +; + +-- Sep 18, 2012 4:37:44 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +INSERT INTO AD_Message (MsgType,MsgText,AD_Message_ID,EntityType,AD_Message_UU,Value,IsActive,Updated,CreatedBy,UpdatedBy,AD_Client_ID,AD_Org_ID,Created) VALUES ('I','Confirm New EMail',200070,'D','41282b1f-672c-43e0-b823-439b87fa0544','New EMail Confirm','Y',TO_DATE('2012-09-18 16:37:43','YYYY-MM-DD HH24:MI:SS'),100,100,0,0,TO_DATE('2012-09-18 16:37:43','YYYY-MM-DD HH24:MI:SS')) +; + +-- Sep 18, 2012 4:37:44 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +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=200070 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) +; + +-- Sep 18, 2012 4:38:20 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +INSERT INTO AD_Message (MsgType,MsgText,AD_Message_ID,EntityType,AD_Message_UU,Value,IsActive,Updated,CreatedBy,UpdatedBy,AD_Client_ID,AD_Org_ID,Created) VALUES ('I','New EMail',200071,'D','6a228718-3a23-46d3-8e0c-97a6511acc50','New EMail','Y',TO_DATE('2012-09-18 16:38:19','YYYY-MM-DD HH24:MI:SS'),100,100,0,0,TO_DATE('2012-09-18 16:38:19','YYYY-MM-DD HH24:MI:SS')) +; + +-- Sep 18, 2012 4:38:20 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +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=200071 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) +; + +-- Sep 18, 2012 4:38:36 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +INSERT INTO AD_Message (MsgType,MsgText,AD_Message_ID,EntityType,AD_Message_UU,Value,IsActive,Updated,CreatedBy,UpdatedBy,AD_Client_ID,AD_Org_ID,Created) VALUES ('I','New EMail User',200072,'D','3bf5a60b-20a1-484d-a5f0-11dbe95fcbce','New EMail User','Y',TO_DATE('2012-09-18 16:38:35','YYYY-MM-DD HH24:MI:SS'),100,100,0,0,TO_DATE('2012-09-18 16:38:35','YYYY-MM-DD HH24:MI:SS')) +; + +-- Sep 18, 2012 4:38:36 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +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=200072 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) +; + +-- Sep 18, 2012 4:39:03 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +INSERT INTO AD_Message (MsgType,MsgText,AD_Message_ID,EntityType,AD_Message_UU,Value,IsActive,Updated,CreatedBy,UpdatedBy,AD_Client_ID,AD_Org_ID,Created) VALUES ('I','New EMail User Password',200073,'D','cfe2fcb8-81cc-4df5-b187-f1df99f8f842','New EMail User Password','Y',TO_DATE('2012-09-18 16:38:59','YYYY-MM-DD HH24:MI:SS'),100,100,0,0,TO_DATE('2012-09-18 16:38:59','YYYY-MM-DD HH24:MI:SS')) +; + +-- Sep 18, 2012 4:39:03 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +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=200073 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) +; + +SELECT register_migration_script('913_IDEMPIERE-374.sql') FROM dual +; \ No newline at end of file diff --git a/migration/360lts-release/postgresql/913_IDEMPIERE-374.sql b/migration/360lts-release/postgresql/913_IDEMPIERE-374.sql new file mode 100644 index 0000000000..6a49da8830 --- /dev/null +++ b/migration/360lts-release/postgresql/913_IDEMPIERE-374.sql @@ -0,0 +1,202 @@ +-- Sep 18, 2012 2:38:36 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +INSERT INTO AD_Form (AccessLevel,Classname,AD_Form_ID,Help,IsBetaFunctionality,EntityType,AD_Form_UU,Description,Name,AD_Org_ID,UpdatedBy,CreatedBy,Updated,Created,AD_Client_ID,IsActive) VALUES ('1','org.compiere.apps.form.VResetPassword',200001,NULL,'N','D','e2db983d-c11a-46f7-a4f5-fca8167c8d6c','Reset Password','Reset Password',0,100,100,TO_TIMESTAMP('2012-09-18 14:38:34','YYYY-MM-DD HH24:MI:SS'),TO_TIMESTAMP('2012-09-18 14:38:34','YYYY-MM-DD HH24:MI:SS'),0,'Y') +; + +-- Sep 18, 2012 2:38:38 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +INSERT INTO AD_Form_Trl (AD_Language,AD_Form_ID, Help,Description,Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy,AD_Form_Trl_UU ) SELECT l.AD_Language,t.AD_Form_ID, t.Help,t.Description,t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy,Generate_UUID() FROM AD_Language l, AD_Form t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Form_ID=200001 AND NOT EXISTS (SELECT * FROM AD_Form_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Form_ID=t.AD_Form_ID) +; + +-- Sep 18, 2012 2:39:13 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +INSERT INTO AD_Menu (AD_Menu_ID,IsSummary,IsSOTrx,IsReadOnly,AD_Form_ID,EntityType,IsCentrallyMaintained,Name,Description,"action",AD_Menu_UU,IsActive,AD_Client_ID,CreatedBy,Updated,AD_Org_ID,Created,UpdatedBy) VALUES (200017,'N','N','N',200001,'D','Y','Reset Password','Reset Passwords for User','X','c9aa4c76-894d-4a72-97de-38d0345fd477','Y',0,100,TO_TIMESTAMP('2012-09-18 14:39:12','YYYY-MM-DD HH24:MI:SS'),0,TO_TIMESTAMP('2012-09-18 14:39:12','YYYY-MM-DD HH24:MI:SS'),100) +; + +-- Sep 18, 2012 2:39:14 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +INSERT INTO AD_Menu_Trl (AD_Language,AD_Menu_ID, Name,Description, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy,AD_Menu_Trl_UU ) SELECT l.AD_Language,t.AD_Menu_ID, t.Name,t.Description, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy,Generate_UUID() FROM AD_Language l, AD_Menu t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Menu_ID=200017 AND NOT EXISTS (SELECT * FROM AD_Menu_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Menu_ID=t.AD_Menu_ID) +; + +-- Sep 18, 2012 2:39:14 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +INSERT INTO AD_TreeNodeMM (AD_Client_ID,AD_Org_ID, IsActive,Created,CreatedBy,Updated,UpdatedBy, AD_Tree_ID, Node_ID, Parent_ID, SeqNo, AD_TreeNodeMM_UU) SELECT t.AD_Client_ID, 0, 'Y', CURRENT_TIMESTAMP, 100, CURRENT_TIMESTAMP, 100,t.AD_Tree_ID, 200017, 0, 999, Generate_UUID() FROM AD_Tree t WHERE t.AD_Client_ID=0 AND t.IsActive='Y' AND t.IsAllNodes='Y' AND t.TreeType='MM' AND NOT EXISTS (SELECT * FROM AD_TreeNodeMM e WHERE e.AD_Tree_ID=t.AD_Tree_ID AND Node_ID=200017) +; + +-- Sep 18, 2012 2:39:24 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +UPDATE AD_TreeNodeMM SET Parent_ID=367, SeqNo=0, Updated=CURRENT_TIMESTAMP WHERE AD_Tree_ID=10 AND Node_ID=200002 +; + +-- Sep 18, 2012 2:39:24 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +UPDATE AD_TreeNodeMM SET Parent_ID=367, SeqNo=1, Updated=CURRENT_TIMESTAMP WHERE AD_Tree_ID=10 AND Node_ID=147 +; + +-- Sep 18, 2012 2:39:24 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +UPDATE AD_TreeNodeMM SET Parent_ID=367, SeqNo=2, Updated=CURRENT_TIMESTAMP WHERE AD_Tree_ID=10 AND Node_ID=53246 +; + +-- Sep 18, 2012 2:39:24 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +UPDATE AD_TreeNodeMM SET Parent_ID=367, SeqNo=3, Updated=CURRENT_TIMESTAMP WHERE AD_Tree_ID=10 AND Node_ID=200017 +; + +-- Sep 18, 2012 2:39:24 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +UPDATE AD_TreeNodeMM SET Parent_ID=367, SeqNo=4, Updated=CURRENT_TIMESTAMP WHERE AD_Tree_ID=10 AND Node_ID=487 +; + +-- Sep 18, 2012 2:39:24 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +UPDATE AD_TreeNodeMM SET Parent_ID=367, SeqNo=5, Updated=CURRENT_TIMESTAMP WHERE AD_Tree_ID=10 AND Node_ID=200012 +; + +-- Sep 18, 2012 2:39:24 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +UPDATE AD_TreeNodeMM SET Parent_ID=367, SeqNo=6, Updated=CURRENT_TIMESTAMP WHERE AD_Tree_ID=10 AND Node_ID=150 +; + +-- Sep 18, 2012 2:39:24 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +UPDATE AD_TreeNodeMM SET Parent_ID=367, SeqNo=7, Updated=CURRENT_TIMESTAMP WHERE AD_Tree_ID=10 AND Node_ID=495 +; + +-- Sep 18, 2012 2:39:24 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +UPDATE AD_TreeNodeMM SET Parent_ID=367, SeqNo=8, Updated=CURRENT_TIMESTAMP WHERE AD_Tree_ID=10 AND Node_ID=50007 +; + +-- Sep 18, 2012 2:39:24 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +UPDATE AD_TreeNodeMM SET Parent_ID=367, SeqNo=9, Updated=CURRENT_TIMESTAMP WHERE AD_Tree_ID=10 AND Node_ID=362 +; + +-- Sep 18, 2012 2:39:24 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +UPDATE AD_TreeNodeMM SET Parent_ID=367, SeqNo=10, Updated=CURRENT_TIMESTAMP WHERE AD_Tree_ID=10 AND Node_ID=200001 +; + +-- Sep 18, 2012 2:39:24 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +UPDATE AD_TreeNodeMM SET Parent_ID=367, SeqNo=11, Updated=CURRENT_TIMESTAMP WHERE AD_Tree_ID=10 AND Node_ID=475 +; + +-- Sep 18, 2012 2:39:24 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +UPDATE AD_TreeNodeMM SET Parent_ID=367, SeqNo=12, Updated=CURRENT_TIMESTAMP WHERE AD_Tree_ID=10 AND Node_ID=366 +; + +-- Sep 18, 2012 2:39:24 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +UPDATE AD_TreeNodeMM SET Parent_ID=367, SeqNo=13, Updated=CURRENT_TIMESTAMP WHERE AD_Tree_ID=10 AND Node_ID=483 +; + +-- Sep 18, 2012 2:39:24 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +UPDATE AD_TreeNodeMM SET Parent_ID=367, SeqNo=14, Updated=CURRENT_TIMESTAMP WHERE AD_Tree_ID=10 AND Node_ID=368 +; + +-- Sep 18, 2012 2:39:24 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +UPDATE AD_TreeNodeMM SET Parent_ID=367, SeqNo=15, Updated=CURRENT_TIMESTAMP WHERE AD_Tree_ID=10 AND Node_ID=508 +; + +-- Sep 18, 2012 2:39:24 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +UPDATE AD_TreeNodeMM SET Parent_ID=367, SeqNo=16, Updated=CURRENT_TIMESTAMP WHERE AD_Tree_ID=10 AND Node_ID=53348 +; + +-- Sep 18, 2012 2:39:32 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +DELETE FROM AD_Menu_Trl WHERE AD_Menu_ID=487 +; + +-- Sep 18, 2012 2:39:33 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +DELETE FROM AD_Menu WHERE AD_Menu_ID=487 +; + +-- Sep 18, 2012 2:39:33 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +DELETE FROM AD_TreeNodeMM WHERE Node_ID=487 AND EXISTS (SELECT * FROM AD_Tree t WHERE t.AD_Tree_ID=AD_TreeNodeMM.AD_Tree_ID AND t.TreeType='MM') +; + +-- Sep 18, 2012 2:48:49 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +UPDATE AD_Form SET AccessLevel='7',Updated=TO_TIMESTAMP('2012-09-18 14:48:49','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Form_ID=200001 +; + +-- Sep 18, 2012 4:32:53 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +INSERT INTO AD_Message (MsgType,MsgText,MsgTip,AD_Message_ID,EntityType,AD_Message_UU,Value,IsActive,Updated,CreatedBy,UpdatedBy,AD_Client_ID,AD_Org_ID,Created) VALUES ('E','User is Mandatory',NULL,200067,'D','40544a9e-776d-4f96-8ef1-f38de2237027','UserMandatory','Y',TO_TIMESTAMP('2012-09-18 16:32:51','YYYY-MM-DD HH24:MI:SS'),100,100,0,0,TO_TIMESTAMP('2012-09-18 16:32:51','YYYY-MM-DD HH24:MI:SS')) +; + +-- Sep 18, 2012 4:32:53 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +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=200067 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) +; + +-- Sep 18, 2012 4:35:14 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +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','New EMail does not match the Confirm New EMail',200068,'D','5046c7a0-0846-4f09-b130-d8280a043775','NewEmailNotMatch','Y',TO_TIMESTAMP('2012-09-18 16:35:13','YYYY-MM-DD HH24:MI:SS'),100,100,0,0,TO_TIMESTAMP('2012-09-18 16:35:13','YYYY-MM-DD HH24:MI:SS')) +; + +-- Sep 18, 2012 4:35:14 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +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=200068 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) +; + +-- Sep 18, 2012 4:35:51 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +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','Confirm New EMail is Mandatory',200069,'D','c9e44d6f-af2e-4306-bb84-2df8258ad79c','NewEmailConfirmMandatory','Y',TO_TIMESTAMP('2012-09-18 16:35:50','YYYY-MM-DD HH24:MI:SS'),100,100,0,0,TO_TIMESTAMP('2012-09-18 16:35:50','YYYY-MM-DD HH24:MI:SS')) +; + +-- Sep 18, 2012 4:35:51 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +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=200069 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) +; + +-- Sep 18, 2012 4:37:44 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +INSERT INTO AD_Message (MsgType,MsgText,AD_Message_ID,EntityType,AD_Message_UU,Value,IsActive,Updated,CreatedBy,UpdatedBy,AD_Client_ID,AD_Org_ID,Created) VALUES ('I','Confirm New EMail',200070,'D','41282b1f-672c-43e0-b823-439b87fa0544','New EMail Confirm','Y',TO_TIMESTAMP('2012-09-18 16:37:43','YYYY-MM-DD HH24:MI:SS'),100,100,0,0,TO_TIMESTAMP('2012-09-18 16:37:43','YYYY-MM-DD HH24:MI:SS')) +; + +-- Sep 18, 2012 4:37:44 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +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=200070 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) +; + +-- Sep 18, 2012 4:38:20 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +INSERT INTO AD_Message (MsgType,MsgText,AD_Message_ID,EntityType,AD_Message_UU,Value,IsActive,Updated,CreatedBy,UpdatedBy,AD_Client_ID,AD_Org_ID,Created) VALUES ('I','New EMail',200071,'D','6a228718-3a23-46d3-8e0c-97a6511acc50','New EMail','Y',TO_TIMESTAMP('2012-09-18 16:38:19','YYYY-MM-DD HH24:MI:SS'),100,100,0,0,TO_TIMESTAMP('2012-09-18 16:38:19','YYYY-MM-DD HH24:MI:SS')) +; + +-- Sep 18, 2012 4:38:20 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +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=200071 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) +; + +-- Sep 18, 2012 4:38:36 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +INSERT INTO AD_Message (MsgType,MsgText,AD_Message_ID,EntityType,AD_Message_UU,Value,IsActive,Updated,CreatedBy,UpdatedBy,AD_Client_ID,AD_Org_ID,Created) VALUES ('I','New EMail User',200072,'D','3bf5a60b-20a1-484d-a5f0-11dbe95fcbce','New EMail User','Y',TO_TIMESTAMP('2012-09-18 16:38:35','YYYY-MM-DD HH24:MI:SS'),100,100,0,0,TO_TIMESTAMP('2012-09-18 16:38:35','YYYY-MM-DD HH24:MI:SS')) +; + +-- Sep 18, 2012 4:38:36 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +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=200072 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) +; + +-- Sep 18, 2012 4:39:03 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +INSERT INTO AD_Message (MsgType,MsgText,AD_Message_ID,EntityType,AD_Message_UU,Value,IsActive,Updated,CreatedBy,UpdatedBy,AD_Client_ID,AD_Org_ID,Created) VALUES ('I','New EMail User Password',200073,'D','cfe2fcb8-81cc-4df5-b187-f1df99f8f842','New EMail User Password','Y',TO_TIMESTAMP('2012-09-18 16:38:59','YYYY-MM-DD HH24:MI:SS'),100,100,0,0,TO_TIMESTAMP('2012-09-18 16:38:59','YYYY-MM-DD HH24:MI:SS')) +; + +-- Sep 18, 2012 4:39:03 PM SGT +-- IDEMPIERE-374 Change password must be changed to be a form instead of a process +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=200073 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) +; + +SELECT register_migration_script('913_IDEMPIERE-374.sql') FROM dual +; \ No newline at end of file diff --git a/org.adempiere.ui.swing/src/org/compiere/apps/form/VResetPassword.java b/org.adempiere.ui.swing/src/org/compiere/apps/form/VResetPassword.java new file mode 100644 index 0000000000..175dfede91 --- /dev/null +++ b/org.adempiere.ui.swing/src/org/compiere/apps/form/VResetPassword.java @@ -0,0 +1,329 @@ +package org.compiere.apps.form; + +import java.awt.BorderLayout; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; +import java.awt.Insets; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.beans.PropertyChangeEvent; +import java.beans.PropertyVetoException; +import java.beans.VetoableChangeListener; +import java.util.logging.Level; + +import javax.swing.JPasswordField; +import javax.swing.JTextField; +import javax.swing.SwingConstants; + +import org.compiere.apps.ADialog; +import org.compiere.apps.ConfirmPanel; +import org.compiere.grid.ed.VLookup; +import org.compiere.model.MLookup; +import org.compiere.model.MLookupFactory; +import org.compiere.model.MSysConfig; +import org.compiere.model.MUser; +import org.compiere.swing.CLabel; +import org.compiere.swing.CPanel; +import org.compiere.util.CLogger; +import org.compiere.util.DisplayType; +import org.compiere.util.Env; +import org.compiere.util.Msg; +import org.compiere.util.Util; + +public class VResetPassword implements FormPanel, ActionListener, VetoableChangeListener { + + private static CLogger log = CLogger.getCLogger(VResetPassword.class); + + private FormFrame frame; + private CPanel mainPanel; + private ConfirmPanel confirmPanel; + + private CLabel lblUser; + private CLabel lblOldPassword; + private CLabel lblNewPassword; + private CLabel lblRetypeNewPassword; + private CLabel lblNewEMail; + private CLabel lblRetypeNewEMail; + private CLabel lblNewEMailUser; + private CLabel lblNewEMailUserPW; + + private VLookup fUser; + private JPasswordField txtOldPassword; + private JPasswordField txtNewPassword; + private JPasswordField txtRetypeNewPassword; + private JTextField txtNewEMail; + private JTextField txtRetypeNewEMail; + private JTextField txtNewEMailUser; + private JTextField txtNewEMailUserPW; + + public int windowNo = 0; + + @Override + public void init(int WindowNo, FormFrame frame) + { + this.windowNo = WindowNo; + this.frame = frame; + + try + { + dynInit(); + jbInit(); + + frame.getContentPane().add(mainPanel, BorderLayout.CENTER); + frame.getContentPane().add(confirmPanel, BorderLayout.SOUTH); + confirmPanel.addActionListener(this); + } + catch(Exception e) + { + log.log(Level.SEVERE, "init", e); + } + } + + private void jbInit() throws Exception + { + GridBagLayout panelLayout = new GridBagLayout(); + mainPanel.setLayout(panelLayout); + + mainPanel.add(lblUser, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0 + ,GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(12, 12, 5, 5), 0, 0)); + mainPanel.add(fUser, new GridBagConstraints(1, 0, 1, 1, 1.0, 0.0 + ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(12, 0, 5, 12), 0, 0)); + mainPanel.add(lblOldPassword, new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0 + ,GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(12, 12, 5, 5), 0, 0)); + mainPanel.add(txtOldPassword, new GridBagConstraints(1, 1, 1, 1, 1.0, 0.0 + ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(12, 0, 5, 12), 0, 0)); + mainPanel.add(lblNewPassword, new GridBagConstraints(0, 2, 1, 1, 0.0, 0.0 + ,GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(12, 12, 5, 5), 0, 0)); + mainPanel.add(txtNewPassword, new GridBagConstraints(1, 2, 1, 1, 1.0, 0.0 + ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(12, 0, 5, 12), 0, 0)); + mainPanel.add(lblRetypeNewPassword, new GridBagConstraints(0, 3, 1, 1, 0.0, 0.0 + ,GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(12, 12, 5, 5), 0, 0)); + mainPanel.add(txtRetypeNewPassword, new GridBagConstraints(1, 3, 1, 1, 1.0, 0.0 + ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(12, 0, 5, 12), 0, 0)); + mainPanel.add(lblNewEMail, new GridBagConstraints(0, 4, 1, 1, 0.0, 0.0 + ,GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(12, 12, 5, 5), 0, 0)); + mainPanel.add(txtNewEMail, new GridBagConstraints(1, 4, 1, 1, 1.0, 0.0 + ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(12, 0, 5, 12), 0, 0)); + mainPanel.add(lblRetypeNewEMail, new GridBagConstraints(0, 5, 1, 1, 0.0, 0.0 + ,GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(12, 12, 5, 5), 0, 0)); + mainPanel.add(txtRetypeNewEMail, new GridBagConstraints(1, 5, 1, 1, 1.0, 0.0 + ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(12, 0, 5, 12), 0, 0)); + mainPanel.add(lblNewEMailUser, new GridBagConstraints(0, 6, 1, 1, 0.0, 0.0 + ,GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(12, 12, 5, 5), 0, 0)); + mainPanel.add(txtNewEMailUser, new GridBagConstraints(1, 6, 1, 1, 1.0, 0.0 + ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(12, 0, 5, 12), 0, 0)); + mainPanel.add(lblNewEMailUserPW, new GridBagConstraints(0, 7, 1, 1, 0.0, 0.0 + ,GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(12, 12, 5, 5), 0, 0)); + mainPanel.add(txtNewEMailUserPW, new GridBagConstraints(1, 7, 1, 1, 1.0, 0.0 + ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(12, 0, 5, 12), 0, 0)); + + fUser.addVetoableChangeListener(this); + } + + private void dynInit() + { + mainPanel = new CPanel(); + + // AD_User.AD_User_ID + MLookup userLkp = MLookupFactory.get (Env.getCtx(), windowNo, 0, 212, DisplayType.Search); + fUser = new VLookup("AD_User_ID", false, false, true, userLkp); + + txtOldPassword = new JPasswordField(); + txtOldPassword.setName("txtOldPassword"); + + txtNewPassword = new JPasswordField(); + txtNewPassword.setName("txtNewPassword"); + + txtRetypeNewPassword = new JPasswordField(); + txtRetypeNewPassword.setName("txtRetypeNewPassword"); + + txtNewEMail = new JTextField(); + txtNewEMail.setName("txtNewEMail"); + + txtRetypeNewEMail = new JTextField(); + txtRetypeNewEMail.setName("txtRetypeNewEMail"); + + txtNewEMailUser = new JTextField(); + txtNewEMailUser.setName("txtNewEMailUser"); + + txtNewEMailUserPW = new JTextField(); + txtNewEMailUserPW.setName("txtNewEMailUserPW"); + + lblUser = new CLabel(Msg.translate(Env.getCtx(), "AD_User_ID")); + lblUser.setRequestFocusEnabled(false); + lblUser.setLabelFor(fUser); + lblUser.setHorizontalAlignment(SwingConstants.RIGHT); + + lblOldPassword = new CLabel(Msg.getMsg(Env.getCtx(), "Old Password")); + lblOldPassword.setRequestFocusEnabled(false); + lblOldPassword.setLabelFor(txtOldPassword); + lblOldPassword.setHorizontalAlignment(SwingConstants.RIGHT); + + lblNewPassword = new CLabel(Msg.getMsg(Env.getCtx(), "New Password")); + lblNewPassword.setRequestFocusEnabled(false); + lblNewPassword.setLabelFor(txtNewPassword); + lblNewPassword.setHorizontalAlignment(SwingConstants.RIGHT); + + lblRetypeNewPassword = new CLabel(Msg.getMsg(Env.getCtx(), "New Password Confirm")); + lblRetypeNewPassword.setRequestFocusEnabled(false); + lblRetypeNewPassword.setLabelFor(txtRetypeNewPassword); + lblRetypeNewPassword.setHorizontalAlignment(SwingConstants.RIGHT); + + lblNewEMail = new CLabel(Msg.getMsg(Env.getCtx(), "New EMail")); + lblNewEMail.setRequestFocusEnabled(false); + lblNewEMail.setLabelFor(txtNewEMail); + lblNewEMail.setHorizontalAlignment(SwingConstants.RIGHT); + + lblRetypeNewEMail = new CLabel(Msg.getMsg(Env.getCtx(), "New EMail Confirm")); + lblRetypeNewEMail.setRequestFocusEnabled(false); + lblRetypeNewEMail.setLabelFor(txtRetypeNewEMail); + lblRetypeNewEMail.setHorizontalAlignment(SwingConstants.RIGHT); + + lblNewEMailUser = new CLabel(Msg.getMsg(Env.getCtx(), "New EMail User")); + lblNewEMailUser.setRequestFocusEnabled(false); + lblNewEMailUser.setLabelFor(txtNewEMailUser); + lblNewEMailUser.setHorizontalAlignment(SwingConstants.RIGHT); + + lblNewEMailUserPW = new CLabel(Msg.getMsg(Env.getCtx(), "New EMail User Password")); + lblNewEMailUserPW.setRequestFocusEnabled(false); + lblNewEMailUserPW.setLabelFor(txtNewEMailUserPW); + lblNewEMailUserPW.setHorizontalAlignment(SwingConstants.RIGHT); + + confirmPanel = new ConfirmPanel(); + } + + @Override + public void vetoableChange(PropertyChangeEvent e) throws PropertyVetoException + { + log.info(e.getPropertyName() + "=" + e.getNewValue()); + if (e.getPropertyName().equals("AD_User_ID")) + fUser.setValue(e.getNewValue()); + } + + @Override + public void actionPerformed(ActionEvent e) + { + if (e.getActionCommand().equals(ConfirmPanel.A_CANCEL)) + { + dispose(); + return; + } + else if (e.getActionCommand().equals(ConfirmPanel.A_OK)) + { + validateChangePassword(); + } + } + + private void validateChangePassword() + { + int p_AD_User_ID = -1; + if (fUser.getValue() != null) + p_AD_User_ID = Integer.parseInt(fUser.getValue().toString()); + if (p_AD_User_ID < 0) + { + ADialog.error(windowNo, frame, "UserMandatory"); + return; + } + + String p_OldPassword = new String(txtOldPassword.getPassword()); + String p_NewPassword = new String(txtNewPassword.getPassword()); + String p_NewPasswordConfirm = new String(txtRetypeNewPassword.getPassword()); + String p_NewEMail = txtNewEMail.getText(); + String p_NewEMailConfirm = txtRetypeNewEMail.getText(); + String p_NewEMailUser = txtNewEMailUser.getText(); + String p_NewEMailUserPW = txtNewEMailUserPW.getText(); + + MUser user = MUser.get(Env.getCtx(), p_AD_User_ID); + log.fine("User=" + user); + + // Do we need a password ? + if (Util.isEmpty(p_OldPassword)) // Password required + { + MUser operator = MUser.get(Env.getCtx(), Env.getAD_User_ID(Env.getCtx())); + log.fine("Operator=" + operator); + + if (p_AD_User_ID == 0 // change of System + || p_AD_User_ID == 100 // change of SuperUser + || !operator.isAdministrator()) + { + ADialog.error(windowNo, frame, "OldPasswordMandatory"); + return; + } + } else { + // is entered Password correct ? + boolean hash_password = MSysConfig.getBooleanValue(MSysConfig.USER_PASSWORD_HASH, false); + if (hash_password) { + if (!user.authenticateHash(p_OldPassword)) + { + ADialog.error(windowNo, frame, "OldPasswordNoMatch"); + return; + } + } else { + if (!p_OldPassword.equals(user.getPassword())) + { + ADialog.error(windowNo, frame, "OldPasswordNoMatch"); + return; + } + } + } + + // new password confirm +// if (!Util.isEmpty(p_NewPassword)) { + if (Util.isEmpty(p_NewPasswordConfirm)) { + ADialog.error(windowNo, frame, "NewPasswordConfirmMandatory"); + return; + } else { + if (!p_NewPassword.equals(p_NewPasswordConfirm)) { + ADialog.error(windowNo, frame, "PasswordNotMatch"); + return; + } + } +// } + + if (!Util.isEmpty(p_NewEMailUserPW)) { + if (Util.isEmpty(p_NewEMailConfirm)) { + ADialog.error(windowNo, frame, "NewEmailConfirmMandatory"); + return; + } else { + if (!p_NewEMailUserPW.equals(p_NewEMailConfirm)) { + ADialog.error(windowNo, frame, "NewEmailNotMatch"); + return; + } + } + } + + if (!Util.isEmpty(p_NewPassword)) + user.set_ValueOfColumn("Password", p_NewPassword); // will be hashed and validate on saveEx + if (!Util.isEmpty(p_NewEMail)) + user.setEMail(p_NewEMail); + if (!Util.isEmpty(p_NewEMailUser)) + user.setEMailUser(p_NewEMailUser); + if (!Util.isEmpty(p_NewEMailUserPW)) + user.setEMailUserPW(p_NewEMailUserPW); + + user.saveEx(); + clearForm(); + ADialog.info(windowNo, frame, "RecordSaved"); + return; + } + + private void clearForm() + { + fUser.setValue(null); + txtOldPassword.setText(null); + txtNewPassword.setText(null); + txtRetypeNewPassword.setText(null); + txtNewEMail.setText(null); + txtRetypeNewEMail.setText(null); + txtNewEMailUser.setText(null); + txtNewEMailUserPW.setText(null); + } + + @Override + public void dispose() + { + if (frame != null) + frame.dispose(); + frame = null; + } +} \ No newline at end of file diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/form/WResetPassword.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/form/WResetPassword.java new file mode 100644 index 0000000000..e8cf4ae6ac --- /dev/null +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/form/WResetPassword.java @@ -0,0 +1,352 @@ +/****************************************************************************** + * Copyright (C) 2012 Elaine Tan * + * Copyright (C) 2012 Trek Global + * This program is free software; you can redistribute it and/or modify it * + * under the terms version 2 of the GNU General Public License as published * + * by the Free Software Foundation. This program is distributed in the hope * + * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied * + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * + * See the GNU General Public License for more details. * + * You should have received a copy of the GNU General Public License along * + * with this program; if not, write to the Free Software Foundation, Inc., * + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. * + *****************************************************************************/ + +package org.adempiere.webui.apps.form; + +import java.util.logging.Level; + +import org.adempiere.webui.AdempiereIdGenerator; +import org.adempiere.webui.component.Column; +import org.adempiere.webui.component.ConfirmPanel; +import org.adempiere.webui.component.Grid; +import org.adempiere.webui.component.GridFactory; +import org.adempiere.webui.component.Label; +import org.adempiere.webui.component.Row; +import org.adempiere.webui.component.Rows; +import org.adempiere.webui.component.Textbox; +import org.adempiere.webui.editor.WSearchEditor; +import org.adempiere.webui.event.ValueChangeEvent; +import org.adempiere.webui.event.ValueChangeListener; +import org.adempiere.webui.panel.ADForm; +import org.adempiere.webui.panel.CustomForm; +import org.adempiere.webui.panel.IFormController; +import org.adempiere.webui.session.SessionManager; +import org.adempiere.webui.window.FDialog; +import org.compiere.model.MLookup; +import org.compiere.model.MLookupFactory; +import org.compiere.model.MSysConfig; +import org.compiere.model.MUser; +import org.compiere.util.CLogger; +import org.compiere.util.DisplayType; +import org.compiere.util.Env; +import org.compiere.util.Msg; +import org.compiere.util.Util; +import org.zkoss.zk.ui.event.Event; +import org.zkoss.zk.ui.event.EventListener; +import org.zkoss.zul.Borderlayout; +import org.zkoss.zul.Center; +import org.zkoss.zul.Columns; +import org.zkoss.zul.South; + +/** + * Reset Password Form + * @author Elaine + * @date September 18, 2012 + */ +public class WResetPassword implements IFormController, EventListener, ValueChangeListener { + + private static CLogger log = CLogger.getCLogger(WResetPassword.class); + + private CustomForm form; + private Grid gridPanel; + private ConfirmPanel confirmPanel; + + private Label lblUser; + private Label lblOldPassword; + private Label lblNewPassword; + private Label lblRetypeNewPassword; + private Label lblNewEMail; + private Label lblRetypeNewEMail; + private Label lblNewEMailUser; + private Label lblNewEMailUserPW; + + private WSearchEditor fUser; + private Textbox txtOldPassword; + private Textbox txtNewPassword; + private Textbox txtRetypeNewPassword; + private Textbox txtNewEMail; + private Textbox txtRetypeNewEMail; + private Textbox txtNewEMailUser; + private Textbox txtNewEMailUserPW; + + public WResetPassword() + { + form = new CustomForm(); + + try + { + dynInit(); + zkInit(); + + Borderlayout contentPane = new Borderlayout(); + form.appendChild(contentPane); + contentPane.setWidth("99%"); + contentPane.setHeight("100%"); + Center center = new Center(); + center.setStyle("border: none"); + contentPane.appendChild(center); + center.appendChild(gridPanel); + center.setFlex(true); + South south = new South(); + south.setStyle("border: none"); + contentPane.appendChild(south); + south.appendChild(confirmPanel); + confirmPanel.addActionListener(this); + } + catch(Exception ex) + { + log.log(Level.SEVERE, "init", ex); + } + } + + private void dynInit() throws Exception + { + lblUser = new Label(Msg.translate(Env.getCtx(), "AD_User_ID")); + lblOldPassword = new Label(Msg.getMsg(Env.getCtx(), "Old Password")); + lblNewPassword = new Label(Msg.getMsg(Env.getCtx(), "New Password")); + lblRetypeNewPassword = new Label(Msg.getMsg(Env.getCtx(), "New Password Confirm")); + lblNewEMail = new Label(Msg.getMsg(Env.getCtx(), "New EMail")); + lblRetypeNewEMail = new Label(Msg.getMsg(Env.getCtx(), "New EMail Confirm")); + lblNewEMailUser = new Label(Msg.getMsg(Env.getCtx(), "New EMail User")); + lblNewEMailUserPW = new Label(Msg.getMsg(Env.getCtx(), "New EMail User Password")); + + // AD_User.AD_User_ID + MLookup userLkp = MLookupFactory.get(Env.getCtx(), form.getWindowNo(), 0, 212, DisplayType.Search); + fUser = new WSearchEditor("AD_User_ID", false, false, true, userLkp); + fUser.getComponent().setWidth("220px"); + + txtOldPassword = new Textbox(); + txtOldPassword.setId("txtOldPassword"); + txtOldPassword.setType("password"); + txtOldPassword.setAttribute(AdempiereIdGenerator.ZK_COMPONENT_PREFIX_ATTRIBUTE, "unq" + txtOldPassword.getId()); + txtOldPassword.setCols(25); + txtOldPassword.setWidth("220px"); + + txtNewPassword = new Textbox(); + txtNewPassword.setId("txtNewPassword"); + txtNewPassword.setType("password"); + txtNewPassword.setAttribute(AdempiereIdGenerator.ZK_COMPONENT_PREFIX_ATTRIBUTE, "unq" + txtNewPassword.getId()); + txtNewPassword.setCols(25); + txtNewPassword.setWidth("220px"); + + txtRetypeNewPassword = new Textbox(); + txtRetypeNewPassword.setId("txtRetypeNewPassword"); + txtRetypeNewPassword.setType("password"); + txtRetypeNewPassword.setAttribute(AdempiereIdGenerator.ZK_COMPONENT_PREFIX_ATTRIBUTE, "unq" + txtNewPassword.getId()); + txtRetypeNewPassword.setCols(25); + txtRetypeNewPassword.setWidth("220px"); + + txtNewEMail = new Textbox(); + txtNewEMail.setId("txtNewEMail"); + txtNewEMail.setAttribute(AdempiereIdGenerator.ZK_COMPONENT_PREFIX_ATTRIBUTE, "unq" + txtNewEMail.getId()); + txtNewEMail.setCols(25); + txtNewEMail.setWidth("220px"); + + txtRetypeNewEMail = new Textbox(); + txtRetypeNewEMail.setId("txtRetypeNewEMail"); + txtRetypeNewEMail.setAttribute(AdempiereIdGenerator.ZK_COMPONENT_PREFIX_ATTRIBUTE, "unq" + txtRetypeNewEMail.getId()); + txtRetypeNewEMail.setCols(25); + txtRetypeNewEMail.setWidth("220px"); + + txtNewEMailUser = new Textbox(); + txtNewEMailUser.setId("txtNewEMailUser"); + txtNewEMailUser.setAttribute(AdempiereIdGenerator.ZK_COMPONENT_PREFIX_ATTRIBUTE, "unq" + txtNewEMailUser.getId()); + txtNewEMailUser.setCols(25); + txtNewEMailUser.setWidth("220px"); + + txtNewEMailUserPW = new Textbox(); + txtNewEMailUserPW.setId("txtNewEMailUserPW"); + txtNewEMailUserPW.setAttribute(AdempiereIdGenerator.ZK_COMPONENT_PREFIX_ATTRIBUTE, "unq" + txtNewEMailUserPW.getId()); + txtNewEMailUserPW.setCols(25); + txtNewEMailUserPW.setWidth("220px"); + + confirmPanel = new ConfirmPanel(true); + } + + private void zkInit() throws Exception + { + gridPanel = GridFactory.newGridLayout(); + + Columns columns = new Columns(); + gridPanel.appendChild(columns); + + Column column = new Column(); + columns.appendChild(column); + column.setWidth("40%"); + + column = new Column(); + columns.appendChild(column); + column.setWidth("60%"); + + Rows rows = new Rows(); + gridPanel.appendChild(rows); + + Row row = new Row(); + rows.appendChild(row); + row.appendChild(lblUser.rightAlign()); + row.appendChild(fUser.getComponent()); + fUser.addValueChangeListener(this); + + row = new Row(); + rows.appendChild(row); + row.appendChild(lblOldPassword.rightAlign()); + row.appendChild(txtOldPassword); + + row = new Row(); + rows.appendChild(row); + row.appendChild(lblNewPassword.rightAlign()); + row.appendChild(txtNewPassword); + + row = new Row(); + rows.appendChild(row); + row.appendChild(lblRetypeNewPassword.rightAlign()); + row.appendChild(txtRetypeNewPassword); + + row = new Row(); + rows.appendChild(row); + row.appendChild(lblNewEMail.rightAlign()); + row.appendChild(txtNewEMail); + + row = new Row(); + rows.appendChild(row); + row.appendChild(lblRetypeNewEMail.rightAlign()); + row.appendChild(txtRetypeNewEMail); + + row = new Row(); + rows.appendChild(row); + row.appendChild(lblNewEMailUser.rightAlign()); + row.appendChild(txtNewEMailUser); + + row = new Row(); + rows.appendChild(row); + row.appendChild(lblNewEMailUserPW.rightAlign()); + row.appendChild(txtNewEMailUserPW); + } + + @Override + public void valueChange(ValueChangeEvent e) { + log.info(e.getPropertyName() + "=" + e.getNewValue()); + if (e.getPropertyName().equals("AD_User_ID")) + fUser.setValue(e.getNewValue()); + } + + @Override + public void onEvent(Event e) throws Exception + { + if (e.getTarget().getId().equals(ConfirmPanel.A_CANCEL)) + { + SessionManager.getAppDesktop().closeActiveWindow(); + return; + } + else if (e.getTarget().getId().equals(ConfirmPanel.A_OK)) + { + validateChangePassword(); + } + } + + private void validateChangePassword() + { + int p_AD_User_ID = -1; + if (fUser.getValue() != null) + p_AD_User_ID = Integer.parseInt(fUser.getValue().toString()); + if (p_AD_User_ID < 0) + throw new IllegalArgumentException(Msg.getMsg(Env.getCtx(), "UserMandatory")); + + String p_OldPassword = txtOldPassword.getValue(); + String p_NewPassword = txtNewPassword.getValue(); + String p_NewPasswordConfirm = txtRetypeNewPassword.getValue(); + String p_NewEMail = txtNewEMail.getValue(); + String p_NewEMailConfirm = txtRetypeNewEMail.getValue(); + String p_NewEMailUser = txtNewEMailUser.getValue(); + String p_NewEMailUserPW = txtNewEMailUserPW.getValue(); + + MUser user = MUser.get(Env.getCtx(), p_AD_User_ID); + log.fine("User=" + user); + + // Do we need a password ? + if (Util.isEmpty(p_OldPassword)) // Password required + { + MUser operator = MUser.get(Env.getCtx(), Env.getAD_User_ID(Env.getCtx())); + log.fine("Operator=" + operator); + + if (p_AD_User_ID == 0 // change of System + || p_AD_User_ID == 100 // change of SuperUser + || !operator.isAdministrator()) + throw new IllegalArgumentException(Msg.getMsg(Env.getCtx(), "OldPasswordMandatory")); + } else { + // is entered Password correct ? + boolean hash_password = MSysConfig.getBooleanValue(MSysConfig.USER_PASSWORD_HASH, false); + if (hash_password) { + if (!user.authenticateHash(p_OldPassword)) + throw new IllegalArgumentException(Msg.getMsg(Env.getCtx(), "OldPasswordNoMatch")); + } else { + if (!p_OldPassword.equals(user.getPassword())) + throw new IllegalArgumentException(Msg.getMsg(Env.getCtx(), "OldPasswordNoMatch")); + } + } + + // new password confirm +// if (!Util.isEmpty(p_NewPassword)) { + if (Util.isEmpty(p_NewPasswordConfirm)) { + throw new IllegalArgumentException(Msg.getMsg(Env.getCtx(), "NewPasswordConfirmMandatory")); + } else { + if (!p_NewPassword.equals(p_NewPasswordConfirm)) { + throw new IllegalArgumentException(Msg.getMsg(Env.getCtx(), "PasswordNotMatch")); + } + } +// } + + if (!Util.isEmpty(p_NewEMailUserPW)) { + if (Util.isEmpty(p_NewEMailConfirm)) { + throw new IllegalArgumentException(Msg.getMsg(Env.getCtx(), "NewEmailConfirmMandatory")); + } else { + if (!p_NewEMailUserPW.equals(p_NewEMailConfirm)) { + throw new IllegalArgumentException(Msg.getMsg(Env.getCtx(), "NewEmailNotMatch")); + } + } + } + + if (!Util.isEmpty(p_NewPassword)) + user.set_ValueOfColumn("Password", p_NewPassword); // will be hashed and validate on saveEx + if (!Util.isEmpty(p_NewEMail)) + user.setEMail(p_NewEMail); + if (!Util.isEmpty(p_NewEMailUser)) + user.setEMailUser(p_NewEMailUser); + if (!Util.isEmpty(p_NewEMailUserPW)) + user.setEMailUserPW(p_NewEMailUserPW); + + user.saveEx(); + clearForm(); + FDialog.info(form.getWindowNo(), form, "RecordSaved"); + return; + } + + private void clearForm() + { + fUser.setValue(null); + txtOldPassword.setValue(null); + txtNewPassword.setValue(null); + txtRetypeNewPassword.setValue(null); + txtNewEMail.setValue(null); + txtRetypeNewEMail.setValue(null); + txtNewEMailUser.setValue(null); + txtNewEMailUserPW.setValue(null); + } + + @Override + public ADForm getForm() + { + return form; + } +} diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/AbstractMenuPanel.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/AbstractMenuPanel.java index 2201f19497..0743057c05 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/AbstractMenuPanel.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/AbstractMenuPanel.java @@ -221,6 +221,11 @@ public abstract class AbstractMenuPanel extends Panel implements EventListener