summaryrefslogtreecommitdiffstats
path: root/gerrit-server/src/main/java/com/google/gerrit/server/account/InternalGroupBackend.java
diff options
context:
space:
mode:
Diffstat (limited to 'gerrit-server/src/main/java/com/google/gerrit/server/account/InternalGroupBackend.java')
-rw-r--r--gerrit-server/src/main/java/com/google/gerrit/server/account/InternalGroupBackend.java105
1 files changed, 0 insertions, 105 deletions
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/account/InternalGroupBackend.java b/gerrit-server/src/main/java/com/google/gerrit/server/account/InternalGroupBackend.java
deleted file mode 100644
index 3f4fee9e04..0000000000
--- a/gerrit-server/src/main/java/com/google/gerrit/server/account/InternalGroupBackend.java
+++ /dev/null
@@ -1,105 +0,0 @@
-// Copyright (C) 2012 The Android Open Source Project
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package com.google.gerrit.server.account;
-
-import static java.util.stream.Collectors.toList;
-
-import com.google.common.collect.ImmutableList;
-import com.google.gerrit.common.data.GroupDescription;
-import com.google.gerrit.common.data.GroupReference;
-import com.google.gerrit.reviewdb.client.AccountGroup;
-import com.google.gerrit.reviewdb.server.ReviewDb;
-import com.google.gerrit.server.IdentifiedUser;
-import com.google.gerrit.server.group.Groups;
-import com.google.gerrit.server.group.InternalGroupDescription;
-import com.google.gerrit.server.project.ProjectState;
-import com.google.gwtorm.server.OrmException;
-import com.google.gwtorm.server.SchemaFactory;
-import com.google.inject.Inject;
-import com.google.inject.Singleton;
-import java.util.Collection;
-import org.eclipse.jgit.lib.ObjectId;
-
-/** Implementation of GroupBackend for the internal group system. */
-@Singleton
-public class InternalGroupBackend implements GroupBackend {
- private final GroupControl.Factory groupControlFactory;
- private final GroupCache groupCache;
- private final Groups groups;
- private final SchemaFactory<ReviewDb> schema;
- private final IncludingGroupMembership.Factory groupMembershipFactory;
-
- @Inject
- InternalGroupBackend(
- GroupControl.Factory groupControlFactory,
- GroupCache groupCache,
- Groups groups,
- SchemaFactory<ReviewDb> schema,
- IncludingGroupMembership.Factory groupMembershipFactory) {
- this.groupControlFactory = groupControlFactory;
- this.groupCache = groupCache;
- this.groups = groups;
- this.schema = schema;
- this.groupMembershipFactory = groupMembershipFactory;
- }
-
- @Override
- public boolean handles(AccountGroup.UUID uuid) {
- // See AccountGroup.isInternalGroup
- return ObjectId.isId(uuid.get()); // [0-9a-f]{40};
- }
-
- @Override
- public GroupDescription.Internal get(AccountGroup.UUID uuid) {
- if (!handles(uuid)) {
- return null;
- }
-
- return groupCache.get(uuid).map(InternalGroupDescription::new).orElse(null);
- }
-
- @Override
- public Collection<GroupReference> suggest(String name, ProjectState project) {
- try (ReviewDb db = schema.open()) {
- return groups
- .getAll(db)
- .filter(group -> startsWithIgnoreCase(group, name))
- .filter(this::isVisible)
- .map(GroupReference::forGroup)
- .collect(toList());
- } catch (OrmException e) {
- return ImmutableList.of();
- }
- }
-
- private static boolean startsWithIgnoreCase(AccountGroup group, String name) {
- return group.getName().regionMatches(true, 0, name, 0, name.length());
- }
-
- private boolean isVisible(AccountGroup group) {
- return groupControlFactory.controlFor(group).isVisible();
- }
-
- @Override
- public GroupMembership membershipsOf(IdentifiedUser user) {
- return groupMembershipFactory.create(user);
- }
-
- @Override
- public boolean isVisibleToAll(AccountGroup.UUID uuid) {
- GroupDescription.Internal g = get(uuid);
- return g != null && g.isVisibleToAll();
- }
-}