IDEMPIERE-722 Make email credentials configuration more flexible
This commit is contained in:
parent
cbd06adec1
commit
652d86479d
|
@ -0,0 +1,7 @@
|
|||
-- Mar 11, 2013 5:56:17 PM COT
|
||||
INSERT INTO AD_SysConfig (AD_SysConfig_ID,EntityType,ConfigurationLevel,Value,Description,AD_SysConfig_UU,Created,Updated,AD_Client_ID,AD_Org_ID,CreatedBy,IsActive,UpdatedBy,Name) VALUES (200027,'D','C','U','From where to get the outgoing credentials for email (U : User / C : Client / S : System)','8a4f70c3-b361-431a-9357-809b9f01abc4',TO_DATE('2013-03-11 17:56:16','YYYY-MM-DD HH24:MI:SS'),TO_DATE('2013-03-11 17:56:16','YYYY-MM-DD HH24:MI:SS'),0,0,100,'Y',100,'MAIL_SEND_CREDENTIALS')
|
||||
;
|
||||
|
||||
SELECT register_migration_script('201304231000_IDEMPIERE-722.sql') FROM dual
|
||||
;
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
-- Mar 11, 2013 5:56:17 PM COT
|
||||
INSERT INTO AD_SysConfig (AD_SysConfig_ID,EntityType,ConfigurationLevel,Value,Description,AD_SysConfig_UU,Created,Updated,AD_Client_ID,AD_Org_ID,CreatedBy,IsActive,UpdatedBy,Name) VALUES (200027,'D','C','U','From where to get the outgoing credentials for email (U : User / C : Client / S : System)','8a4f70c3-b361-431a-9357-809b9f01abc4',TO_DATE('2013-03-11 17:56:16','YYYY-MM-DD HH24:MI:SS'),TO_TIMESTAMP('2013-03-11 17:56:16','YYYY-MM-DD HH24:MI:SS'),0,0,100,'Y',100,'MAIL_SEND_CREDENTIALS')
|
||||
;
|
||||
|
||||
SELECT register_migration_script('201304231000_IDEMPIERE-722.sql') FROM dual
|
||||
;
|
||||
|
|
@ -17,6 +17,9 @@
|
|||
*****************************************************************************/
|
||||
package org.compiere.model;
|
||||
|
||||
import static org.compiere.model.MSysConfig.CLIENT_ACCOUNTING;
|
||||
import static org.compiere.model.MSysConfig.MAIL_SEND_CREDENTIALS;
|
||||
|
||||
import java.io.File;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
|
@ -56,7 +59,7 @@ public class MClient extends X_AD_Client
|
|||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = -1242880454287104705L;
|
||||
private static final long serialVersionUID = 3043792947325698506L;
|
||||
|
||||
/**
|
||||
* Get client
|
||||
|
@ -182,18 +185,6 @@ public class MClient extends X_AD_Client
|
|||
/** Client Info Setup Tree for Account */
|
||||
private int m_AD_Tree_Account_ID;
|
||||
|
||||
/**
|
||||
* Get SMTP Host
|
||||
* @return SMTP or loaclhost
|
||||
*/
|
||||
public String getSMTPHost()
|
||||
{
|
||||
String s = super.getSMTPHost();
|
||||
if (s == null)
|
||||
s = "localhost";
|
||||
return s;
|
||||
} // getSMTPHost
|
||||
|
||||
/**
|
||||
* Get Client Info
|
||||
* @return Client Info
|
||||
|
@ -459,9 +450,9 @@ public class MClient extends X_AD_Client
|
|||
return msgreturn.toString();
|
||||
}
|
||||
//
|
||||
StringBuilder msgce = new StringBuilder("Adempiere EMail Test: ").append(toString());
|
||||
StringBuilder msgce = new StringBuilder("iDempiere EMail Test: ").append(toString());
|
||||
EMail email = createEMail (getRequestEMail(),
|
||||
"Adempiere EMail Test",msgce.toString());
|
||||
"iDempiere EMail Test",msgce.toString());
|
||||
if (email == null){
|
||||
StringBuilder msgreturn = new StringBuilder("Could not create EMail: ").append(getName());
|
||||
return msgreturn.toString();
|
||||
|
@ -852,7 +843,7 @@ public class MClient extends X_AD_Client
|
|||
{
|
||||
log.warning("From EMail incomplete: " + from + " (" + getName() + ")");
|
||||
return null;
|
||||
}
|
||||
}
|
||||
//
|
||||
EMail email = new EMail (this,
|
||||
from.getEMail(),
|
||||
|
@ -861,6 +852,9 @@ public class MClient extends X_AD_Client
|
|||
message, html);
|
||||
if (isSmtpAuthorization())
|
||||
email.createAuthenticator (from.getEMailUser(), from.getEMailUserPW());
|
||||
if (from.getEMail() != null && ! from.getEMail().equalsIgnoreCase(from.getEMailUser())) {
|
||||
email.setReplyTo(from.getEMail());
|
||||
}
|
||||
return email;
|
||||
} // createEMail
|
||||
|
||||
|
@ -878,21 +872,21 @@ public class MClient extends X_AD_Client
|
|||
private static final String CLIENT_ACCOUNTING_IMMEDIATE = "I";
|
||||
|
||||
public static boolean isClientAccounting() {
|
||||
String ca = MSysConfig.getValue(MSysConfig.CLIENT_ACCOUNTING,
|
||||
String ca = MSysConfig.getValue(CLIENT_ACCOUNTING,
|
||||
CLIENT_ACCOUNTING_QUEUE, // default
|
||||
Env.getAD_Client_ID(Env.getCtx()));
|
||||
return (ca.equalsIgnoreCase(CLIENT_ACCOUNTING_IMMEDIATE) || ca.equalsIgnoreCase(CLIENT_ACCOUNTING_QUEUE));
|
||||
}
|
||||
|
||||
public static boolean isClientAccountingQueue() {
|
||||
String ca = MSysConfig.getValue(MSysConfig.CLIENT_ACCOUNTING,
|
||||
String ca = MSysConfig.getValue(CLIENT_ACCOUNTING,
|
||||
CLIENT_ACCOUNTING_QUEUE, // default
|
||||
Env.getAD_Client_ID(Env.getCtx()));
|
||||
return ca.equalsIgnoreCase(CLIENT_ACCOUNTING_QUEUE);
|
||||
}
|
||||
|
||||
public static boolean isClientAccountingImmediate() {
|
||||
String ca = MSysConfig.getValue(MSysConfig.CLIENT_ACCOUNTING,
|
||||
String ca = MSysConfig.getValue(CLIENT_ACCOUNTING,
|
||||
CLIENT_ACCOUNTING_QUEUE, // default
|
||||
Env.getAD_Client_ID(Env.getCtx()));
|
||||
return ca.equalsIgnoreCase(CLIENT_ACCOUNTING_IMMEDIATE);
|
||||
|
@ -968,17 +962,91 @@ public class MClient extends X_AD_Client
|
|||
return (Collections.binarySearch(m_fieldAccess, aDFieldID) > 0);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected boolean beforeSave(boolean newRecord)
|
||||
{
|
||||
//gmail specific support
|
||||
if ("smtp.gmail.com".equals(getSMTPHost()))
|
||||
{
|
||||
if (getSMTPPort() == 0)
|
||||
setSMTPPort(587);
|
||||
public String getRequestUser() {
|
||||
// IDEMPIERE-722
|
||||
if (getAD_Client_ID() != 0 && isSendCredentialsSystem()) {
|
||||
MClient sysclient = MClient.get(getCtx(), 0);
|
||||
return sysclient.getRequestUser();
|
||||
}
|
||||
return true;
|
||||
return super.getRequestUser();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRequestUserPW() {
|
||||
// IDEMPIERE-722
|
||||
if (getAD_Client_ID() != 0 && isSendCredentialsSystem()) {
|
||||
MClient sysclient = MClient.get(getCtx(), 0);
|
||||
return sysclient.getRequestUserPW();
|
||||
}
|
||||
return super.getRequestUserPW();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSmtpAuthorization() {
|
||||
// IDEMPIERE-722
|
||||
if (getAD_Client_ID() != 0 && isSendCredentialsSystem()) {
|
||||
MClient sysclient = MClient.get(getCtx(), 0);
|
||||
return sysclient.isSmtpAuthorization();
|
||||
}
|
||||
return super.isSmtpAuthorization();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSMTPPort() {
|
||||
// IDEMPIERE-722
|
||||
if (getAD_Client_ID() != 0 && isSendCredentialsSystem()) {
|
||||
MClient sysclient = MClient.get(getCtx(), 0);
|
||||
return sysclient.getSMTPPort();
|
||||
}
|
||||
return super.getSMTPPort();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSecureSMTP() {
|
||||
// IDEMPIERE-722
|
||||
if (getAD_Client_ID() != 0 && isSendCredentialsSystem()) {
|
||||
MClient sysclient = MClient.get(getCtx(), 0);
|
||||
return sysclient.isSecureSMTP();
|
||||
}
|
||||
return super.isSecureSMTP();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get SMTP Host
|
||||
* @return SMTP or loaclhost
|
||||
*/
|
||||
@Override
|
||||
public String getSMTPHost() {
|
||||
String s = null;
|
||||
if (getAD_Client_ID() != 0 && isSendCredentialsSystem()) {
|
||||
MClient sysclient = MClient.get(getCtx(), 0);
|
||||
s = sysclient.getSMTPHost();
|
||||
} else {
|
||||
s = super.getSMTPHost();
|
||||
}
|
||||
if (s == null)
|
||||
s = "localhost";
|
||||
return s;
|
||||
} // getSMTPHost
|
||||
|
||||
// IDEMPIERE-722
|
||||
private static final String MAIL_SEND_CREDENTIALS_USER = "U";
|
||||
private static final String MAIL_SEND_CREDENTIALS_CLIENT = "C";
|
||||
private static final String MAIL_SEND_CREDENTIALS_SYSTEM = "S";
|
||||
|
||||
public static boolean isSendCredentialsClient() {
|
||||
String msc = MSysConfig.getValue(MAIL_SEND_CREDENTIALS,
|
||||
MAIL_SEND_CREDENTIALS_USER, // default
|
||||
Env.getAD_Client_ID(Env.getCtx()));
|
||||
return (MAIL_SEND_CREDENTIALS_CLIENT.equalsIgnoreCase(msc));
|
||||
}
|
||||
|
||||
public static boolean isSendCredentialsSystem() {
|
||||
String msc = MSysConfig.getValue(MAIL_SEND_CREDENTIALS,
|
||||
MAIL_SEND_CREDENTIALS_USER, // default
|
||||
Env.getAD_Client_ID(Env.getCtx()));
|
||||
return (MAIL_SEND_CREDENTIALS_SYSTEM.equalsIgnoreCase(msc));
|
||||
}
|
||||
|
||||
} // MClient
|
||||
|
|
|
@ -42,7 +42,8 @@ public class MSysConfig extends X_AD_SysConfig
|
|||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 6995907727239458114L;
|
||||
private static final long serialVersionUID = -872111480299074889L;
|
||||
|
||||
public final static String PDF_FONT_DIR = "PDF_FONT_DIR";
|
||||
public final static String TWOPACK_HANDLE_TRANSLATIONS = "2PACK_HANDLE_TRANSLATIONS";
|
||||
public static final String ZK_DESKTOP_CLASS = "ZK_DESKTOP_CLASS";
|
||||
|
@ -109,6 +110,7 @@ public class MSysConfig extends X_AD_SysConfig
|
|||
public static final String SWING_OVERRIDE_TEXT_AREA_BEHAVIOUR = "SWING_OVERRIDE_TEXT_AREA_BEHAVIOUR";
|
||||
public static final String MAIL_SEND_BCC_TO_ADDRESS = "MAIL_SEND_BCC_TO_ADDRESS";
|
||||
public static final String MAIL_SEND_BCC_TO_FROM = "MAIL_SEND_BCC_TO_FROM";
|
||||
public static final String MAIL_SEND_CREDENTIALS = "MAIL_SEND_CREDENTIALS";
|
||||
public static final String REAL_TIME_POS = "REAL_TIME_POS";
|
||||
public static final String SHIPPING_DEFAULT_WEIGHT_PER_PACKAGE = "SHIPPING_DEFAULT_WEIGHT_PER_PACKAGE";
|
||||
public static final String SHIPPING_SAVE_REQUEST_RESPONSE_LOG = "SHIPPING_SAVE_REQUEST_RESPONSE_LOG";
|
||||
|
|
|
@ -56,7 +56,7 @@ public class MUser extends X_AD_User
|
|||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 239972951892250043L;
|
||||
private static final long serialVersionUID = -1916348077418252152L;
|
||||
|
||||
/**
|
||||
* Get active Users of BPartner
|
||||
|
@ -1026,4 +1026,33 @@ public class MUser extends X_AD_User
|
|||
// org.compiere.Adempiere.startupClient();
|
||||
// System.out.println ( MUser.get(Env.getCtx(), "SuperUser", "22") );
|
||||
} // main /* */
|
||||
|
||||
@Override
|
||||
public String getEMailUser() {
|
||||
// IDEMPIERE-722
|
||||
if (MClient.isSendCredentialsSystem()) {
|
||||
MClient sysclient = MClient.get(getCtx(), 0);
|
||||
return sysclient.getRequestUser();
|
||||
} else if (MClient.isSendCredentialsClient()) {
|
||||
MClient client = MClient.get(getCtx());
|
||||
return client.getRequestUser();
|
||||
} else {
|
||||
return super.getEMailUser();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getEMailUserPW() {
|
||||
// IDEMPIERE-722
|
||||
if (MClient.isSendCredentialsSystem()) {
|
||||
MClient sysclient = MClient.get(getCtx(), 0);
|
||||
return sysclient.getRequestUserPW();
|
||||
} else if (MClient.isSendCredentialsClient()) {
|
||||
MClient client = MClient.get(getCtx());
|
||||
return client.getRequestUserPW();
|
||||
} else {
|
||||
return super.getEMailUserPW();
|
||||
}
|
||||
}
|
||||
|
||||
} // MUser
|
||||
|
|
|
@ -305,7 +305,7 @@ public final class EMail implements Serializable
|
|||
m_msg.setReplyTo(new Address[] {m_replyTo});
|
||||
//
|
||||
m_msg.setSentDate(new java.util.Date());
|
||||
m_msg.setHeader("Comments", "AdempiereMail");
|
||||
m_msg.setHeader("Comments", "iDempiereMail");
|
||||
// m_msg.setDescription("Description");
|
||||
// SMTP specifics
|
||||
m_msg.setAllow8bitMIME(true);
|
||||
|
|
Loading…
Reference in New Issue