IDEMPIERE-1606 initial client testing > email improvements

This commit is contained in:
hieplq 2014-02-26 10:07:07 -05:00
parent aea4e1017a
commit fbdb0e0efe
4 changed files with 86 additions and 22 deletions

View File

@ -0,0 +1,14 @@
SET SQLBLANKLINES ON
SET DEFINE OFF
-- Feb 11, 2014 2:29:31 AM ICT
-- IDEMPIERE-1606:initial client testing > email improvements
INSERT INTO AD_Process_Para (IsRange,AD_Process_Para_ID,AD_Process_Para_UU,AD_Reference_ID,IsMandatory,EntityType,Name,ColumnName,FieldLength,IsCentrallyMaintained,SeqNo,DefaultValue,IsActive,UpdatedBy,Updated,CreatedBy,Created,AD_Org_ID,IsEncrypted,AD_Client_ID,AD_Process_ID) VALUES ('N',200074,'a9304d73-8f35-487a-a020-fd24c98bb9db',10,'N','D','Administrative User Email','AdminUserEmail',60,'N',45,NULL,'Y',100,TO_DATE('2014-02-11 02:29:30','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2014-02-11 02:29:30','YYYY-MM-DD HH24:MI:SS'),0,'N',0,53161)
;
-- Feb 11, 2014 2:32:28 AM ICT
INSERT INTO AD_Process_Para (IsRange,AD_Process_Para_ID,AD_Process_Para_UU,AD_Reference_ID,IsMandatory,EntityType,Name,ColumnName,FieldLength,IsCentrallyMaintained,SeqNo,DefaultValue,IsActive,UpdatedBy,Updated,CreatedBy,Created,AD_Org_ID,IsEncrypted,AD_Client_ID,AD_Process_ID) VALUES ('N',200075,'422bd18a-9354-4bb6-9fcd-9c7be9985f9a',10,'N','D','Normal User Email','NormalUserEmail',60,'N',55,NULL,'Y',100,TO_DATE('2014-02-11 02:32:28','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2014-02-11 02:32:28','YYYY-MM-DD HH24:MI:SS'),0,'N',0,53161)
;
SELECT register_migration_script('201402111604-IDEMPIERE-1606.sql') FROM dual
;

View File

@ -0,0 +1,11 @@
-- Feb 11, 2014 2:29:31 AM ICT
-- IDEMPIERE-1606:initial client testing > email improvements
INSERT INTO AD_Process_Para (IsRange,AD_Process_Para_ID,AD_Process_Para_UU,AD_Reference_ID,IsMandatory,EntityType,Name,ColumnName,FieldLength,IsCentrallyMaintained,SeqNo,DefaultValue,IsActive,UpdatedBy,Updated,CreatedBy,Created,AD_Org_ID,IsEncrypted,AD_Client_ID,AD_Process_ID) VALUES ('N',200074,'a9304d73-8f35-487a-a020-fd24c98bb9db',10,'N','D','Administrative User Email','AdminUserEmail',60,'N',45,NULL,'Y',100,TO_TIMESTAMP('2014-02-11 02:29:30','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2014-02-11 02:29:30','YYYY-MM-DD HH24:MI:SS'),0,'N',0,53161)
;
-- Feb 11, 2014 2:32:28 AM ICT
INSERT INTO AD_Process_Para (IsRange,AD_Process_Para_ID,AD_Process_Para_UU,AD_Reference_ID,IsMandatory,EntityType,Name,ColumnName,FieldLength,IsCentrallyMaintained,SeqNo,DefaultValue,IsActive,UpdatedBy,Updated,CreatedBy,Created,AD_Org_ID,IsEncrypted,AD_Client_ID,AD_Process_ID) VALUES ('N',200075,'422bd18a-9354-4bb6-9fcd-9c7be9985f9a',10,'N','D','Normal User Email','NormalUserEmail',60,'N',55,NULL,'Y',100,TO_TIMESTAMP('2014-02-11 02:32:28','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2014-02-11 02:32:28','YYYY-MM-DD HH24:MI:SS'),0,'N',0,53161)
;
SELECT register_migration_script('201402111604-IDEMPIERE-1606.sql') FROM dual
;

View File

@ -36,12 +36,15 @@ import org.adempiere.exceptions.AdempiereException;
import org.compiere.model.MCity;
import org.compiere.model.MCurrency;
import org.compiere.model.MSetup;
import org.compiere.model.MSysConfig;
import org.compiere.print.PrintUtil;
import org.compiere.process.ProcessInfoParameter;
import org.compiere.process.SvrProcess;
import org.compiere.util.DB;
import org.compiere.util.EMail;
import org.compiere.util.Env;
import org.compiere.util.KeyNamePair;
import org.compiere.util.Util;
/**
* Process to create a new client (tenant)
@ -76,6 +79,8 @@ public class InitialClientSetup extends SvrProcess
private boolean p_IsUseCampaignDimension = false;
private boolean p_IsUseSalesRegionDimension = false;
private String p_CoAFile = null;
private String p_AdminUserEmail = null;
private String p_NormalUserEmail = null;
/** WindowNo for this process */
public static final int WINDOW_THIS_PROCESS = 9999;
@ -137,6 +142,10 @@ public class InitialClientSetup extends SvrProcess
p_EMail = (String) para[i].getParameter();
else if (name.equals("TaxID"))
p_TaxID = (String) para[i].getParameter();
else if (name.equals("AdminUserEmail"))
p_AdminUserEmail = (String) para[i].getParameter();
else if (name.equals("NormalUserEmail"))
p_NormalUserEmail = (String) para[i].getParameter();
else
log.log(Level.SEVERE, "Unknown Parameter: " + name);
}
@ -205,6 +214,17 @@ public class InitialClientSetup extends SvrProcess
}
// Validate existence and read permissions on CoA file
boolean email_login = MSysConfig.getBooleanValue(MSysConfig.USE_EMAIL_FOR_LOGIN, false);
if (email_login) {
if (Util.isEmpty(p_AdminUserEmail))
throw new AdempiereException("AdminUserEmail is required");
if (! EMail.validate(p_AdminUserEmail))
throw new AdempiereException("AdminUserEmail " + p_AdminUserEmail + " is incorrect");
if (Util.isEmpty(p_NormalUserEmail))
throw new AdempiereException("NormalUserEmail is required");
if (! EMail.validate(p_NormalUserEmail))
throw new AdempiereException("NormalUserEmail " + p_NormalUserEmail + " is incorrect");
}
File coaFile = new File(p_CoAFile);
if (!coaFile.exists())
throw new AdempiereException("CoaFile " + p_CoAFile + " does not exist");
@ -219,7 +239,7 @@ public class InitialClientSetup extends SvrProcess
MSetup ms = new MSetup(Env.getCtx(), WINDOW_THIS_PROCESS);
if (! ms.createClient(p_ClientName, p_OrgValue, p_OrgName, p_AdminUserName, p_NormalUserName
, p_Phone, p_Phone2, p_Fax, p_EMail, p_TaxID)) {
, p_Phone, p_Phone2, p_Fax, p_EMail, p_TaxID, p_AdminUserEmail, p_NormalUserEmail)) {
ms.rollback();
throw new AdempiereException("Create client failed");
}

View File

@ -27,6 +27,7 @@ import java.sql.SQLException;
import java.util.Properties;
import java.util.logging.Level;
import org.adempiere.exceptions.AdempiereException;
import org.adempiere.util.ProcessUtil;
import org.compiere.process.ProcessInfo;
import org.compiere.process.ProcessInfoParameter;
@ -108,7 +109,8 @@ public final class MSetup
* @return true if created
*/
public boolean createClient (String clientName, String orgValue, String orgName,
String userClient, String userOrg, String phone, String phone2, String fax, String eMail, String taxID)
String userClient, String userOrg, String phone, String phone2, String fax, String eMail, String taxID,
String adminEmail, String userEmail)
{
log.info(clientName);
m_trx.start();
@ -276,19 +278,22 @@ public final class MSetup
* - Client
* - Org
*/
MUser clientAdminUser = new MUser(m_ctx, 0, m_trx.getTrxName());
name = userClient;
if (name == null || name.length() == 0)
name = m_clientName + "Client";
AD_User_ID = getNextID(AD_Client_ID, "AD_User");
AD_User_Name = name;
name = DB.TO_STRING(name);
sql = "INSERT INTO AD_User(" + m_stdColumns + ",AD_User_ID,"
+ "Name,Description,Password)"
+ " VALUES (" + m_stdValues + "," + AD_User_ID + ","
+ name + "," + name + "," + name + ")";
no = DB.executeUpdate(sql, m_trx.getTrxName());
if (no != 1)
{
clientAdminUser.setPassword(name);
clientAdminUser.setDescription(name);
clientAdminUser.setName(name);
clientAdminUser.setAD_Client_ID(AD_Client_ID);
clientAdminUser.setAD_Org_ID(0);
clientAdminUser.setEMail(adminEmail);
try {
clientAdminUser.saveEx();
} catch (AdempiereException ex) {
String err = "Admin User NOT inserted - " + AD_User_Name;
log.log(Level.SEVERE, err);
m_info.append(err);
@ -296,22 +301,33 @@ public final class MSetup
m_trx.close();
return false;
}
AD_User_ID = clientAdminUser.getAD_User_ID();
AD_User_Name = name;
// Info
m_info.append(Msg.translate(m_lang, "AD_User_ID")).append("=").append(AD_User_Name).append("/").append(AD_User_Name).append("\n");
MUser clientUser = new MUser(m_ctx, 0, m_trx.getTrxName());
name = userClient;
if (name == null || name.length() == 0)
name = m_clientName + "Client";
name = userOrg;
if (name == null || name.length() == 0)
name = m_clientName + "Org";
AD_User_U_ID = getNextID(AD_Client_ID, "AD_User");
AD_User_U_Name = name;
name = DB.TO_STRING(name);
sql = "INSERT INTO AD_User(" + m_stdColumns + ",AD_User_ID,"
+ "Name,Description,Password)"
+ " VALUES (" + m_stdValues + "," + AD_User_U_ID + ","
+ name + "," + name + "," + name + ")";
no = DB.executeUpdate(sql, m_trx.getTrxName());
if (no != 1)
{
clientUser.setPassword(name);
clientUser.setDescription(name);
clientUser.setName(name);
clientUser.setAD_Client_ID(AD_Client_ID);
clientUser.setAD_Org_ID(0);
clientUser.setEMail(userEmail);
try {
clientUser.saveEx();
} catch (AdempiereException ex) {
String err = "Org User NOT inserted - " + AD_User_U_Name;
log.log(Level.SEVERE, err);
m_info.append(err);
@ -319,6 +335,9 @@ public final class MSetup
m_trx.close();
return false;
}
AD_User_U_ID = clientUser.getAD_User_ID();
AD_User_U_Name = name;
// Info
m_info.append(Msg.translate(m_lang, "AD_User_ID")).append("=").append(AD_User_U_Name).append("/").append(AD_User_U_Name).append("\n");