ExternalUser: Allow specifying a PropertyMap
PropertyMap is a concept of CurrentUser to store or cache per-user
state. This state is immutable for the lifetime of the object.
With this commit, we allow specifying this state for ExternalUser.
Change-Id: I41fc3d148d3cf3a0870f1bde1de5dd37ae0ebea5
diff --git a/java/com/google/gerrit/server/ExternalUser.java b/java/com/google/gerrit/server/ExternalUser.java
index cb7d559..9680f3e 100644
--- a/java/com/google/gerrit/server/ExternalUser.java
+++ b/java/com/google/gerrit/server/ExternalUser.java
@@ -38,7 +38,9 @@
public interface Factory {
ExternalUser create(
- Collection<String> emailAddresses, Collection<ExternalId.Key> externalIdKeys);
+ Collection<String> emailAddresses,
+ Collection<ExternalId.Key> externalIdKeys,
+ PropertyMap propertyMap);
}
private final GroupBackend groupBackend;
@@ -51,7 +53,9 @@
public ExternalUser(
GroupBackend groupBackend,
@Assisted Collection<String> emailAddresses,
- @Assisted Collection<ExternalId.Key> externalIdKeys) {
+ @Assisted Collection<ExternalId.Key> externalIdKeys,
+ @Assisted PropertyMap propertyMap) {
+ super(propertyMap);
this.groupBackend = groupBackend;
this.emailAddresses = ImmutableSet.copyOf(emailAddresses);
this.externalIdKeys = ImmutableSet.copyOf(externalIdKeys);
diff --git a/javatests/com/google/gerrit/acceptance/server/permissions/ExternalUserPermissionIT.java b/javatests/com/google/gerrit/acceptance/server/permissions/ExternalUserPermissionIT.java
index f05d338..9e4907c 100644
--- a/javatests/com/google/gerrit/acceptance/server/permissions/ExternalUserPermissionIT.java
+++ b/javatests/com/google/gerrit/acceptance/server/permissions/ExternalUserPermissionIT.java
@@ -41,6 +41,7 @@
import com.google.gerrit.extensions.restapi.AuthException;
import com.google.gerrit.server.CurrentUser;
import com.google.gerrit.server.ExternalUser;
+import com.google.gerrit.server.PropertyMap;
import com.google.gerrit.server.account.GroupBackend;
import com.google.gerrit.server.account.GroupMembership;
import com.google.gerrit.server.account.externalids.ExternalId;
@@ -294,6 +295,7 @@
ExternalUser createUserInGroup(String userId, String groupId) {
return externalUserFactory.create(
ImmutableSet.of(),
- ImmutableSet.of(ExternalId.Key.parse("company-auth:" + groupId + "-" + userId)));
+ ImmutableSet.of(ExternalId.Key.parse("company-auth:" + groupId + "-" + userId)),
+ PropertyMap.EMPTY);
}
}