=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/setting/SystemSettingManager.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/setting/SystemSettingManager.java 2012-10-29 20:17:23 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/setting/SystemSettingManager.java 2012-10-30 15:04:28 +0000
@@ -114,4 +114,6 @@
String getEmailPassword();
boolean accountRecoveryEnabled();
+
+ boolean emailEnabled();
}
=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/security/DefaultSecurityService.java'
--- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/security/DefaultSecurityService.java 2012-10-30 14:45:03 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/security/DefaultSecurityService.java 2012-10-30 15:04:28 +0000
@@ -34,9 +34,12 @@
import java.util.Map;
import java.util.Set;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.hisp.dhis.common.CodeGenerator;
import org.hisp.dhis.message.MessageSender;
import org.hisp.dhis.period.Cal;
+import org.hisp.dhis.setting.SystemSettingManager;
import org.hisp.dhis.system.util.ValidationUtils;
import org.hisp.dhis.system.velocity.VelocityManager;
import org.hisp.dhis.user.User;
@@ -49,6 +52,8 @@
public class DefaultSecurityService
implements SecurityService
{
+ private static final Log log = LogFactory.getLog( DefaultSecurityService.class );
+
private static final String RESTORE_PATH = "/dhis-web-commons/security/restore.action";
private static final int TOKEN_LENGTH = 50;
@@ -78,6 +83,13 @@
{
this.userService = userService;
}
+
+ private SystemSettingManager systemSettingManager;
+
+ public void setSystemSettingManager( SystemSettingManager systemSettingManager )
+ {
+ this.systemSettingManager = systemSettingManager;
+ }
// -------------------------------------------------------------------------
// SecurityService implementation
@@ -94,15 +106,22 @@
if ( credentials == null || credentials.getUser() == null || credentials.getUser().getEmail() == null )
{
+ log.info( "Could not send message as user does not exist or has no email: " + username );
return false;
}
if ( !ValidationUtils.emailIsValid( credentials.getUser().getEmail() ) )
{
- return false;
- }
-
- // TODO check if email is configured
+ log.info( "Could not send message as email is invalid" );
+ return false;
+ }
+
+ if ( !systemSettingManager.emailEnabled() )
+ {
+ log.info( "Could not send message as email is not configured" );
+ return false;
+ }
+
// TODO deny restore if credentials contain certain authorities
String[] result = initRestore( credentials );
@@ -157,6 +176,7 @@
if ( credentials == null )
{
+ log.info( "Could not restore as user does not exist: " + username );
return false;
}
@@ -194,6 +214,7 @@
if ( credentials == null || credentials.getRestoreToken() == null )
{
+ log.info( "Could not verify token as user does not exist or has no token: " + username );
return false;
}
=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/setting/DefaultSystemSettingManager.java'
--- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/setting/DefaultSystemSettingManager.java 2012-10-29 20:17:23 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/setting/DefaultSystemSettingManager.java 2012-10-30 15:04:28 +0000
@@ -152,4 +152,9 @@
{
return (Boolean) getSystemSetting( KEY_ACCOUNT_RECOVERY, false );
}
+
+ public boolean emailEnabled()
+ {
+ return getEmailHostName() != null && getEmailPassword() != null && getEmailUsername() != null;
+ }
}
=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/resources/META-INF/dhis/security.xml'
--- dhis-2/dhis-services/dhis-service-core/src/main/resources/META-INF/dhis/security.xml 2012-10-29 14:34:57 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/resources/META-INF/dhis/security.xml 2012-10-30 15:04:28 +0000
@@ -19,7 +19,8 @@
-
+
+