=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/setting/SettingKey.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/setting/SettingKey.java 2015-12-08 19:33:06 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/setting/SettingKey.java 2015-12-30 15:44:22 +0000 @@ -30,9 +30,11 @@ import java.io.Serializable; import java.util.Date; +import java.util.Locale; import java.util.Map; import java.util.Optional; +import org.apache.commons.lang3.LocaleUtils; import org.hisp.dhis.common.ListMap; import org.hisp.dhis.configuration.Configuration; import org.hisp.dhis.sms.config.SmsConfiguration; @@ -180,6 +182,10 @@ { return Boolean.valueOf( value ); } + else if ( Locale.class.isAssignableFrom( settingClazz ) ) + { + return LocaleUtils.toLocale( value ); + } //TODO handle Dates } === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/user/UserSetting.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/user/UserSetting.java 2015-01-17 07:41:26 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/user/UserSetting.java 2015-12-30 15:44:22 +0000 @@ -112,6 +112,11 @@ value = other.getValue() != null ? other.getValue() : value; } + public boolean hasValue() + { + return value != null; + } + // ------------------------------------------------------------------------- // Getters and setters // ------------------------------------------------------------------------- === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/user/UserSettingKey.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/user/UserSettingKey.java 2015-12-30 14:43:57 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/user/UserSettingKey.java 2015-12-30 17:05:16 +0000 @@ -32,6 +32,8 @@ import java.util.Locale; import java.util.Optional; +import org.apache.commons.lang3.LocaleUtils; + /** * @author Lars Helge Overland */ @@ -44,10 +46,11 @@ UI_LOCALE( "keyUiLocale", Locale.class ), DB_LOCALE( "keyDbLocale", Locale.class ), ANALYSIS_DISPLAY_PROPERTY( "keyAnalysisDisplayProperty", "name", String.class ), - KEY_CURRENT_DOMAIN_TYPE( "currentDomainType" ), + CURRENT_DOMAIN_TYPE( "currentDomainType" ), AUTO_SAVE_CASE_ENTRY_FORM( "autoSaveCaseEntryForm", Boolean.FALSE, Boolean.class ), AUTO_SAVE_TRACKED_ENTITY_REGISTRATION_ENTRY_FORM( "autoSavetTrackedEntityForm", Boolean.FALSE, Boolean.class ), - AUTO_SAVE_DATA_ENTRY_FORM( "autoSaveDataEntryForm", Boolean.FALSE, Boolean.class ); + AUTO_SAVE_DATA_ENTRY_FORM( "autoSaveDataEntryForm", Boolean.FALSE, Boolean.class ), + TRACKER_DASHBOARD_LAYOUT( "keyTrackerDashboardLayout" ); private final String name; @@ -117,6 +120,10 @@ { return Boolean.valueOf( value ); } + else if ( Locale.class.isAssignableFrom( settingClazz ) ) + { + return LocaleUtils.toLocale( value ); + } //TODO handle Dates } === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/user/UserSettingService.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/user/UserSettingService.java 2015-12-08 19:33:06 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/user/UserSettingService.java 2015-12-30 17:05:16 +0000 @@ -41,63 +41,37 @@ { String ID = UserSettingService.class.getName(); - String KEY_STYLE = "stylesheet"; - String KEY_STYLE_DIRECTORY = "stylesheetDirectory"; - String KEY_MESSAGE_EMAIL_NOTIFICATION = "keyMessageEmailNotification"; - String KEY_MESSAGE_SMS_NOTIFICATION = "keyMessageSmsNotification"; - String KEY_UI_LOCALE = "keyUiLocale"; - String KEY_DB_LOCALE = "keyDbLocale"; - String KEY_ANALYSIS_DISPLAY_PROPERTY = "keyAnalysisDisplayProperty"; - String KEY_CURRENT_DOMAIN_TYPE = "currentDomainType"; - String AUTO_SAVE_CASE_ENTRY_FORM = "autoSaveCaseEntryForm"; - String AUTO_SAVE_TRACKED_ENTITY_REGISTRATION_ENTRY_FORM = "autoSavetTrackedEntityForm"; - String AUTO_SAVE_DATA_ENTRY_FORM = "autoSaveDataEntryForm"; - - String DEFAULT_ANALYSIS_DISPLAY_PROPERTY = "name"; - - //TODO use enum for names - // ------------------------------------------------------------------------- // UserSettings // ------------------------------------------------------------------------- /** - * Adds a UserSetting. - * - * @param userSetting the UserSetting to add. - */ - void addUserSetting( UserSetting userSetting ); - - /** - * Saves the name/value pair as a user setting connected to the currently + * Saves the key/value pair as a user setting connected to the currently * logged in user. * - * @param name the name/handle of the value. - * @param value the value to store. - * @throws NoCurrentUserException if there is no current user. + * @param key the user setting key. + * @param value the setting value. */ - void saveUserSetting( String name, Serializable value ); + void saveUserSetting( UserSettingKey key, Serializable value ); /** - * Saves the name/value pair as a user setting connected to user identified + * Saves the key/value pair as a user setting connected to user identified * by username. * - * @param name the name/handle of the value. - * @param value the value to store. + * @param key the user setting key. + * @param value the setting value. * @param username the username of user. - * @throws NoCurrentUserException if there is no user. */ - void saveUserSetting( String name, Serializable value, String username ); - + void saveUserSetting( UserSettingKey key, Serializable value, String username ); + /** * Saves the name/value pair as a user setting connected to user. * - * @param name the name/handle of the value. - * @param value the value to store. - * @param username the user. - * @throws NoCurrentUserException if there is no user. + * @param key the user setting key. + * @param value the setting value. + * @param username the username of user. */ - void saveUserSetting( String name, Serializable value, User user ); + void saveUserSetting( UserSettingKey key, Serializable value, User user ); /** * Deletes a UserSetting. @@ -109,67 +83,49 @@ /** * Deletes the user setting with the given name. * - * @param name the name of the user setting to delete. - * @throws NoCurrentUserException if there is no current user. + * @param key the user setting key. */ - void deleteUserSetting( String name ); + void deleteUserSetting( UserSettingKey key ); /** * Deletes the user setting with the given name for the given user. * - * @param name the name of the user setting to delete. + * @param key the user setting key. * @user the user. */ - void deleteUserSetting( String name, User user ); + void deleteUserSetting( UserSettingKey key, User user ); /** * Returns the value of the user setting specified by the given name. * - * @param name the name of the user setting. + * @param key the user setting key. * @return the value corresponding to the named user setting, or null if * there is no match. - * @throws NoCurrentUserException if there is no current user. */ - Serializable getUserSetting( String name ); + Serializable getUserSetting( UserSettingKey key ); /** - * Returns the value of the user setting specified by the given name. If - * there is no current user or the user setting doesn't exist, the specified - * default value is returned. + * Returns the value of the user setting specified by the given name. * - * @param name the name of the user setting. - * @param defaultValue the value to return if there is no current user or no - * user setting corresponding to the given name. - * @return the value corresponding to the names user setting, or the default - * value if there is no current user or matching user setting. - */ - Serializable getUserSetting( String name, Serializable defaultValue ); - - /** - * Retrieves a user setting value for the given user and setting name. Returns - * the given default value if the setting does not exist or the setting value - * is null. - * - * @param name the setting name. - * @param defaultValue the default value. - * @param user the user. - * @return a setting value. - */ - Serializable getUserSetting( String name, Serializable defaultValue, User user ); - - /** - * Retrieves all UserSettings for the given User. + * @param key the user setting key. + * @param user the user. + * @return the value corresponding to the named user setting, or null if + * there is no match. + */ + Serializable getUserSetting( UserSettingKey key, User user ); + + /** + * Retrieves UserSettings for the given User. * * @param user the User. * @return a List of UserSettings. */ - List getAllUserSettings( User user ); + List getUserSettings( User user ); /** * Returns all user settings belonging to the current user. * * @return all user settings belonging to the current user. - * @throws NoCurrentUserException if there is no current user. */ List getAllUserSettings(); === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/i18n/DefaultI18nService.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/i18n/DefaultI18nService.java 2015-12-21 14:19:03 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/i18n/DefaultI18nService.java 2015-12-30 15:44:22 +0000 @@ -33,6 +33,7 @@ import org.hisp.dhis.dataelement.DataElement; import org.hisp.dhis.translation.Translation; import org.hisp.dhis.translation.TranslationService; +import org.hisp.dhis.user.UserSettingKey; import org.hisp.dhis.user.UserSettingService; import com.google.common.collect.Multimaps; @@ -277,7 +278,7 @@ @Override public Locale getCurrentLocale() { - return (Locale) userSettingService.getUserSetting( UserSettingService.KEY_DB_LOCALE ); + return (Locale) userSettingService.getUserSetting( UserSettingKey.DB_LOCALE ); } @Override === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/i18n/ui/locale/UserSettingLocaleManager.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/i18n/ui/locale/UserSettingLocaleManager.java 2015-10-19 11:25:31 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/i18n/ui/locale/UserSettingLocaleManager.java 2015-12-30 15:44:22 +0000 @@ -35,6 +35,7 @@ import org.hisp.dhis.i18n.locale.LocaleManager; import org.hisp.dhis.i18n.ui.resourcebundle.ResourceBundleManager; import org.hisp.dhis.i18n.ui.resourcebundle.ResourceBundleManagerException; +import org.hisp.dhis.user.UserSettingKey; import org.hisp.dhis.user.UserSettingService; /** @@ -83,7 +84,7 @@ @Override public void setCurrentLocale( Locale locale ) { - userSettingService.saveUserSetting( UserSettingService.KEY_UI_LOCALE, locale ); + userSettingService.saveUserSetting( UserSettingKey.UI_LOCALE, locale ); } @Override @@ -105,7 +106,7 @@ private Locale getUserSelectedLocale() { - return (Locale) userSettingService.getUserSetting( UserSettingService.KEY_UI_LOCALE ); + return (Locale) userSettingService.getUserSetting( UserSettingKey.UI_LOCALE ); } @Override === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/message/DefaultMessageService.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/message/DefaultMessageService.java 2015-12-11 11:21:38 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/message/DefaultMessageService.java 2015-12-30 15:44:22 +0000 @@ -42,12 +42,12 @@ import org.hisp.dhis.email.Email; import org.hisp.dhis.email.EmailService; import org.hisp.dhis.i18n.I18nManager; -import org.hisp.dhis.i18n.locale.LocaleManager; import org.hisp.dhis.setting.SystemSettingManager; import org.hisp.dhis.system.velocity.VelocityManager; import org.hisp.dhis.user.CurrentUserService; import org.hisp.dhis.user.User; import org.hisp.dhis.user.UserGroup; +import org.hisp.dhis.user.UserSettingKey; import org.hisp.dhis.user.UserSettingService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; @@ -428,8 +428,7 @@ values.put( "responseUrl", baseUrl + "/dhis-web-dashboard-integration/readMessage.action?id=" + conversation.getUid() ); - Locale locale = (Locale) userSettingService.getUserSetting( UserSettingService.KEY_UI_LOCALE, - LocaleManager.DEFAULT_LOCALE, conversation.getUser() ); + Locale locale = (Locale) userSettingService.getUserSetting( UserSettingKey.UI_LOCALE, conversation.getUser() ); values.put( "i18n", i18nManager.getI18n( locale ) ); return new VelocityManager().render( values, MESSAGE_EMAIL_FOOTER_TEMPLATE ); === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/message/EmailMessageSender.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/message/EmailMessageSender.java 2015-12-08 19:33:06 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/message/EmailMessageSender.java 2015-12-30 15:44:22 +0000 @@ -29,7 +29,6 @@ */ import static org.apache.commons.lang3.StringUtils.defaultIfEmpty; -import static org.hisp.dhis.user.UserSettingService.KEY_MESSAGE_EMAIL_NOTIFICATION; import java.util.HashMap; import java.util.Set; @@ -46,6 +45,7 @@ import org.hisp.dhis.setting.SystemSettingManager; import org.hisp.dhis.system.velocity.VelocityManager; import org.hisp.dhis.user.User; +import org.hisp.dhis.user.UserSettingKey; import org.hisp.dhis.user.UserSettingService; import org.springframework.scheduling.annotation.Async; @@ -133,7 +133,7 @@ for ( User user : users ) { - boolean doSend = forceSend || (Boolean) userSettingService.getUserSetting( KEY_MESSAGE_EMAIL_NOTIFICATION, false, user ); + boolean doSend = forceSend || (Boolean) userSettingService.getUserSetting( UserSettingKey.MESSAGE_EMAIL_NOTIFICATION, user ); if ( doSend && user.getEmail() != null && !user.getEmail().trim().isEmpty() ) { === 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 2015-12-08 19:33:06 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/security/DefaultSecurityService.java 2015-12-30 15:44:22 +0000 @@ -35,7 +35,6 @@ 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.SettingKey; @@ -46,6 +45,7 @@ import org.hisp.dhis.user.User; import org.hisp.dhis.user.UserCredentials; import org.hisp.dhis.user.UserService; +import org.hisp.dhis.user.UserSettingKey; import org.hisp.dhis.user.UserSettingService; import org.joda.time.DateTime; import org.springframework.beans.factory.annotation.Autowired; @@ -230,7 +230,7 @@ vars.put( "username", credentials.getUsername() ); User user = credentials.getUserInfo(); - Locale locale = (Locale) userSettingService.getUserSetting( UserSettingService.KEY_UI_LOCALE, LocaleManager.DEFAULT_LOCALE, user ); + Locale locale = (Locale) userSettingService.getUserSetting( UserSettingKey.UI_LOCALE, user ); I18n i18n = i18nManager.getI18n( locale ); vars.put( "i18n", i18n ); === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/setting/DefaultStyleManager.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/setting/DefaultStyleManager.java 2015-12-08 19:33:06 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/setting/DefaultStyleManager.java 2015-12-30 15:44:22 +0000 @@ -35,6 +35,7 @@ import org.hisp.dhis.i18n.I18n; import org.hisp.dhis.i18n.I18nManager; +import org.hisp.dhis.user.UserSettingKey; import org.hisp.dhis.user.UserSettingService; import org.springframework.beans.factory.annotation.Autowired; @@ -94,13 +95,13 @@ @Override public void setUserStyle( String style ) { - userSettingService.saveUserSetting( SettingKey.STYLE.getName(), style ); + userSettingService.saveUserSetting( UserSettingKey.STYLE, style ); } @Override public String getCurrentStyle() { - String style = (String) userSettingService.getUserSetting( SettingKey.STYLE.getName() ); + String style = (String) userSettingService.getUserSetting( UserSettingKey.STYLE ); if ( style != null ) { === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/sms/SmsMessageSender.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/sms/SmsMessageSender.java 2015-12-18 11:04:05 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/sms/SmsMessageSender.java 2015-12-30 15:44:22 +0000 @@ -44,6 +44,7 @@ import org.hisp.dhis.system.util.SmsUtils; import org.hisp.dhis.user.CurrentUserService; import org.hisp.dhis.user.User; +import org.hisp.dhis.user.UserSettingKey; import org.hisp.dhis.user.UserSettingService; import org.springframework.beans.factory.annotation.Autowired; @@ -184,7 +185,7 @@ // Receiver is user { Serializable userSetting = userSettingService - .getUserSetting( UserSettingService.KEY_MESSAGE_SMS_NOTIFICATION, null, user ); + .getUserSetting( UserSettingKey.MESSAGE_SMS_NOTIFICATION, user ); return userSetting != null ? (Boolean) userSetting : false; } === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/user/DefaultUserSettingService.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/user/DefaultUserSettingService.java 2015-12-08 19:36:21 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/user/DefaultUserSettingService.java 2015-12-30 17:05:16 +0000 @@ -92,49 +92,41 @@ // ------------------------------------------------------------------------- @Override - public void addUserSetting( UserSetting userSetting ) - { - SETTING_CACHE.invalidate( getCacheKey( userSetting.getName(), userSetting.getUser().getUsername() ) ); - - userSettingStore.addUserSetting( userSetting ); - } - - @Override - public void saveUserSetting( String name, Serializable value, String username ) + public void saveUserSetting( UserSettingKey key, Serializable value, String username ) { UserCredentials credentials = userService.getUserCredentialsByUsername( username ); if ( credentials != null ) { - saveUserSetting( name, value, credentials.getUserInfo() ); + saveUserSetting( key, value, credentials.getUserInfo() ); } } @Override - public void saveUserSetting( String name, Serializable value ) + public void saveUserSetting( UserSettingKey key, Serializable value ) { User currentUser = currentUserService.getCurrentUser(); - saveUserSetting( name, value, currentUser ); + saveUserSetting( key, value, currentUser ); } @Override - public void saveUserSetting( String name, Serializable value, User user ) + public void saveUserSetting( UserSettingKey key, Serializable value, User user ) { if ( user == null ) { return; } - SETTING_CACHE.invalidate( getCacheKey( name, user.getUsername() ) ); + SETTING_CACHE.invalidate( getCacheKey( key.getName(), user.getUsername() ) ); - UserSetting userSetting = userSettingStore.getUserSetting( user, name ); + UserSetting userSetting = userSettingStore.getUserSetting( user, key.getName() ); if ( userSetting == null ) { - userSetting = new UserSetting( user, name, value ); + userSetting = new UserSetting( user, key.getName(), value ); - addUserSetting( userSetting ); + userSettingStore.addUserSetting( userSetting ); } else { @@ -153,13 +145,13 @@ } @Override - public void deleteUserSetting( String name ) + public void deleteUserSetting( UserSettingKey key ) { User currentUser = currentUserService.getCurrentUser(); if ( currentUser != null ) { - UserSetting setting = userSettingStore.getUserSetting( currentUser, name ); + UserSetting setting = userSettingStore.getUserSetting( currentUser, key.getName() ); if ( setting != null ) { @@ -169,9 +161,9 @@ } @Override - public void deleteUserSetting( String name, User user ) + public void deleteUserSetting( UserSettingKey key, User user ) { - UserSetting setting = userSettingStore.getUserSetting( user, name ); + UserSetting setting = userSettingStore.getUserSetting( user, key.getName() ); if ( setting != null ) { @@ -180,26 +172,20 @@ } @Override - public Serializable getUserSetting( String name ) - { - return getUserSetting( name, Optional.empty() ).orElse( null ); - } - - @Override - public Serializable getUserSetting( String name, Serializable defaultValue ) - { - return getUserSetting( name, Optional.empty() ).orElse( defaultValue ); - } - - @Override - public Serializable getUserSetting( String name, Serializable defaultValue, User user ) - { - return getUserSetting( name, Optional.ofNullable( user ) ).orElse( defaultValue ); - } - - private Optional getUserSetting( String name, Optional user ) - { - if ( name == null ) + public Serializable getUserSetting( UserSettingKey key ) + { + return getUserSetting( key, Optional.empty() ).orElse( null ); + } + + @Override + public Serializable getUserSetting( UserSettingKey key, User user ) + { + return getUserSetting( key, Optional.of( user ) ).orElse( null ); + } + + private Optional getUserSetting( UserSettingKey key, Optional user ) + { + if ( key == null ) { return Optional.empty(); } @@ -208,9 +194,9 @@ try { - String cacheKey = getCacheKey( name, username ); + String cacheKey = getCacheKey( key.getName(), username ); - return SETTING_CACHE.get( cacheKey, () -> getUserSettingOptional( username, name ) ); + return SETTING_CACHE.get( cacheKey, () -> getUserSettingOptional( key, username ) ); } catch ( ExecutionException ignored ) { @@ -218,7 +204,7 @@ } } - private Optional getUserSettingOptional( String username, String settingName ) + private Optional getUserSettingOptional( UserSettingKey key, String username ) { UserCredentials userCredentials = userService.getUserCredentialsByUsername( username ); @@ -227,9 +213,9 @@ return Optional.empty(); } - UserSetting setting = userSettingStore.getUserSetting( userCredentials.getUserInfo(), settingName ); + UserSetting setting = userSettingStore.getUserSetting( userCredentials.getUserInfo(), key.getName() ); - return setting != null ? Optional.ofNullable( setting.getValue() ) : Optional.empty(); + return setting != null && setting.hasValue() ? Optional.of( setting.getValue() ) : Optional.ofNullable( key.getDefaultValue() ); } @Override @@ -237,11 +223,11 @@ { User currentUser = currentUserService.getCurrentUser(); - return getAllUserSettings( currentUser ); + return getUserSettings( currentUser ); } - + @Override - public List getAllUserSettings( User user ) + public List getUserSettings( User user ) { if ( user == null ) { === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/user/UserSettingDeletionHandler.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/user/UserSettingDeletionHandler.java 2015-01-17 07:41:26 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/user/UserSettingDeletionHandler.java 2015-12-30 17:05:16 +0000 @@ -57,7 +57,7 @@ @Override public void deleteUser( User user ) { - for ( UserSetting setting : userSettingService.getAllUserSettings( user ) ) + for ( UserSetting setting : userSettingService.getUserSettings( user ) ) { userSettingService.deleteUserSetting( setting ); } === modified file 'dhis-2/dhis-services/dhis-service-core/src/test/java/org/hisp/dhis/user/UserSettingServiceTest.java' --- dhis-2/dhis-services/dhis-service-core/src/test/java/org/hisp/dhis/user/UserSettingServiceTest.java 2015-10-14 17:36:42 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/test/java/org/hisp/dhis/user/UserSettingServiceTest.java 2015-12-30 17:05:16 +0000 @@ -32,10 +32,7 @@ import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; -import static org.hisp.dhis.user.UserSettingService.KEY_ANALYSIS_DISPLAY_PROPERTY; -import static org.hisp.dhis.user.UserSettingService.KEY_STYLE; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; /** * @author Kiran Prakash @@ -67,64 +64,48 @@ @Test public void testSaveGetDeleteUserSetting() { - assertNull( userSettingService.getUserSetting( KEY_ANALYSIS_DISPLAY_PROPERTY, null, userA ) ); - assertNull( userSettingService.getUserSetting( KEY_STYLE, null, userA ) ); - - userSettingService.saveUserSetting( KEY_ANALYSIS_DISPLAY_PROPERTY, "name", "usernameA" ); - userSettingService.saveUserSetting( KEY_STYLE, "blue", "usernameA" ); - - assertEquals( "name", userSettingService.getUserSetting( KEY_ANALYSIS_DISPLAY_PROPERTY, null, userA ) ); - assertEquals( "blue", userSettingService.getUserSetting( KEY_STYLE, null, userA ) ); - - userSettingService.deleteUserSetting( KEY_ANALYSIS_DISPLAY_PROPERTY, userA ); - - assertNull( userSettingService.getUserSetting( KEY_ANALYSIS_DISPLAY_PROPERTY, null, userA ) ); - assertEquals( "blue", userSettingService.getUserSetting( KEY_STYLE, null, userA ) ); - - userSettingService.deleteUserSetting( KEY_STYLE, userA ); - - assertNull( userSettingService.getUserSetting( KEY_ANALYSIS_DISPLAY_PROPERTY, null, userA ) ); - assertNull( userSettingService.getUserSetting( KEY_STYLE, null, userA ) ); + assertEquals( UserSettingKey.ANALYSIS_DISPLAY_PROPERTY.getDefaultValue(), userSettingService.getUserSetting( UserSettingKey.ANALYSIS_DISPLAY_PROPERTY, userA ) ); + assertEquals( UserSettingKey.STYLE.getDefaultValue(), userSettingService.getUserSetting( UserSettingKey.STYLE, userA ) ); + + userSettingService.saveUserSetting( UserSettingKey.ANALYSIS_DISPLAY_PROPERTY, "shortName", "usernameA" ); + userSettingService.saveUserSetting( UserSettingKey.STYLE, "blue", "usernameA" ); + + assertEquals( "shortName", userSettingService.getUserSetting( UserSettingKey.ANALYSIS_DISPLAY_PROPERTY, userA ) ); + assertEquals( "blue", userSettingService.getUserSetting( UserSettingKey.STYLE, userA ) ); + + userSettingService.deleteUserSetting( UserSettingKey.ANALYSIS_DISPLAY_PROPERTY, userA ); + + assertEquals( UserSettingKey.ANALYSIS_DISPLAY_PROPERTY.getDefaultValue(), userSettingService.getUserSetting( UserSettingKey.ANALYSIS_DISPLAY_PROPERTY, userA ) ); + assertEquals( "blue", userSettingService.getUserSetting( UserSettingKey.STYLE, userA ) ); + + userSettingService.deleteUserSetting( UserSettingKey.STYLE, userA ); + + assertEquals( UserSettingKey.ANALYSIS_DISPLAY_PROPERTY.getDefaultValue(), userSettingService.getUserSetting( UserSettingKey.ANALYSIS_DISPLAY_PROPERTY, userA ) ); + assertEquals( UserSettingKey.STYLE.getDefaultValue(), userSettingService.getUserSetting( UserSettingKey.STYLE, userA ) ); } @Test public void testSaveOrUpdateUserSetting() { - userSettingService.saveUserSetting( KEY_ANALYSIS_DISPLAY_PROPERTY, "name", "usernameA" ); - userSettingService.saveUserSetting( KEY_STYLE, "blue", "usernameA" ); - - assertEquals( "name", userSettingService.getUserSetting( KEY_ANALYSIS_DISPLAY_PROPERTY, null, userA ) ); - assertEquals( "blue", userSettingService.getUserSetting( KEY_STYLE, null, userA ) ); - - userSettingService.saveUserSetting( KEY_ANALYSIS_DISPLAY_PROPERTY, "shortName", "usernameA" ); - userSettingService.saveUserSetting( KEY_STYLE, "green", "usernameA" ); - - assertEquals( "shortName", userSettingService.getUserSetting( KEY_ANALYSIS_DISPLAY_PROPERTY, null, userA ) ); - assertEquals( "green", userSettingService.getUserSetting( KEY_STYLE, null, userA ) ); - } - - @Test - public void testGetWithDefaultUserSetting() - { - assertNull( userSettingService.getUserSetting( KEY_ANALYSIS_DISPLAY_PROPERTY, null, userA ) ); - assertNull( userSettingService.getUserSetting( KEY_STYLE, null, userA ) ); - - assertEquals( "shortName", userSettingService.getUserSetting( KEY_ANALYSIS_DISPLAY_PROPERTY, "shortName", userA ) ); - assertEquals( "yellow", userSettingService.getUserSetting( KEY_STYLE, "yellow", userA ) ); - - userSettingService.saveUserSetting( KEY_ANALYSIS_DISPLAY_PROPERTY, "name", "usernameA" ); - userSettingService.saveUserSetting( KEY_STYLE, "blue", "usernameA" ); - - assertEquals( "name", userSettingService.getUserSetting( KEY_ANALYSIS_DISPLAY_PROPERTY, null, userA ) ); - assertEquals( "blue", userSettingService.getUserSetting( KEY_STYLE, null, userA ) ); + userSettingService.saveUserSetting( UserSettingKey.ANALYSIS_DISPLAY_PROPERTY, "name", "usernameA" ); + userSettingService.saveUserSetting( UserSettingKey.STYLE, "blue", "usernameA" ); + + assertEquals( "name", userSettingService.getUserSetting( UserSettingKey.ANALYSIS_DISPLAY_PROPERTY, userA ) ); + assertEquals( "blue", userSettingService.getUserSetting( UserSettingKey.STYLE, userA ) ); + + userSettingService.saveUserSetting( UserSettingKey.ANALYSIS_DISPLAY_PROPERTY, "shortName", "usernameA" ); + userSettingService.saveUserSetting( UserSettingKey.STYLE, "green", "usernameA" ); + + assertEquals( "shortName", userSettingService.getUserSetting( UserSettingKey.ANALYSIS_DISPLAY_PROPERTY, userA ) ); + assertEquals( "green", userSettingService.getUserSetting( UserSettingKey.STYLE, userA ) ); } @Test public void testGetUserSettingsByUser() { - userSettingService.saveUserSetting( KEY_ANALYSIS_DISPLAY_PROPERTY, "name", "usernameA" ); - userSettingService.saveUserSetting( KEY_STYLE, "blue", "usernameA" ); + userSettingService.saveUserSetting( UserSettingKey.ANALYSIS_DISPLAY_PROPERTY, "name", "usernameA" ); + userSettingService.saveUserSetting( UserSettingKey.STYLE, "blue", "usernameA" ); - assertEquals( 2, userSettingService.getAllUserSettings( userA ).size() ); + assertEquals( 2, userSettingService.getUserSettings( userA ).size() ); } } === modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/UserSettingController.java' --- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/UserSettingController.java 2015-09-24 07:21:57 +0000 +++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/UserSettingController.java 2015-12-30 17:05:16 +0000 @@ -1,5 +1,7 @@ package org.hisp.dhis.webapi.controller; +import org.hisp.dhis.dxf2.render.RenderService; + /* * Copyright (c) 2004-2015, University of Oslo * All rights reserved. @@ -29,9 +31,16 @@ */ import org.hisp.dhis.dxf2.webmessage.WebMessageException; -import org.hisp.dhis.system.util.LocaleUtils; +import org.hisp.dhis.user.CurrentUserService; +import org.hisp.dhis.user.User; +import org.hisp.dhis.user.UserCredentials; +import org.hisp.dhis.user.UserService; +import org.hisp.dhis.user.UserSetting; +import org.hisp.dhis.user.UserSettingKey; import org.hisp.dhis.user.UserSettingService; +import org.hisp.dhis.util.ObjectUtils; import org.hisp.dhis.webapi.service.WebMessageService; +import org.hisp.dhis.webapi.utils.ContextUtils; import org.hisp.dhis.webapi.utils.WebMessageUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.MediaType; @@ -44,11 +53,13 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; + import java.io.IOException; import java.io.Serializable; -import java.util.Locale; - -import static org.hisp.dhis.user.UserSettingService.*; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.stream.Collectors; /** * @author Lars Helge Overland @@ -59,13 +70,26 @@ { @Autowired private UserSettingService userSettingService; + + @Autowired + private UserService userService; + + @Autowired + private CurrentUserService currentUserService; @Autowired private WebMessageService webMessageService; + + @Autowired + private RenderService renderService; + + // ------------------------------------------------------------------------- + // Resources + // ------------------------------------------------------------------------- @RequestMapping( value = "/{key}", method = RequestMethod.POST ) public void setUserSetting( - @PathVariable String key, + @PathVariable( value = "key" ) String key, @RequestParam( value = "user", required = false ) String username, @RequestParam( value = "value", required = false ) String value, @RequestBody( required = false ) String valuePayload, @@ -81,43 +105,66 @@ throw new WebMessageException( WebMessageUtils.conflict( "Value must be specified as query param or as payload" ) ); } - value = value != null ? value : valuePayload; + value = ObjectUtils.firstNonNull( value, valuePayload ); + Optional keyEnum = UserSettingKey.getByName( key ); + + if ( !keyEnum.isPresent() ) + { + throw new WebMessageException( WebMessageUtils.conflict( "Key is not supported: " + key ) ); + } + + Serializable valueObject = UserSettingKey.getAsRealClass( key, value ); + if ( username == null ) { - userSettingService.saveUserSetting( key, valueToSet( key, value ) ); - + userSettingService.saveUserSetting( keyEnum.get(), valueObject ); } else { - userSettingService.saveUserSetting( key, valueToSet( key, value ), username ); + userSettingService.saveUserSetting( keyEnum.get(), valueObject, username ); } webMessageService.send( WebMessageUtils.ok( "User setting saved" ), response, request ); } @RequestMapping( value = "/{key}", method = RequestMethod.GET ) - public void getUserSetting( @PathVariable( "key" ) String key, + public void getUserSetting( + @PathVariable( "key" ) String key, @RequestParam( value = "user", required = false ) String username, HttpServletRequest request, HttpServletResponse response ) throws IOException, WebMessageException { + Optional keyEnum = UserSettingKey.getByName( key ); + + if ( !keyEnum.isPresent() ) + { + throw new WebMessageException( WebMessageUtils.conflict( "Key is not supported: " + key ) ); + } + + UserCredentials credentials = userService.getUserCredentialsByUsername( username ); + + if ( credentials == null ) + { + throw new WebMessageException( WebMessageUtils.conflict( "User does not exist: " + username ) ); + } + Serializable value; if ( username == null ) { - value = userSettingService.getUserSetting( key ); + value = userSettingService.getUserSetting( keyEnum.get() ); } else { - value = userSettingService.getUserSetting( key, username ); + value = userSettingService.getUserSetting( keyEnum.get(), credentials.getUser() ); } if ( value == null ) { - throw new WebMessageException( WebMessageUtils.notFound( "User setting not found." ) ); + throw new WebMessageException( WebMessageUtils.notFound( "User setting not found for key: " + key ) ); } - String stringVal = getStringValue( key, value ); + String stringVal = String.valueOf( value ); String contentType = null; @@ -133,34 +180,50 @@ response.setContentType( contentType ); response.getWriter().println( stringVal ); } + + @RequestMapping( method = RequestMethod.GET, produces = ContextUtils.CONTENT_TYPE_JSON ) + public void getUserSettingsByUser( @RequestParam( required = false ) String user, + HttpServletRequest request, HttpServletResponse response ) + throws WebMessageException, IOException + { + UserCredentials credentials = userService.getUserCredentialsByUsername( user ); + User us = credentials != null ? credentials.getUser() : null; + + if ( us == null ) + { + us = currentUserService.getCurrentUser(); + } + + List settings = userSettingService.getUserSettings( us ); + + Map map = asMap( settings ); + + renderService.toJson( response.getOutputStream(), map ); + } + @RequestMapping( value = "/{key}", method = RequestMethod.DELETE ) public void removeSystemSetting( @PathVariable( "key" ) String key ) - { - userSettingService.deleteUserSetting( key ); - } - - private Serializable valueToSet( String key, String value ) - { - if ( KEY_UI_LOCALE.equals( key ) || KEY_DB_LOCALE.equals( key ) ) - { - return LocaleUtils.getLocale( value ); - } - else - { - return value; - } - } - - private String getStringValue( String key, Serializable value ) - { - if ( KEY_UI_LOCALE.equals( key ) || KEY_DB_LOCALE.equals( key ) ) - { - return ((Locale) value).getLanguage(); - } - else - { - return String.valueOf( value ); - } + throws WebMessageException + { + Optional keyEnum = UserSettingKey.getByName( key ); + + if ( !keyEnum.isPresent() ) + { + throw new WebMessageException( WebMessageUtils.conflict( "Key is not supported: " + key ) ); + } + + userSettingService.deleteUserSetting( keyEnum.get() ); + } + + // ------------------------------------------------------------------------- + // Supportive methods + // ------------------------------------------------------------------------- + + private Map asMap( List settings ) + { + return settings.stream(). + filter( s -> s.getName() != null && s.getValue() != null ). + collect( Collectors.toMap( UserSetting::getName, UserSetting::getValue ) ); } } === modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/user/CurrentUserController.java' --- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/user/CurrentUserController.java 2015-11-18 16:46:20 +0000 +++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/user/CurrentUserController.java 2015-12-30 15:44:22 +0000 @@ -60,6 +60,7 @@ import org.hisp.dhis.user.User; import org.hisp.dhis.user.UserGroupService; import org.hisp.dhis.user.UserService; +import org.hisp.dhis.user.UserSettingKey; import org.hisp.dhis.user.UserSettingService; import org.hisp.dhis.webapi.controller.exception.FilterTooShortException; import org.hisp.dhis.webapi.controller.exception.NotAuthenticatedException; @@ -99,8 +100,6 @@ import java.util.Map; import java.util.Set; -import static org.hisp.dhis.user.UserSettingService.*; - /** * @author Morten Olav Hansen */ @@ -358,11 +357,11 @@ userAccount.setInterests( currentUser.getInterests() ); userAccount.setLanguages( currentUser.getLanguages() ); - userAccount.getSettings().put( KEY_UI_LOCALE, TextUtils.toString( userSettingService.getUserSetting( KEY_UI_LOCALE ) ) ); - userAccount.getSettings().put( KEY_DB_LOCALE, TextUtils.toString( userSettingService.getUserSetting( KEY_DB_LOCALE ) ) ); - userAccount.getSettings().put( KEY_MESSAGE_EMAIL_NOTIFICATION, TextUtils.toString( userSettingService.getUserSetting( KEY_MESSAGE_EMAIL_NOTIFICATION ) ) ); - userAccount.getSettings().put( KEY_MESSAGE_SMS_NOTIFICATION, TextUtils.toString( userSettingService.getUserSetting( KEY_MESSAGE_SMS_NOTIFICATION ) ) ); - userAccount.getSettings().put( KEY_ANALYSIS_DISPLAY_PROPERTY, TextUtils.toString( userSettingService.getUserSetting( KEY_ANALYSIS_DISPLAY_PROPERTY ) ) ); + userAccount.getSettings().put( UserSettingKey.UI_LOCALE.getName(), TextUtils.toString( userSettingService.getUserSetting( UserSettingKey.UI_LOCALE ) ) ); + userAccount.getSettings().put( UserSettingKey.DB_LOCALE.getName(), TextUtils.toString( userSettingService.getUserSetting( UserSettingKey.DB_LOCALE ) ) ); + userAccount.getSettings().put( UserSettingKey.MESSAGE_EMAIL_NOTIFICATION.getName(), TextUtils.toString( userSettingService.getUserSetting( UserSettingKey.MESSAGE_EMAIL_NOTIFICATION ) ) ); + userAccount.getSettings().put( UserSettingKey.MESSAGE_SMS_NOTIFICATION.getName(), TextUtils.toString( userSettingService.getUserSetting( UserSettingKey.MESSAGE_SMS_NOTIFICATION ) ) ); + userAccount.getSettings().put( UserSettingKey.ANALYSIS_DISPLAY_PROPERTY.getName(), TextUtils.toString( userSettingService.getUserSetting( UserSettingKey.ANALYSIS_DISPLAY_PROPERTY ) ) ); return userAccount; } === modified file 'dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/interceptor/UserSettingInterceptor.java' --- dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/interceptor/UserSettingInterceptor.java 2015-01-17 07:41:26 +0000 +++ dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/interceptor/UserSettingInterceptor.java 2015-12-30 15:44:22 +0000 @@ -28,13 +28,11 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import static org.hisp.dhis.user.UserSettingService.KEY_STYLE; -import static org.hisp.dhis.user.UserSettingService.KEY_STYLE_DIRECTORY; - import java.util.HashMap; import java.util.Map; import org.hisp.dhis.setting.StyleManager; +import org.hisp.dhis.user.UserSettingKey; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.interceptor.Interceptor; @@ -76,8 +74,8 @@ { Map map = new HashMap<>(); - map.put( KEY_STYLE, styleManager.getCurrentStyle() ); - map.put( KEY_STYLE_DIRECTORY, styleManager.getCurrentStyleDirectory() ); + map.put( UserSettingKey.STYLE.getName(), styleManager.getCurrentStyle() ); + map.put( UserSettingKey.STYLE_DIRECTORY.getName(), styleManager.getCurrentStyleDirectory() ); invocation.getStack().push( map ); === modified file 'dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/settings/user/action/GetGeneralSettingsAction.java' --- dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/settings/user/action/GetGeneralSettingsAction.java 2015-10-16 20:17:09 +0000 +++ dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/settings/user/action/GetGeneralSettingsAction.java 2015-12-30 15:44:22 +0000 @@ -28,20 +28,14 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import static org.hisp.dhis.user.UserSettingService.DEFAULT_ANALYSIS_DISPLAY_PROPERTY; -import static org.hisp.dhis.user.UserSettingService.KEY_ANALYSIS_DISPLAY_PROPERTY; -import static org.hisp.dhis.user.UserSettingService.KEY_MESSAGE_EMAIL_NOTIFICATION; -import static org.hisp.dhis.user.UserSettingService.KEY_MESSAGE_SMS_NOTIFICATION; - import java.util.List; import java.util.Locale; -import java.io.Serializable; - import org.hisp.dhis.i18n.I18nService; import org.hisp.dhis.i18n.locale.LocaleManager; import org.hisp.dhis.setting.StyleManager; import org.hisp.dhis.setting.StyleObject; +import org.hisp.dhis.user.UserSettingKey; import org.hisp.dhis.user.UserSettingService; import com.opensymphony.xwork2.Action; @@ -183,12 +177,11 @@ currentStyle = styleManager.getCurrentStyle(); - analysisDisplayProperty = (String) userSettingService.getUserSetting( KEY_ANALYSIS_DISPLAY_PROPERTY, - (Serializable) DEFAULT_ANALYSIS_DISPLAY_PROPERTY ); - - messageEmailNotification = (Boolean) userSettingService.getUserSetting( KEY_MESSAGE_EMAIL_NOTIFICATION, false ); - - messageSmsNotification = (Boolean) userSettingService.getUserSetting( KEY_MESSAGE_SMS_NOTIFICATION, false ); + analysisDisplayProperty = (String) userSettingService.getUserSetting( UserSettingKey.ANALYSIS_DISPLAY_PROPERTY ); + + messageEmailNotification = (Boolean) userSettingService.getUserSetting( UserSettingKey.MESSAGE_EMAIL_NOTIFICATION ); + + messageSmsNotification = (Boolean) userSettingService.getUserSetting( UserSettingKey.MESSAGE_SMS_NOTIFICATION ); return SUCCESS; } === modified file 'dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/settings/user/action/SetGeneralSettingsAction.java' --- dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/settings/user/action/SetGeneralSettingsAction.java 2015-01-17 07:41:26 +0000 +++ dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/settings/user/action/SetGeneralSettingsAction.java 2015-12-30 15:44:22 +0000 @@ -28,15 +28,11 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import static org.hisp.dhis.user.UserSettingService.KEY_DB_LOCALE; -import static org.hisp.dhis.user.UserSettingService.KEY_MESSAGE_EMAIL_NOTIFICATION; -import static org.hisp.dhis.user.UserSettingService.KEY_MESSAGE_SMS_NOTIFICATION; -import static org.hisp.dhis.user.UserSettingService.KEY_ANALYSIS_DISPLAY_PROPERTY; - import org.hisp.dhis.i18n.I18n; import org.hisp.dhis.i18n.locale.LocaleManager; import org.hisp.dhis.setting.StyleManager; import org.hisp.dhis.system.util.LocaleUtils; +import org.hisp.dhis.user.UserSettingKey; import org.hisp.dhis.user.UserSettingService; import com.opensymphony.xwork2.Action; @@ -143,15 +139,13 @@ { localeManager.setCurrentLocale( LocaleUtils.getLocale( currentLocale ) ); - userSettingService.saveUserSetting( KEY_DB_LOCALE, LocaleUtils.getLocale( currentLocaleDb ) ); + userSettingService.saveUserSetting( UserSettingKey.DB_LOCALE, LocaleUtils.getLocale( currentLocaleDb ) ); styleManager.setUserStyle( currentStyle ); - userSettingService.saveUserSetting( KEY_MESSAGE_EMAIL_NOTIFICATION, messageEmailNotification ); - - userSettingService.saveUserSetting( KEY_MESSAGE_SMS_NOTIFICATION, messageSmsNotification ); - - userSettingService.saveUserSetting( KEY_ANALYSIS_DISPLAY_PROPERTY, analysisDisplayProperty ); + userSettingService.saveUserSetting( UserSettingKey.MESSAGE_EMAIL_NOTIFICATION, messageEmailNotification ); + userSettingService.saveUserSetting( UserSettingKey.MESSAGE_SMS_NOTIFICATION, messageSmsNotification ); + userSettingService.saveUserSetting( UserSettingKey.ANALYSIS_DISPLAY_PROPERTY, analysisDisplayProperty ); message = i18n.getString( "settings_updated" ); === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/java/org/hisp/dhis/dd/action/dataelement/GetDataElementListAction.java' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/java/org/hisp/dhis/dd/action/dataelement/GetDataElementListAction.java 2015-06-11 12:24:58 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/java/org/hisp/dhis/dd/action/dataelement/GetDataElementListAction.java 2015-12-30 15:44:22 +0000 @@ -29,7 +29,6 @@ */ import static org.apache.commons.lang3.StringUtils.isNotBlank; -import static org.hisp.dhis.user.UserSettingService.KEY_CURRENT_DOMAIN_TYPE; import java.util.Collections; import java.util.List; @@ -39,6 +38,7 @@ import org.hisp.dhis.dataelement.DataElementDomain; import org.hisp.dhis.dataelement.DataElementService; import org.hisp.dhis.paging.ActionPagingSupport; +import org.hisp.dhis.user.UserSettingKey; import org.hisp.dhis.user.UserSettingService; /** @@ -113,17 +113,17 @@ { if ( domainType == null ) // None, get current domain type { - domainType = (String) userSettingService.getUserSetting( KEY_CURRENT_DOMAIN_TYPE ); + domainType = (String) userSettingService.getUserSetting( UserSettingKey.CURRENT_DOMAIN_TYPE ); } else if ( "all".equals( domainType ) ) // All, reset current domain type { - userSettingService.saveUserSetting( KEY_CURRENT_DOMAIN_TYPE, null ); + userSettingService.deleteUserSetting( UserSettingKey.CURRENT_DOMAIN_TYPE ); domainType = null; } else // Specified, set current domain type { - userSettingService.saveUserSetting( KEY_CURRENT_DOMAIN_TYPE, domainType ); + userSettingService.saveUserSetting( UserSettingKey.CURRENT_DOMAIN_TYPE, domainType ); } // --------------------------------------------------------------------- === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/java/org/hisp/dhis/dataset/action/dataentryform/SetAutoSaveSettingAction.java' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/java/org/hisp/dhis/dataset/action/dataentryform/SetAutoSaveSettingAction.java 2015-01-17 07:41:26 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/java/org/hisp/dhis/dataset/action/dataentryform/SetAutoSaveSettingAction.java 2015-12-30 15:44:22 +0000 @@ -1,5 +1,7 @@ package org.hisp.dhis.dataset.action.dataentryform; +import org.hisp.dhis.user.UserSettingKey; + /* * Copyright (c) 2004-2015, University of Oslo * All rights reserved. @@ -70,7 +72,7 @@ public String execute() throws Exception { - userSettingService.saveUserSetting( UserSettingService.AUTO_SAVE_DATA_ENTRY_FORM, autoSave ); + userSettingService.saveUserSetting( UserSettingKey.AUTO_SAVE_DATA_ENTRY_FORM, autoSave ); return SUCCESS; } === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/java/org/hisp/dhis/dataset/action/dataentryform/ViewDataEntryFormAction.java' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/java/org/hisp/dhis/dataset/action/dataentryform/ViewDataEntryFormAction.java 2015-03-19 12:47:13 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/java/org/hisp/dhis/dataset/action/dataentryform/ViewDataEntryFormAction.java 2015-12-30 15:44:22 +0000 @@ -42,6 +42,7 @@ import org.hisp.dhis.dataset.DataSetService; import org.hisp.dhis.i18n.I18n; import org.hisp.dhis.setting.SystemSettingManager; +import org.hisp.dhis.user.UserSettingKey; import org.hisp.dhis.user.UserSettingService; import com.opensymphony.xwork2.Action; @@ -173,7 +174,7 @@ dataEntryValue = dataEntryForm != null ? dataEntryFormService.prepareDataEntryFormForEdit( dataEntryForm, dataSet, i18n ) : ""; - autoSave = (Boolean) userSettingService.getUserSetting( UserSettingService.AUTO_SAVE_DATA_ENTRY_FORM, false ); + autoSave = (Boolean) userSettingService.getUserSetting( UserSettingKey.AUTO_SAVE_DATA_ENTRY_FORM ); dataElementList = new ArrayList<>( dataSet.getDataElements() ); === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-program/src/main/java/org/hisp/dhis/trackedentity/action/dataentryform/SetAutoSaveDataEntrySettingAction.java' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-program/src/main/java/org/hisp/dhis/trackedentity/action/dataentryform/SetAutoSaveDataEntrySettingAction.java 2015-01-17 07:41:26 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-program/src/main/java/org/hisp/dhis/trackedentity/action/dataentryform/SetAutoSaveDataEntrySettingAction.java 2015-12-30 15:44:22 +0000 @@ -1,5 +1,7 @@ package org.hisp.dhis.trackedentity.action.dataentryform; +import org.hisp.dhis.user.UserSettingKey; + /* * Copyright (c) 2004-2015, University of Oslo * All rights reserved. @@ -70,7 +72,7 @@ public String execute() throws Exception { - userSettingService.saveUserSetting( UserSettingService.AUTO_SAVE_CASE_ENTRY_FORM, autoSave ); + userSettingService.saveUserSetting( UserSettingKey.AUTO_SAVE_CASE_ENTRY_FORM, autoSave ); return SUCCESS; } === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-program/src/main/java/org/hisp/dhis/trackedentity/action/dataentryform/SetAutoSaveProgramEntryFormSettingAction.java' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-program/src/main/java/org/hisp/dhis/trackedentity/action/dataentryform/SetAutoSaveProgramEntryFormSettingAction.java 2015-06-19 07:35:50 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-program/src/main/java/org/hisp/dhis/trackedentity/action/dataentryform/SetAutoSaveProgramEntryFormSettingAction.java 2015-12-30 15:44:22 +0000 @@ -1,5 +1,7 @@ package org.hisp.dhis.trackedentity.action.dataentryform; +import org.hisp.dhis.user.UserSettingKey; + /* * Copyright (c) 2004-2015, University of Oslo * All rights reserved. @@ -70,7 +72,7 @@ public String execute() throws Exception { - userSettingService.saveUserSetting( UserSettingService.AUTO_SAVE_TRACKED_ENTITY_REGISTRATION_ENTRY_FORM, autoSave ); + userSettingService.saveUserSetting( UserSettingKey.AUTO_SAVE_TRACKED_ENTITY_REGISTRATION_ENTRY_FORM, autoSave ); return SUCCESS; } === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-program/src/main/java/org/hisp/dhis/trackedentity/action/dataentryform/ViewDataEntryFormAction.java' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-program/src/main/java/org/hisp/dhis/trackedentity/action/dataentryform/ViewDataEntryFormAction.java 2015-06-16 13:17:59 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-program/src/main/java/org/hisp/dhis/trackedentity/action/dataentryform/ViewDataEntryFormAction.java 2015-12-30 15:44:22 +0000 @@ -40,6 +40,7 @@ import org.hisp.dhis.program.ProgramStage; import org.hisp.dhis.program.ProgramStageService; import org.hisp.dhis.setting.SystemSettingManager; +import org.hisp.dhis.user.UserSettingKey; import org.hisp.dhis.user.UserSettingService; import com.opensymphony.xwork2.Action; @@ -219,7 +220,7 @@ flags = systemSettingManager.getFlags(); - autoSave = (Boolean) userSettingService.getUserSetting( UserSettingService.AUTO_SAVE_CASE_ENTRY_FORM, false ); + autoSave = (Boolean) userSettingService.getUserSetting( UserSettingKey.AUTO_SAVE_CASE_ENTRY_FORM ); return SUCCESS; } === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-program/src/main/java/org/hisp/dhis/trackedentity/action/dataentryform/ViewProgramEntryFormAction.java' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-program/src/main/java/org/hisp/dhis/trackedentity/action/dataentryform/ViewProgramEntryFormAction.java 2015-07-02 07:05:55 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-program/src/main/java/org/hisp/dhis/trackedentity/action/dataentryform/ViewProgramEntryFormAction.java 2015-12-30 15:44:22 +0000 @@ -40,6 +40,7 @@ import org.hisp.dhis.program.ProgramType; import org.hisp.dhis.setting.SystemSettingManager; import org.hisp.dhis.trackedentity.TrackedEntityAttribute; +import org.hisp.dhis.user.UserSettingKey; import org.hisp.dhis.user.UserSettingService; import com.opensymphony.xwork2.Action; @@ -153,7 +154,7 @@ flags = systemSettingManager.getFlags(); autoSave = (Boolean) userSettingService.getUserSetting( - UserSettingService.AUTO_SAVE_TRACKED_ENTITY_REGISTRATION_ENTRY_FORM, false ); + UserSettingKey.AUTO_SAVE_TRACKED_ENTITY_REGISTRATION_ENTRY_FORM ); return SUCCESS; } === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/java/org/hisp/dhis/user/action/AddUserAction.java' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/java/org/hisp/dhis/user/action/AddUserAction.java 2015-11-23 06:52:49 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/java/org/hisp/dhis/user/action/AddUserAction.java 2015-12-30 15:44:22 +0000 @@ -50,7 +50,7 @@ import org.hisp.dhis.user.UserGroup; import org.hisp.dhis.user.UserGroupService; import org.hisp.dhis.user.UserService; -import org.hisp.dhis.user.UserSetting; +import org.hisp.dhis.user.UserSettingKey; import org.hisp.dhis.user.UserSettingService; import org.hisp.dhis.webapi.utils.ContextUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -396,9 +396,9 @@ // User settings // --------------------------------------------------------------------- - userSettingService.addUserSetting( new UserSetting( user, UserSettingService.KEY_UI_LOCALE, LocaleUtils.getLocale( localeUi ) ) ); - userSettingService.addUserSetting( new UserSetting( user, UserSettingService.KEY_DB_LOCALE, LocaleUtils.getLocale( localeDb ) ) ); - + userSettingService.saveUserSetting( UserSettingKey.UI_LOCALE, LocaleUtils.getLocale( localeUi ), user ); + userSettingService.saveUserSetting( UserSettingKey.DB_LOCALE, LocaleUtils.getLocale( localeDb ), user ); + if ( ACCOUNT_ACTION_INVITE.equals( accountAction ) ) { RestoreOptions restoreOptions = inviteUsername == null || inviteUsername.isEmpty() ? RestoreOptions.INVITE_WITH_USERNAME_CHOICE : RestoreOptions.INVITE_WITH_DEFINED_USERNAME; === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/java/org/hisp/dhis/user/action/SetupTreeAction.java' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/java/org/hisp/dhis/user/action/SetupTreeAction.java 2015-11-23 09:06:48 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/java/org/hisp/dhis/user/action/SetupTreeAction.java 2015-12-30 15:44:22 +0000 @@ -44,6 +44,7 @@ import org.hisp.dhis.user.UserCredentials; import org.hisp.dhis.user.UserGroup; import org.hisp.dhis.user.UserService; +import org.hisp.dhis.user.UserSettingKey; import org.hisp.dhis.user.UserSettingService; import org.springframework.beans.factory.annotation.Autowired; @@ -54,9 +55,6 @@ import java.util.Locale; import java.util.Map; -import static org.hisp.dhis.user.UserSettingService.KEY_DB_LOCALE; -import static org.hisp.dhis.user.UserSettingService.KEY_UI_LOCALE; - /** * @author Nguyen Hong Duc * @version $Id: SetupTreeAction.java 5556 2008-08-20 11:36:20Z abyot $ @@ -255,9 +253,9 @@ attributeValues = AttributeUtils.getAttributeValueMap( user.getAttributeValues() ); - currentLocale = (Locale) userSettingService.getUserSetting( KEY_UI_LOCALE, LocaleManager.DEFAULT_LOCALE, user ); + currentLocale = (Locale) userSettingService.getUserSetting( UserSettingKey.UI_LOCALE, user ); - currentLocaleDb = (Locale) userSettingService.getUserSetting( KEY_DB_LOCALE, null, user ); + currentLocaleDb = (Locale) userSettingService.getUserSetting( UserSettingKey.DB_LOCALE, user ); } else { === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/java/org/hisp/dhis/user/action/UpdateUserAction.java' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/java/org/hisp/dhis/user/action/UpdateUserAction.java 2015-11-23 06:52:49 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/java/org/hisp/dhis/user/action/UpdateUserAction.java 2015-12-30 15:44:22 +0000 @@ -47,6 +47,7 @@ import org.hisp.dhis.user.UserGroup; import org.hisp.dhis.user.UserGroupService; import org.hisp.dhis.user.UserService; +import org.hisp.dhis.user.UserSettingKey; import org.hisp.dhis.user.UserSettingService; import org.springframework.beans.factory.annotation.Autowired; @@ -369,8 +370,8 @@ // User settings // --------------------------------------------------------------------- - userSettingService.saveUserSetting( UserSettingService.KEY_UI_LOCALE, LocaleUtils.getLocale( localeUi ), user ); - userSettingService.saveUserSetting( UserSettingService.KEY_DB_LOCALE, LocaleUtils.getLocale( localeDb ), user ); + userSettingService.saveUserSetting( UserSettingKey.UI_LOCALE, LocaleUtils.getLocale( localeUi ), user ); + userSettingService.saveUserSetting( UserSettingKey.DB_LOCALE, LocaleUtils.getLocale( localeDb ), user ); // --------------------------------------------------------------------- // User groups