← Back to team overview

dhis2-devs team mailing list archive

[Branch ~dhis2-devs-core/dhis2/trunk] Rev 16243: Blueprint invite-message-i18n: Implemented i18n for account invite and recovery email messages.

 

Merge authors:
  Halvdan Hoem Grelland (halvdanhg)
------------------------------------------------------------
revno: 16243 [merge]
committer: Halvdan Hoem Grelland <halvdanhg@xxxxxxxxx>
branch nick: dhis2
timestamp: Fri 2014-07-25 17:19:34 +0200
message:
  Blueprint invite-message-i18n: Implemented i18n for account invite and recovery email messages.
removed:
  dhis-2/dhis-services/dhis-service-core/src/main/resources/invite_message1.vm
  dhis-2/dhis-services/dhis-service-core/src/main/resources/invite_message2.vm
  dhis-2/dhis-services/dhis-service-core/src/main/resources/restore_message1.vm
  dhis-2/dhis-services/dhis-service-core/src/main/resources/restore_message2.vm
added:
  dhis-2/dhis-services/dhis-service-core/src/main/resources/invite_message1.vm
  dhis-2/dhis-services/dhis-service-core/src/main/resources/invite_message2.vm
  dhis-2/dhis-services/dhis-service-core/src/main/resources/restore_message1.vm
  dhis-2/dhis-services/dhis-service-core/src/main/resources/restore_message2.vm
modified:
  dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/i18n/I18nManager.java
  dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/i18n/ui/DefaultI18nManager.java
  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/RestoreType.java
  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/i18n_global.properties


--
lp:dhis2
https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk

Your team DHIS 2 developers is subscribed to branch lp:dhis2.
To unsubscribe from this branch go to https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription
=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/i18n/I18nManager.java'
--- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/i18n/I18nManager.java	2014-07-06 17:12:17 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/i18n/I18nManager.java	2014-07-24 16:46:51 +0000
@@ -42,6 +42,8 @@
 {
     String ID = I18nManager.class.getName();
 
+    I18n getI18n( Locale locale );
+
     I18n getI18n( Class<?> clazz );
 
     I18n getI18n( Class<?> clazz, Locale locale );

=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/i18n/ui/DefaultI18nManager.java'
--- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/i18n/ui/DefaultI18nManager.java	2014-07-06 17:12:17 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/i18n/ui/DefaultI18nManager.java	2014-07-24 16:46:51 +0000
@@ -68,6 +68,12 @@
     // -------------------------------------------------------------------------
 
     @Override
+    public I18n getI18n( Locale locale )
+    {
+        return new I18n( getGlobalResourceBundle( locale ), null );
+    }
+
+    @Override
     public I18n getI18n( Class<?> clazz )
     {
         return new I18n( getGlobalResourceBundle(), getSpecificResourceBundle( clazz.getName() ) );

=== 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	2014-05-24 18:16:41 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/security/DefaultSecurityService.java	2014-07-24 16:51:56 +0000
@@ -33,6 +33,9 @@
 import org.hisp.dhis.acl.AclService;
 import org.hisp.dhis.common.CodeGenerator;
 import org.hisp.dhis.common.IdentifiableObject;
+import org.hisp.dhis.i18n.I18n;
+import org.hisp.dhis.i18n.I18nManager;
+import org.hisp.dhis.i18n.locale.LocaleManager;
 import org.hisp.dhis.message.MessageSender;
 import org.hisp.dhis.period.Cal;
 import org.hisp.dhis.setting.SystemSettingManager;
@@ -43,12 +46,14 @@
 import org.hisp.dhis.user.UserAuthorityGroup;
 import org.hisp.dhis.user.UserCredentials;
 import org.hisp.dhis.user.UserService;
+import org.hisp.dhis.user.UserSettingService;
 import org.springframework.beans.factory.annotation.Autowired;
 
 import java.util.Arrays;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.HashSet;
+import java.util.Locale;
 import java.util.Map;
 import java.util.Set;
 
@@ -100,6 +105,13 @@
         this.systemSettingManager = systemSettingManager;
     }
 
+    private I18nManager i18nManager;
+
+    public void setI18nManager( I18nManager i18nManager )
+    {
+        this.i18nManager = i18nManager;
+    }
+
     @Autowired
     private CurrentUserService currentUserService;
 
@@ -171,18 +183,37 @@
         Set<User> users = new HashSet<User>();
         users.add( credentials.getUser() );
 
-        Map<String, String> vars = new HashMap<String, String>();
+        Map<String, Object> vars = new HashMap<String, Object>();
         vars.put( "rootPath", rootPath );
         vars.put( "restorePath", rootPath + RESTORE_PATH + restoreType.getAction() );
         vars.put( "token", result[0] );
         vars.put( "code", result[1] );
         vars.put( "username", credentials.getUsername() );
 
-        String text1 = new VelocityManager().render( vars, restoreType.getEmailTemplate() + "1" );
-        String text2 = new VelocityManager().render( vars, restoreType.getEmailTemplate() + "2" );
-
-        emailMessageSender.sendMessage( restoreType.getEmailSubject() + " (message 1 of 2)", text1, null, users, true );
-        emailMessageSender.sendMessage( restoreType.getEmailSubject() + " (message 2 of 2)", text2, null, users, true );
+        User user = credentials.getUser();
+        Locale locale = (Locale) userService.getUserSettingValue( user, UserSettingService.KEY_UI_LOCALE, LocaleManager.DHIS_STANDARD_LOCALE );
+
+        I18n i18n = i18nManager.getI18n( locale );
+        vars.put( "i18n" , i18n );
+
+        // -------------------------------------------------------------------------
+        // Render emails
+        // -------------------------------------------------------------------------
+
+        VelocityManager vm = new VelocityManager();
+
+        String text1 = vm.render( vars, restoreType.getEmailTemplate() + "1" ),
+               text2 = vm.render( vars, restoreType.getEmailTemplate() + "2" );
+
+        String subject1 = i18n.getString( restoreType.getEmailSubject() ) + " (" + i18n.getString( "message" ).toLowerCase() + " 1 / 2)",
+               subject2 = i18n.getString( restoreType.getEmailSubject() ) + " (" + i18n.getString( "message" ).toLowerCase() + " 2 / 2)";
+
+        // -------------------------------------------------------------------------
+        // Send emails
+        // -------------------------------------------------------------------------
+
+        emailMessageSender.sendMessage( subject1, text1, null, users, true );
+        emailMessageSender.sendMessage( subject2, text2, null, users, true );
 
         return true;
     }

=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/security/RestoreType.java'
--- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/security/RestoreType.java	2014-03-18 08:10:10 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/security/RestoreType.java	2014-07-24 16:38:14 +0000
@@ -37,8 +37,8 @@
 
 public enum RestoreType
 {
-    RECOVER_PASSWORD( Calendar.HOUR_OF_DAY, 1, "restore_message", "User account restore confirmation", "restore.action" ),
-    INVITE( Calendar.MONTH, 3, "invite_message", "Create DHIS 2 user account invitation", "invite.action" );
+    RECOVER_PASSWORD( Calendar.HOUR_OF_DAY, 1, "restore_message", "email_restore_subject", "restore.action" ),
+    INVITE( Calendar.MONTH, 3, "invite_message", "email_invite_subject", "invite.action" );
 
     /**
      * Type of Calendar interval before the restore expires.

=== 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	2013-08-13 07:18:45 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/resources/META-INF/dhis/security.xml	2014-07-16 17:07:46 +0000
@@ -19,5 +19,6 @@
     <property name="emailMessageSender" ref="emailMessageSender" />
     <property name="userService" ref="org.hisp.dhis.user.UserService" />
     <property name="systemSettingManager" ref="org.hisp.dhis.setting.SystemSettingManager" />
+    <property name="i18nManager" ref="org.hisp.dhis.i18n.I18nManager" />
   </bean>
 </beans>

=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/resources/i18n_global.properties'
--- dhis-2/dhis-services/dhis-service-core/src/main/resources/i18n_global.properties	2014-07-23 12:49:57 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/resources/i18n_global.properties	2014-07-25 15:15:14 +0000
@@ -862,3 +862,37 @@
 thai=Thai
 iso8601=ISO 8601
 coptic=Coptic
+
+#-- Restore emails ------------------------------------------------------------#
+
+email_restore_subject=User account restore confirmation
+email_restore_1_1st_paragraph=Someone, probably you, have asked us to restore your user account at
+email_restore_1_2nd_paragraph=You have been sent two emails, where this is the first one. Please follow the \
+                                 link below. In the next step you will be asked to enter a code which has been \
+                                 sent to you in the other email.
+email_restore_1_3rd_paragraph=You must complete the restore process within 1 hour. If you take no action, your \
+                                account will not be restored. If you did not request this restore, please disregard \
+                                this message.
+email_restore_2_1st_paragraph=Someone, probably you, have asked us to restore your user account at
+email_restore_2_2nd_paragraph=You have been sent two emails, where this is the second one. Please read the \
+                                 first email and follow the instructions. Please use the code below to complete \
+                                 the new account form.
+email_restore_2_3rd_paragraph=You must complete the restore process within 1 hour. If you take no action, your \
+                              account will not be restored. If you did not request this restore, please disregard \
+                              this message.
+
+#-- Invite emails -------------------------------------------------------------#
+
+email_invite_subject=Create user account invitation
+email_invite_1_1st_paragraph=This is an invitation to create a user account on the DHIS 2 system at
+email_invite_1_2nd_paragraph=You have been sent two emails, where this is the first one. Please follow the \
+                                link below. In the next step you will be asked to enter a code which has been \
+                                sent to you in the other email.
+email_invite_1_3rd_paragraph=You must respond to this invitation within 3 months. If you take no action, \
+                               the invitation will expire at that time.
+email_invite_2_1st_paragraph=This is an invitation to create a user account on the DHIS 2 system at
+email_invite_2_2nd_paragraph=You have been sent two emails, where this is the second one. Please read the \
+                                first email and follow the instructions. Please use the code below to complete \
+                                the new account form.
+email_invite_2_3rd_paragraph=You must respond to this invitation within 3 months. If you take no action, \
+                               the invitation will expire at that time.

=== removed file 'dhis-2/dhis-services/dhis-service-core/src/main/resources/invite_message1.vm'
--- dhis-2/dhis-services/dhis-service-core/src/main/resources/invite_message1.vm	2014-01-17 03:48:57 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/resources/invite_message1.vm	1970-01-01 00:00:00 +0000
@@ -1,11 +0,0 @@
-This is an invitation to create a user account on the DHIS 2 system at ${object.rootPath}.
-You have been sent two emails, where this is the first one. Please follow the
-link below. In the next step you will be asked to enter a code which has been
-sent to you in the other email.
-
-
-${object.restorePath}?username=${object.username}&token=${object.token}
-
-
-You must respond to this invitation within 3 months. If you take no action,
-the invitation will expire at that time.

=== added file 'dhis-2/dhis-services/dhis-service-core/src/main/resources/invite_message1.vm'
--- dhis-2/dhis-services/dhis-service-core/src/main/resources/invite_message1.vm	1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/resources/invite_message1.vm	2014-07-24 16:38:14 +0000
@@ -0,0 +1,9 @@
+## Email account invite message 1 of 2
+$object.i18n.getString( "email_invite_1_1st_paragraph" ) ${object.rootPath}.
+$object.i18n.getString( "email_invite_1_2nd_paragraph" )
+
+
+${object.restorePath}?username=${object.username}&token=${object.token}
+
+
+$object.i18n.getString( "email_invite_1_3rd_paragraph" )
\ No newline at end of file

=== added file 'dhis-2/dhis-services/dhis-service-core/src/main/resources/invite_message2.vm'
--- dhis-2/dhis-services/dhis-service-core/src/main/resources/invite_message2.vm	1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/resources/invite_message2.vm	2014-07-24 16:38:14 +0000
@@ -0,0 +1,9 @@
+## Email account invite message 2 of 2
+$object.i18n.getString( 'email_invite_2_1st_paragraph' ) ${object.rootPath}.
+$object.i18n.getString( 'email_invite_2_2nd_paragraph' )
+
+
+${object.code}
+
+
+$object.i18n.getString( 'email_invite_2_3rd_paragraph' )

=== removed file 'dhis-2/dhis-services/dhis-service-core/src/main/resources/invite_message2.vm'
--- dhis-2/dhis-services/dhis-service-core/src/main/resources/invite_message2.vm	2014-01-23 15:04:07 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/resources/invite_message2.vm	1970-01-01 00:00:00 +0000
@@ -1,11 +0,0 @@
-This is an invitation to create a user account on the DHIS 2 system at ${object.rootPath}.
-You have been sent two emails, where this is the second one. Please read the
-first email and follow the instructions. Please use the code below to complete
-the new account form.
-
-
-${object.code}
-
-
-You must respond to this invitation within 3 months. If you take no action,
-the invitation will expire at that time.

=== added file 'dhis-2/dhis-services/dhis-service-core/src/main/resources/restore_message1.vm'
--- dhis-2/dhis-services/dhis-service-core/src/main/resources/restore_message1.vm	1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/resources/restore_message1.vm	2014-07-24 16:38:14 +0000
@@ -0,0 +1,9 @@
+## Email account recovery message 1 of 2
+$object.i18n.getString( 'email_restore_1_1st_paragraph' ) ${object.rootPath}.
+$object.i18n.getString( 'email_restore_1_2nd_paragraph' )
+
+
+${object.restorePath}?username=${object.username}&token=${object.token}
+
+
+$object.i18n.getString( 'email_restore_1_3rd_paragraph' )

=== removed file 'dhis-2/dhis-services/dhis-service-core/src/main/resources/restore_message1.vm'
--- dhis-2/dhis-services/dhis-service-core/src/main/resources/restore_message1.vm	2012-10-30 06:50:49 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/resources/restore_message1.vm	1970-01-01 00:00:00 +0000
@@ -1,12 +0,0 @@
-Someone, probably you, have asked us to restore your user account at ${object.rootPath}. 
-You have been sent two emails, where this is the first one. Please follow the 
-link below. In the next step you will be asked to enter a code which has been 
-sent to you in the other email.
-
-
-${object.restorePath}?username=${object.username}&token=${object.token}
-
-
-You must complete the restore process within 1 hour. If you take no action, your
-account will not be restored. If you did not request this restore, please disregard
-this message.

=== removed file 'dhis-2/dhis-services/dhis-service-core/src/main/resources/restore_message2.vm'
--- dhis-2/dhis-services/dhis-service-core/src/main/resources/restore_message2.vm	2012-10-30 06:50:49 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/resources/restore_message2.vm	1970-01-01 00:00:00 +0000
@@ -1,12 +0,0 @@
-Someone, probably you, have asked us to restore your user account at ${object.rootPath}. 
-You have been sent two emails, where this is the second one. Please read the 
-first email and follow the instructions. If you already have done so, please 
-use the code below to complete the account restore form.
-
-
-${object.code}
-
-
-You must complete the restore process within 1 hour. If you take no action, your
-account will not be restored. If you did not request this restore, please disregard
-this message.
\ No newline at end of file

=== added file 'dhis-2/dhis-services/dhis-service-core/src/main/resources/restore_message2.vm'
--- dhis-2/dhis-services/dhis-service-core/src/main/resources/restore_message2.vm	1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/resources/restore_message2.vm	2014-07-24 16:38:14 +0000
@@ -0,0 +1,9 @@
+## Email account recovery message 2 of 2
+$object.i18n.getString( 'email_restore_2_1st_paragraph' ) ${object.rootPath}.
+$object.i18n.getString( 'email_restore_2_2nd_paragraph' )
+
+
+${object.code}
+
+
+$object.i18n.getString( 'email_restore_2_3rd_paragraph' )
\ No newline at end of file