From a502d96a860456ec5e8c96761db70f7cabb74751 Mon Sep 17 00:00:00 2001 From: Paul Martin <paul@paulsputer.com> Date: Sat, 30 Apr 2016 04:19:14 -0400 Subject: [PATCH] Merge pull request #1073 from gitblit/1062-DocEditorUpdates --- src/main/java/com/gitblit/ConfigUserService.java | 65 +++++++++++++++++++++----------- 1 files changed, 43 insertions(+), 22 deletions(-) diff --git a/src/main/java/com/gitblit/ConfigUserService.java b/src/main/java/com/gitblit/ConfigUserService.java index 9b4dd7f..6d7230f 100644 --- a/src/main/java/com/gitblit/ConfigUserService.java +++ b/src/main/java/com/gitblit/ConfigUserService.java @@ -24,6 +24,7 @@ import java.util.Collections; import java.util.HashSet; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; @@ -36,6 +37,8 @@ import com.gitblit.Constants.AccessPermission; import com.gitblit.Constants.AccountType; +import com.gitblit.Constants.Role; +import com.gitblit.Constants.Transport; import com.gitblit.manager.IRuntimeManager; import com.gitblit.models.TeamModel; import com.gitblit.models.UserModel; @@ -95,6 +98,10 @@ private static final String STARRED = "starred"; private static final String LOCALE = "locale"; + + private static final String EMAILONMYTICKETCHANGES = "emailMeOnMyTicketChanges"; + + private static final String TRANSPORT = "transport"; private static final String ACCOUNTTYPE = "accountType"; @@ -707,30 +714,43 @@ config.setBoolean(USER, model.username, DISABLED, true); } if (model.getPreferences() != null) { - if (!StringUtils.isEmpty(model.getPreferences().locale)) { - config.setString(USER, model.username, LOCALE, model.getPreferences().locale); + Locale locale = model.getPreferences().getLocale(); + if (locale != null) { + String val; + if (StringUtils.isEmpty(locale.getCountry())) { + val = locale.getLanguage(); + } else { + val = locale.getLanguage() + "_" + locale.getCountry(); + } + config.setString(USER, model.username, LOCALE, val); + } + + config.setBoolean(USER, model.username, EMAILONMYTICKETCHANGES, model.getPreferences().isEmailMeOnMyTicketChanges()); + + if (model.getPreferences().getTransport() != null) { + config.setString(USER, model.username, TRANSPORT, model.getPreferences().getTransport().name()); } } // user roles List<String> roles = new ArrayList<String>(); if (model.canAdmin) { - roles.add(Constants.ADMIN_ROLE); + roles.add(Role.ADMIN.getRole()); } if (model.canFork) { - roles.add(Constants.FORK_ROLE); + roles.add(Role.FORK.getRole()); } if (model.canCreate) { - roles.add(Constants.CREATE_ROLE); + roles.add(Role.CREATE.getRole()); } if (model.excludeFromFederation) { - roles.add(Constants.NOT_FEDERATED_ROLE); + roles.add(Role.NOT_FEDERATED.getRole()); } if (roles.size() == 0) { // we do this to ensure that user record with no password // is written. otherwise, StoredConfig optimizes that account // away. :( - roles.add(Constants.NO_ROLE); + roles.add(Role.NONE.getRole()); } config.setStringList(USER, model.username, ROLE, roles); @@ -759,18 +779,18 @@ // team roles List<String> roles = new ArrayList<String>(); if (model.canAdmin) { - roles.add(Constants.ADMIN_ROLE); + roles.add(Role.ADMIN.getRole()); } if (model.canFork) { - roles.add(Constants.FORK_ROLE); + roles.add(Role.FORK.getRole()); } if (model.canCreate) { - roles.add(Constants.CREATE_ROLE); + roles.add(Role.CREATE.getRole()); } if (roles.size() == 0) { // we do this to ensure that team record is written. // Otherwise, StoredConfig might optimizes that record away. - roles.add(Constants.NO_ROLE); + roles.add(Role.NONE.getRole()); } config.setStringList(TEAM, model.name, ROLE, roles); if (model.accountType != null) { @@ -870,9 +890,6 @@ user.displayName = config.getString(USER, username, DISPLAYNAME); user.emailAddress = config.getString(USER, username, EMAILADDRESS); user.accountType = AccountType.fromString(config.getString(USER, username, ACCOUNTTYPE)); - if (Constants.EXTERNAL_ACCOUNT.equals(user.password) && user.accountType.isLocal()) { - user.accountType = AccountType.EXTERNAL; - } user.disabled = config.getBoolean(USER, username, DISABLED, false); user.organizationalUnit = config.getString(USER, username, ORGANIZATIONALUNIT); user.organization = config.getString(USER, username, ORGANIZATION); @@ -880,18 +897,22 @@ user.stateProvince = config.getString(USER, username, STATEPROVINCE); user.countryCode = config.getString(USER, username, COUNTRYCODE); user.cookie = config.getString(USER, username, COOKIE); - user.getPreferences().locale = config.getString(USER, username, LOCALE); if (StringUtils.isEmpty(user.cookie) && !StringUtils.isEmpty(user.password)) { user.cookie = StringUtils.getSHA1(user.username + user.password); } + // preferences + user.getPreferences().setLocale(config.getString(USER, username, LOCALE)); + user.getPreferences().setEmailMeOnMyTicketChanges(config.getBoolean(USER, username, EMAILONMYTICKETCHANGES, true)); + user.getPreferences().setTransport(Transport.fromString(config.getString(USER, username, TRANSPORT))); + // user roles Set<String> roles = new HashSet<String>(Arrays.asList(config.getStringList( USER, username, ROLE))); - user.canAdmin = roles.contains(Constants.ADMIN_ROLE); - user.canFork = roles.contains(Constants.FORK_ROLE); - user.canCreate = roles.contains(Constants.CREATE_ROLE); - user.excludeFromFederation = roles.contains(Constants.NOT_FEDERATED_ROLE); + user.canAdmin = roles.contains(Role.ADMIN.getRole()); + user.canFork = roles.contains(Role.FORK.getRole()); + user.canCreate = roles.contains(Role.CREATE.getRole()); + user.excludeFromFederation = roles.contains(Role.NOT_FEDERATED.getRole()); // repository memberships if (!user.canAdmin) { @@ -924,9 +945,9 @@ TeamModel team = new TeamModel(teamname); Set<String> roles = new HashSet<String>(Arrays.asList(config.getStringList( TEAM, teamname, ROLE))); - team.canAdmin = roles.contains(Constants.ADMIN_ROLE); - team.canFork = roles.contains(Constants.FORK_ROLE); - team.canCreate = roles.contains(Constants.CREATE_ROLE); + team.canAdmin = roles.contains(Role.ADMIN.getRole()); + team.canFork = roles.contains(Role.FORK.getRole()); + team.canCreate = roles.contains(Role.CREATE.getRole()); team.accountType = AccountType.fromString(config.getString(TEAM, teamname, ACCOUNTTYPE)); if (!team.canAdmin) { -- Gitblit v1.9.1