Repository: usergrid Updated Branches: refs/heads/hotfix-2.0.0 [created] f61b5a130
USERGRID-771 Project: http://git-wip-us.apache.org/repos/asf/usergrid/repo Commit: http://git-wip-us.apache.org/repos/asf/usergrid/commit/d2fd9ba4 Tree: http://git-wip-us.apache.org/repos/asf/usergrid/tree/d2fd9ba4 Diff: http://git-wip-us.apache.org/repos/asf/usergrid/diff/d2fd9ba4 Branch: refs/heads/hotfix-2.0.0 Commit: d2fd9ba41e009e5c17226d11e205a77f1f7f9a53 Parents: 066d7db Author: Shawn Feldman <[email protected]> Authored: Wed Jul 22 12:06:26 2015 -0600 Committer: Shawn Feldman <[email protected]> Committed: Wed Jul 22 16:04:45 2015 -0600 ---------------------------------------------------------------------- .../usergrid/rest/management/AdminUsersIT.java | 8 ++-- .../rest/management/RegistrationIT.java | 8 ++-- .../management/AccountCreationProps.java | 4 +- .../cassandra/ManagementServiceImpl.java | 44 +++++++++++++++++--- .../apache/usergrid/management/EmailFlowIT.java | 8 ++-- 5 files changed, 54 insertions(+), 18 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/usergrid/blob/d2fd9ba4/stack/rest/src/test/java/org/apache/usergrid/rest/management/AdminUsersIT.java ---------------------------------------------------------------------- diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/management/AdminUsersIT.java b/stack/rest/src/test/java/org/apache/usergrid/rest/management/AdminUsersIT.java index fffb28a..375bbd9 100644 --- a/stack/rest/src/test/java/org/apache/usergrid/rest/management/AdminUsersIT.java +++ b/stack/rest/src/test/java/org/apache/usergrid/rest/management/AdminUsersIT.java @@ -53,7 +53,7 @@ import com.sun.jersey.api.representation.Form; import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_ADMIN_USERS_REQUIRE_CONFIRMATION; import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_SYSADMIN_APPROVES_ADMIN_USERS; import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_SYSADMIN_APPROVES_ORGANIZATIONS; -import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_SYSADMIN_EMAIL; +import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_DEFAULT_SYSADMIN_EMAIL; import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_TEST_ACCOUNT_ADMIN_USER_EMAIL; import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_TEST_ACCOUNT_ADMIN_USER_PASSWORD; import static org.junit.Assert.assertEquals; @@ -215,7 +215,7 @@ public class AdminUsersIT extends AbstractRestIT { testPropertiesMap.put( PROPERTIES_SYSADMIN_APPROVES_ORGANIZATIONS, "false" ); //Requires admins to do email confirmation before they can log in. testPropertiesMap.put( PROPERTIES_ADMIN_USERS_REQUIRE_CONFIRMATION, "true" ); - testPropertiesMap.put( PROPERTIES_SYSADMIN_EMAIL, "[email protected]" ); + testPropertiesMap.put( PROPERTIES_DEFAULT_SYSADMIN_EMAIL, "[email protected]" ); Entity testPropertiesPayload = new Entity( testPropertiesMap ); @@ -647,7 +647,7 @@ public class AdminUsersIT extends AbstractRestIT { testPropertiesMap.put( PROPERTIES_SYSADMIN_APPROVES_ORGANIZATIONS, "false" ); //Requires admins to do email confirmation before they can log in. testPropertiesMap.put( PROPERTIES_ADMIN_USERS_REQUIRE_CONFIRMATION, "true" ); - testPropertiesMap.put( PROPERTIES_SYSADMIN_EMAIL, "[email protected]" ); + testPropertiesMap.put( PROPERTIES_DEFAULT_SYSADMIN_EMAIL, "[email protected]" ); Entity testPropertiesPayload = new Entity( testPropertiesMap ); @@ -659,7 +659,7 @@ public class AdminUsersIT extends AbstractRestIT { //Retrieve properties and ensure that they are set correctly. ApiResponse apiResponse = clientSetup.getRestClient().testPropertiesResource().get(); - assertEquals( "[email protected]", apiResponse.getProperties().get( PROPERTIES_SYSADMIN_EMAIL ) ); + assertEquals( "[email protected]", apiResponse.getProperties().get( PROPERTIES_DEFAULT_SYSADMIN_EMAIL ) ); assertEquals( "true", apiResponse.getProperties().get( PROPERTIES_ADMIN_USERS_REQUIRE_CONFIRMATION ) ); assertEquals( "false", apiResponse.getProperties().get( PROPERTIES_SYSADMIN_APPROVES_ORGANIZATIONS ) ); assertEquals( "false", apiResponse.getProperties().get( PROPERTIES_SYSADMIN_APPROVES_ADMIN_USERS ) ); http://git-wip-us.apache.org/repos/asf/usergrid/blob/d2fd9ba4/stack/rest/src/test/java/org/apache/usergrid/rest/management/RegistrationIT.java ---------------------------------------------------------------------- diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/management/RegistrationIT.java b/stack/rest/src/test/java/org/apache/usergrid/rest/management/RegistrationIT.java index 1e94a2d..387f2b8 100644 --- a/stack/rest/src/test/java/org/apache/usergrid/rest/management/RegistrationIT.java +++ b/stack/rest/src/test/java/org/apache/usergrid/rest/management/RegistrationIT.java @@ -190,7 +190,7 @@ public class RegistrationIT extends AbstractRestIT { setTestProperty(PROPERTIES_SYSADMIN_APPROVES_ADMIN_USERS, "false"); setTestProperty(PROPERTIES_SYSADMIN_APPROVES_ORGANIZATIONS, "false"); setTestProperty(PROPERTIES_ADMIN_USERS_REQUIRE_CONFIRMATION, "false"); - setTestProperty(PROPERTIES_SYSADMIN_EMAIL, "[email protected]"); + setTestProperty(PROPERTIES_DEFAULT_SYSADMIN_EMAIL, "[email protected]"); String t = this.getAdminToken().getAccessToken(); Form form = new Form(); @@ -217,7 +217,7 @@ public class RegistrationIT extends AbstractRestIT { setTestProperty(PROPERTIES_SYSADMIN_APPROVES_ADMIN_USERS, "false"); setTestProperty(PROPERTIES_SYSADMIN_APPROVES_ORGANIZATIONS, "false"); setTestProperty(PROPERTIES_ADMIN_USERS_REQUIRE_CONFIRMATION, "false"); - setTestProperty(PROPERTIES_SYSADMIN_EMAIL, "[email protected]"); + setTestProperty(PROPERTIES_DEFAULT_SYSADMIN_EMAIL, "[email protected]"); String t = this.getAdminToken().getAccessToken(); postAddAdminToOrg("test-organization", "[email protected]", "password", t); @@ -237,7 +237,7 @@ public class RegistrationIT extends AbstractRestIT { setTestProperty(PROPERTIES_SYSADMIN_APPROVES_ADMIN_USERS, "false"); setTestProperty(PROPERTIES_SYSADMIN_APPROVES_ORGANIZATIONS, "false"); setTestProperty(PROPERTIES_ADMIN_USERS_REQUIRE_CONFIRMATION, "false"); - setTestProperty(PROPERTIES_SYSADMIN_EMAIL, "[email protected]"); + setTestProperty(PROPERTIES_DEFAULT_SYSADMIN_EMAIL, "[email protected]"); // this should send resetpwd link in email to newly added org admin user(that did not exist ///in usergrid) and "User Invited To Organization" email @@ -295,7 +295,7 @@ public class RegistrationIT extends AbstractRestIT { setTestProperty(PROPERTIES_SYSADMIN_APPROVES_ADMIN_USERS, "false"); setTestProperty(PROPERTIES_SYSADMIN_APPROVES_ORGANIZATIONS, "false"); setTestProperty(PROPERTIES_ADMIN_USERS_REQUIRE_CONFIRMATION, "false"); - setTestProperty(PROPERTIES_SYSADMIN_EMAIL, "[email protected]"); + setTestProperty(PROPERTIES_DEFAULT_SYSADMIN_EMAIL, "[email protected]"); // svcSetup an admin user String adminUserName = "AdminUserFromOtherOrg"; http://git-wip-us.apache.org/repos/asf/usergrid/blob/d2fd9ba4/stack/services/src/main/java/org/apache/usergrid/management/AccountCreationProps.java ---------------------------------------------------------------------- diff --git a/stack/services/src/main/java/org/apache/usergrid/management/AccountCreationProps.java b/stack/services/src/main/java/org/apache/usergrid/management/AccountCreationProps.java index 6c000e2..e67271e 100644 --- a/stack/services/src/main/java/org/apache/usergrid/management/AccountCreationProps.java +++ b/stack/services/src/main/java/org/apache/usergrid/management/AccountCreationProps.java @@ -85,7 +85,9 @@ public interface AccountCreationProps { public static final String PROPERTIES_SYSADMIN_LOGIN_NAME = "usergrid.sysadmin.login.name"; public static final String PROPERTIES_SYSADMIN_LOGIN_ALLOWED = "usergrid.sysadmin.login.allowed"; - public static final String PROPERTIES_SYSADMIN_EMAIL = "usergrid.sysadmin.email"; + public static final String PROPERTIES_ADMIN_SYSADMIN_EMAIL = "usergrid.admin.sysadmin.email"; + public static final String PROPERTIES_ORG_SYSADMIN_EMAIL = "usergrid.org.sysadmin.email"; + public static final String PROPERTIES_DEFAULT_SYSADMIN_EMAIL = "usergrid.sysadmin.email"; public static final String PROPERTIES_TEST_ACCOUNT_ADMIN_USER_PASSWORD = "usergrid.test-account.admin-user.password"; http://git-wip-us.apache.org/repos/asf/usergrid/blob/d2fd9ba4/stack/services/src/main/java/org/apache/usergrid/management/cassandra/ManagementServiceImpl.java ---------------------------------------------------------------------- diff --git a/stack/services/src/main/java/org/apache/usergrid/management/cassandra/ManagementServiceImpl.java b/stack/services/src/main/java/org/apache/usergrid/management/cassandra/ManagementServiceImpl.java index 5c79b14..47e32a8 100644 --- a/stack/services/src/main/java/org/apache/usergrid/management/cassandra/ManagementServiceImpl.java +++ b/stack/services/src/main/java/org/apache/usergrid/management/cassandra/ManagementServiceImpl.java @@ -126,7 +126,9 @@ import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_EMA import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_MAILER_EMAIL; import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_ORGANIZATION_ACTIVATION_URL; import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_SETUP_TEST_ACCOUNT; -import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_SYSADMIN_EMAIL; +import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_ORG_SYSADMIN_EMAIL; +import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_ADMIN_SYSADMIN_EMAIL; +import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_DEFAULT_SYSADMIN_EMAIL; import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_SYSADMIN_LOGIN_ALLOWED; import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_SYSADMIN_LOGIN_EMAIL; import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_SYSADMIN_LOGIN_NAME; @@ -230,11 +232,11 @@ public class ManagementServiceImpl implements ManagementService { protected EncryptionService encryptionService; + /** Must be constructed with a CassandraClientPool. */ public ManagementServiceImpl() { } - @Autowired public void setEntityManagerFactory( EntityManagerFactory emf ) { logger.info( "ManagementServiceImpl.setEntityManagerFactory" ); @@ -245,6 +247,33 @@ public class ManagementServiceImpl implements ManagementService { @Autowired public void setProperties( Properties properties ) { this.properties = new AccountCreationPropsImpl( properties ); + + + } + + String orgSysAdminEmail,defaultSysAdminEmail,adminSysAdminEmail; + private String getDefaultSysAdminEmail(){ + defaultSysAdminEmail = defaultSysAdminEmail != null + ? defaultSysAdminEmail + : properties.getProperty(PROPERTIES_DEFAULT_SYSADMIN_EMAIL); + return defaultSysAdminEmail; + } + private String getOrgSystemEmail(){ + if( orgSysAdminEmail != null ){ + return orgSysAdminEmail; + } + orgSysAdminEmail = properties.getProperty( PROPERTIES_ORG_SYSADMIN_EMAIL ); + orgSysAdminEmail = orgSysAdminEmail!=null ? orgSysAdminEmail : getDefaultSysAdminEmail(); + return orgSysAdminEmail; + } + + private String getAdminSystemEmail(){ + if( adminSysAdminEmail != null ){ + return adminSysAdminEmail; + } + adminSysAdminEmail = properties.getProperty( PROPERTIES_ADMIN_SYSADMIN_EMAIL ); + adminSysAdminEmail = adminSysAdminEmail!=null ? adminSysAdminEmail : getDefaultSysAdminEmail(); + return adminSysAdminEmail; } @@ -2202,7 +2231,8 @@ public class ManagementServiceImpl implements ManagementService { } if ( newOrganizationsNeedSysAdminApproval() ) { logger.info( "sending SysAdminApproval confirmation email: {}", organization.getName() ); - sendHtmlMail( properties, properties.getProperty( PROPERTIES_SYSADMIN_EMAIL ), + //TODO: add org email approval + sendHtmlMail( properties, getOrgSystemEmail(), properties.getProperty( PROPERTIES_MAILER_EMAIL ), "Request For Organization Account Activation " + organization.getName(), appendEmailFooter( emailMsg( hashMap( "organization_name", organization.getName() ) @@ -2265,7 +2295,8 @@ public class ManagementServiceImpl implements ManagementService { organization_owners = ( organization_owners == null ) ? user.getHTMLDisplayEmailAddress() : organization_owners + ", " + user.getHTMLDisplayEmailAddress(); } - sendHtmlMail( properties, properties.getProperty( PROPERTIES_SYSADMIN_EMAIL ), + //TODO: org email + sendHtmlMail( properties, getOrgSystemEmail(), properties.getProperty( PROPERTIES_MAILER_EMAIL ), "Organization Account Activated " + organization.getName(), appendEmailFooter( emailMsg( hashMap( "organization_name", organization.getName() ) @@ -2358,10 +2389,11 @@ public class ManagementServiceImpl implements ManagementService { public void sendSysAdminRequestAdminActivationEmail( UserInfo user ) throws Exception { String token = getActivationTokenForAdminUser( user.getUuid(), 0 ); + //TODO: admin specific email String activation_url = String.format( properties.getProperty( PROPERTIES_ADMIN_ACTIVATION_URL ), user.getUuid().toString() ) + "?token=" + token; - sendHtmlMail( properties, properties.getProperty( PROPERTIES_SYSADMIN_EMAIL ), + sendHtmlMail( properties, getAdminSystemEmail(), properties.getProperty( PROPERTIES_MAILER_EMAIL ), "Request For Admin User Account Activation " + user.getEmail(), appendEmailFooter( emailMsg( hashMap( "user_email", user.getEmail() ).map( "activation_url", activation_url ), @@ -2371,7 +2403,7 @@ public class ManagementServiceImpl implements ManagementService { public void sendSysAdminNewAdminActivatedNotificationEmail( UserInfo user ) throws Exception { if ( properties.notifySysAdminOfNewAdminUsers() ) { - sendHtmlMail( properties, properties.getProperty( PROPERTIES_SYSADMIN_EMAIL ), + sendHtmlMail( properties, getAdminSystemEmail(), properties.getProperty( PROPERTIES_MAILER_EMAIL ), "Admin User Account Activated " + user.getEmail(), appendEmailFooter( emailMsg( hashMap( "user_email", user.getEmail() ), PROPERTIES_EMAIL_SYSADMIN_ADMIN_ACTIVATED ) ) ); http://git-wip-us.apache.org/repos/asf/usergrid/blob/d2fd9ba4/stack/services/src/test/java/org/apache/usergrid/management/EmailFlowIT.java ---------------------------------------------------------------------- diff --git a/stack/services/src/test/java/org/apache/usergrid/management/EmailFlowIT.java b/stack/services/src/test/java/org/apache/usergrid/management/EmailFlowIT.java index 0065d5a..26f150a 100644 --- a/stack/services/src/test/java/org/apache/usergrid/management/EmailFlowIT.java +++ b/stack/services/src/test/java/org/apache/usergrid/management/EmailFlowIT.java @@ -74,7 +74,9 @@ import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_NOT import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_ORGANIZATIONS_REQUIRE_CONFIRMATION; import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_SYSADMIN_APPROVES_ADMIN_USERS; import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_SYSADMIN_APPROVES_ORGANIZATIONS; -import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_SYSADMIN_EMAIL; +import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_DEFAULT_SYSADMIN_EMAIL; +import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_ADMIN_SYSADMIN_EMAIL; +import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_ORG_SYSADMIN_EMAIL; import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_USER_ACTIVATION_URL; import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_USER_CONFIRMATION_URL; import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_USER_RESETPW_URL; @@ -111,7 +113,7 @@ public class EmailFlowIT { setup.set( PROPERTIES_SYSADMIN_APPROVES_ADMIN_USERS, "false" ); setup.set( PROPERTIES_SYSADMIN_APPROVES_ORGANIZATIONS, "false" ); setup.set( PROPERTIES_ADMIN_USERS_REQUIRE_CONFIRMATION, "true" ); - setup.set( PROPERTIES_SYSADMIN_EMAIL, "[email protected]" ); + setup.set( PROPERTIES_DEFAULT_SYSADMIN_EMAIL, "[email protected]" ); setup.set( PROPERTIES_NOTIFY_ADMIN_OF_ACTIVATION, "true" ); final String orgName = uniqueOrg(); @@ -154,7 +156,7 @@ public class EmailFlowIT { setup.set( PROPERTIES_NOTIFY_ADMIN_OF_ACTIVATION, "true" ); setup.set( PROPERTIES_SYSADMIN_APPROVES_ORGANIZATIONS, "false" ); setup.set( PROPERTIES_ADMIN_USERS_REQUIRE_CONFIRMATION, "true" ); - setup.set( PROPERTIES_SYSADMIN_EMAIL, "[email protected]" ); + setup.set( PROPERTIES_DEFAULT_SYSADMIN_EMAIL, "[email protected]" ); final String orgName = uniqueOrg(); final String userName = uniqueUsername();
