summaryrefslogtreecommitdiffstats
path: root/gerrit-server/src/main/java/com/google/gerrit/server/account/PerformCreateGroup.java
diff options
context:
space:
mode:
Diffstat (limited to 'gerrit-server/src/main/java/com/google/gerrit/server/account/PerformCreateGroup.java')
-rw-r--r--gerrit-server/src/main/java/com/google/gerrit/server/account/PerformCreateGroup.java43
1 files changed, 21 insertions, 22 deletions
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/account/PerformCreateGroup.java b/gerrit-server/src/main/java/com/google/gerrit/server/account/PerformCreateGroup.java
index 1ff1a3e60f..8b966cbd9c 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/account/PerformCreateGroup.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/account/PerformCreateGroup.java
@@ -18,8 +18,8 @@ import com.google.gerrit.common.errors.NameAlreadyUsedException;
import com.google.gerrit.common.errors.PermissionDeniedException;
import com.google.gerrit.reviewdb.client.Account;
import com.google.gerrit.reviewdb.client.AccountGroup;
-import com.google.gerrit.reviewdb.client.AccountGroupInclude;
-import com.google.gerrit.reviewdb.client.AccountGroupIncludeAudit;
+import com.google.gerrit.reviewdb.client.AccountGroupIncludeByUuid;
+import com.google.gerrit.reviewdb.client.AccountGroupIncludeByUuidAudit;
import com.google.gerrit.reviewdb.client.AccountGroupMember;
import com.google.gerrit.reviewdb.client.AccountGroupMemberAudit;
import com.google.gerrit.reviewdb.client.AccountGroupName;
@@ -35,7 +35,6 @@ import org.eclipse.jgit.lib.PersonIdent;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
-import java.util.HashSet;
import java.util.List;
public class PerformCreateGroup {
@@ -85,11 +84,11 @@ public class PerformCreateGroup {
* name already exists
* @throws PermissionDeniedException user cannot create a group.
*/
- public AccountGroup.Id createGroup(final String groupName,
+ public AccountGroup createGroup(final String groupName,
final String groupDescription, final boolean visibleToAll,
final AccountGroup.Id ownerGroupId,
final Collection<? extends Account.Id> initialMembers,
- final Collection<? extends AccountGroup.Id> initialGroups)
+ final Collection<? extends AccountGroup.UUID> initialGroups)
throws OrmException, NameAlreadyUsedException, PermissionDeniedException {
if (!currentUser.getCapabilities().canCreateGroup()) {
throw new PermissionDeniedException(String.format(
@@ -121,7 +120,7 @@ public class PerformCreateGroup {
try {
db.accountGroupNames().insert(Collections.singleton(gn));
} catch (OrmDuplicateKeyException e) {
- throw new NameAlreadyUsedException();
+ throw new NameAlreadyUsedException(groupName);
}
db.accountGroups().insert(Collections.singleton(group));
@@ -129,11 +128,12 @@ public class PerformCreateGroup {
if (initialGroups != null) {
addGroups(groupId, initialGroups);
+ groupIncludeCache.evictMembersOf(uuid);
}
groupCache.onCreateGroup(nameKey);
- return groupId;
+ return group;
}
private void addMembers(final AccountGroup.Id groupId,
@@ -160,26 +160,25 @@ public class PerformCreateGroup {
}
private void addGroups(final AccountGroup.Id groupId,
- final Collection<? extends AccountGroup.Id> groups) throws OrmException {
- final List<AccountGroupInclude> includeList =
- new ArrayList<AccountGroupInclude>();
- final List<AccountGroupIncludeAudit> includesAudit =
- new ArrayList<AccountGroupIncludeAudit>();
- for (AccountGroup.Id includeId : groups) {
- final AccountGroupInclude groupInclude =
- new AccountGroupInclude(new AccountGroupInclude.Key(groupId, includeId));
+ final Collection<? extends AccountGroup.UUID> groups) throws OrmException {
+ final List<AccountGroupIncludeByUuid> includeList =
+ new ArrayList<AccountGroupIncludeByUuid>();
+ final List<AccountGroupIncludeByUuidAudit> includesAudit =
+ new ArrayList<AccountGroupIncludeByUuidAudit>();
+ for (AccountGroup.UUID includeUUID : groups) {
+ final AccountGroupIncludeByUuid groupInclude =
+ new AccountGroupIncludeByUuid(new AccountGroupIncludeByUuid.Key(groupId, includeUUID));
includeList.add(groupInclude);
- final AccountGroupIncludeAudit audit =
- new AccountGroupIncludeAudit(groupInclude, currentUser.getAccountId());
+ final AccountGroupIncludeByUuidAudit audit =
+ new AccountGroupIncludeByUuidAudit(groupInclude, currentUser.getAccountId());
includesAudit.add(audit);
}
- db.accountGroupIncludes().insert(includeList);
- db.accountGroupIncludesAudit().insert(includesAudit);
+ db.accountGroupIncludesByUuid().insert(includeList);
+ db.accountGroupIncludesByUuidAudit().insert(includesAudit);
- for (AccountGroup group : db.accountGroups().get(
- new HashSet<AccountGroup.Id>(groups))) {
- groupIncludeCache.evictInclude(group.getGroupUUID());
+ for (AccountGroup.UUID uuid : groups) {
+ groupIncludeCache.evictMemberIn(uuid);
}
}
}