summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEdwin Kempin <ekempin@google.com>2018-10-25 11:38:52 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2018-10-25 11:38:52 +0000
commitadbef6be8e788914a370464844e3d444645138dd (patch)
tree2db9a357d74f92d784fc9f06b6d466e2e2a23a64
parent37c8394c7a106e72d01b606b21b979eb79659a14 (diff)
parent47867e26948a32925b4cc8915212e543bd50727e (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.java10
-rw-r--r--javatests/com/google/gerrit/acceptance/api/accounts/AccountIT.java16
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;