diff options
author | Edwin Kempin <ekempin@google.com> | 2018-10-25 11:38:52 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2018-10-25 11:38:52 +0000 |
commit | adbef6be8e788914a370464844e3d444645138dd (patch) | |
tree | 2db9a357d74f92d784fc9f06b6d466e2e2a23a64 | |
parent | 37c8394c7a106e72d01b606b21b979eb79659a14 (diff) | |
parent | 47867e26948a32925b4cc8915212e543bd50727e (diff) |
Merge "Merge branch 'stable-2.15' into stable-2.16" into stable-2.16
-rw-r--r-- | java/com/google/gerrit/server/account/AccountManager.java | 10 | ||||
-rw-r--r-- | javatests/com/google/gerrit/acceptance/api/accounts/AccountIT.java | 16 |
2 files changed, 24 insertions, 2 deletions
diff --git a/java/com/google/gerrit/server/account/AccountManager.java b/java/com/google/gerrit/server/account/AccountManager.java index e2194cca7e..d0bd06994f 100644 --- a/java/com/google/gerrit/server/account/AccountManager.java +++ b/java/com/google/gerrit/server/account/AccountManager.java @@ -248,10 +248,16 @@ public class AccountManager { } } - if (!realm.allowsEdit(AccountFieldName.FULL_NAME) - && !Strings.isNullOrEmpty(who.getDisplayName()) + if (!Strings.isNullOrEmpty(who.getDisplayName()) && !Objects.equals(user.getAccount().getFullName(), who.getDisplayName())) { accountUpdates.add(u -> u.setFullName(who.getDisplayName())); + if (realm.allowsEdit(AccountFieldName.FULL_NAME)) { + accountUpdates.add(a -> a.setFullName(who.getDisplayName())); + } else { + logger.atWarning().log( + "Not changing already set display name '%s' to '%s'", + user.getAccount().getFullName(), who.getDisplayName()); + } } if (!realm.allowsEdit(AccountFieldName.USER_NAME) diff --git a/javatests/com/google/gerrit/acceptance/api/accounts/AccountIT.java b/javatests/com/google/gerrit/acceptance/api/accounts/AccountIT.java index f04cefc361..5e46a03126 100644 --- a/javatests/com/google/gerrit/acceptance/api/accounts/AccountIT.java +++ b/javatests/com/google/gerrit/acceptance/api/accounts/AccountIT.java @@ -103,9 +103,11 @@ import com.google.gerrit.reviewdb.client.Project; import com.google.gerrit.reviewdb.client.RefNames; import com.google.gerrit.server.Sequences; import com.google.gerrit.server.ServerInitiated; +import com.google.gerrit.server.account.AccountManager; import com.google.gerrit.server.account.AccountProperties; import com.google.gerrit.server.account.AccountState; import com.google.gerrit.server.account.AccountsUpdate; +import com.google.gerrit.server.account.AuthRequest; import com.google.gerrit.server.account.Emails; import com.google.gerrit.server.account.ProjectWatches; import com.google.gerrit.server.account.ProjectWatches.NotifyType; @@ -229,6 +231,8 @@ public class AccountIT extends AbstractDaemonTest { @Inject private DynamicSet<AccountActivationValidationListener> accountActivationValidationListeners; + @Inject private AccountManager accountManager; + private AccountIndexedCounter accountIndexedCounter; private RegistrationHandle accountIndexEventCounterHandle; private RefUpdateCounter refUpdateCounter; @@ -2716,6 +2720,18 @@ public class AccountIT extends AbstractDaemonTest { } } + @Test + public void updateDisplayName() throws Exception { + String name = name("test"); + gApi.accounts().create(name); + AuthRequest who = AuthRequest.forUser(name); + accountManager.authenticate(who); + assertThat(gApi.accounts().id(name).get().name).isEqualTo(name); + who.setDisplayName("Something Else"); + accountManager.authenticate(who); + assertThat(gApi.accounts().id(name).get().name).isEqualTo("Something Else"); + } + private void createDraft(PushOneCommit.Result r, String path, String message) throws Exception { DraftInput in = new DraftInput(); in.path = path; |