diff options
Diffstat (limited to 'gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/AccountGroupScreen.java')
-rw-r--r-- | gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/AccountGroupScreen.java | 41 |
1 files changed, 29 insertions, 12 deletions
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/AccountGroupScreen.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/AccountGroupScreen.java index 9ac6c9a23d..ade00b94fe 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/AccountGroupScreen.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/AccountGroupScreen.java @@ -16,48 +16,65 @@ package com.google.gerrit.client.admin; import static com.google.gerrit.client.Dispatcher.toGroup; +import com.google.gerrit.client.groups.GroupApi; +import com.google.gerrit.client.groups.GroupInfo; +import com.google.gerrit.client.rpc.GerritCallback; import com.google.gerrit.client.ui.MenuScreen; -import com.google.gerrit.common.data.GroupDetail; import com.google.gerrit.reviewdb.client.AccountGroup; public abstract class AccountGroupScreen extends MenuScreen { public static final String INFO = "info"; public static final String MEMBERS = "members"; - private final GroupDetail groupDetail; + private final GroupInfo group; private final String membersTabToken; - public AccountGroupScreen(final GroupDetail toShow, final String token) { + public AccountGroupScreen(final GroupInfo toShow, final String token) { setRequiresSignIn(true); - this.groupDetail = toShow; + this.group = toShow; this.membersTabToken = getTabToken(token, MEMBERS); link(Util.C.groupTabGeneral(), getTabToken(token, INFO)); link(Util.C.groupTabMembers(), membersTabToken, - groupDetail.group.getType() == AccountGroup.Type.INTERNAL); + AccountGroup.isInternalGroup(group.getGroupUUID()) + && !AccountGroup.isSystemGroup(group.getGroupUUID())); } private String getTabToken(final String token, final String tab) { if (token.startsWith("/admin/groups/uuid-")) { - return toGroup(groupDetail.group.getGroupUUID(), tab); + return toGroup(group.getGroupUUID(), tab); } else { - return toGroup(groupDetail.group.getId(), tab); + return toGroup(group.getGroupId(), tab); } } @Override protected void onLoad() { super.onLoad(); - setPageTitle(Util.M.group(groupDetail.group.getName())); + setPageTitle(Util.M.group(group.name())); display(); - display(groupDetail); + GroupApi.isGroupOwner(group.name(), new GerritCallback<Boolean>() { + @Override + public void onSuccess(Boolean result) { + display(group, result); + } + }); } - protected abstract void display(final GroupDetail groupDetail); + protected abstract void display(final GroupInfo group, final boolean canModify); - protected AccountGroup.Id getGroupId() { - return groupDetail.group.getId(); + protected AccountGroup.UUID getGroupUUID() { + return group.getGroupUUID(); + } + + protected void updateOwnerGroup(GroupInfo ownerGroup) { + group.setOwnerUUID(ownerGroup.getGroupUUID()); + group.owner(ownerGroup.name()); + } + + protected AccountGroup.UUID getOwnerGroupUUID() { + return group.getOwnerUUID(); } protected void setMembersTabVisible(final boolean visible) { |