]> source.dussan.org Git - sonarqube.git/commitdiff
SONARCLOUD-213 remove useless method in PermissionService
authorSimon Brandhof <simon.brandhof@sonarsource.com>
Thu, 29 Nov 2018 20:43:29 +0000 (21:43 +0100)
committerSonarTech <sonartech@sonarsource.com>
Wed, 12 Dec 2018 19:21:01 +0000 (20:21 +0100)
14 files changed:
server/sonar-server/src/main/java/org/sonar/server/permission/GroupPermissionChanger.java
server/sonar-server/src/main/java/org/sonar/server/permission/PermissionService.java
server/sonar-server/src/main/java/org/sonar/server/permission/PermissionServiceImpl.java
server/sonar-server/src/main/java/org/sonar/server/permission/PermissionTemplateService.java
server/sonar-server/src/main/java/org/sonar/server/permission/UserPermissionChanger.java
server/sonar-server/src/main/java/org/sonar/server/project/ws/UpdateVisibilityAction.java
server/sonar-server/src/main/java/org/sonar/server/user/ServerUserSession.java
server/sonar-server/src/main/java/org/sonar/server/user/UserSessionFactoryImpl.java
server/sonar-server/src/test/java/org/sonar/server/permission/GroupPermissionChangerTest.java
server/sonar-server/src/test/java/org/sonar/server/permission/PermissionServiceImplTest.java
server/sonar-server/src/test/java/org/sonar/server/permission/UserPermissionChangerTest.java
server/sonar-server/src/test/java/org/sonar/server/permission/ws/BasePermissionWsTest.java
server/sonar-server/src/test/java/org/sonar/server/user/ServerUserSessionTest.java
sonar-plugin-api/src/main/java/org/sonar/api/web/UserRole.java

index 8f10e7edd75663498c12da97f258121fed9cf464..c5c7b0d189cb8965fe925410bc4ff825f106a860 100644 (file)
@@ -25,6 +25,7 @@ import org.sonar.db.DbClient;
 import org.sonar.db.DbSession;
 import org.sonar.db.permission.GroupPermissionDto;
 
+import static org.sonar.api.web.UserRole.PUBLIC_PERMISSIONS;
 import static org.sonar.core.permission.GlobalPermissions.SYSTEM_ADMIN;
 import static org.sonar.server.permission.PermissionChange.Operation.ADD;
 import static org.sonar.server.permission.PermissionChange.Operation.REMOVE;
@@ -34,11 +35,9 @@ import static org.sonar.server.ws.WsUtils.checkRequest;
 public class GroupPermissionChanger {
 
   private final DbClient dbClient;
-  private final PermissionService permissionService;
 
-  public GroupPermissionChanger(DbClient dbClient, PermissionService permissionService) {
+  public GroupPermissionChanger(DbClient dbClient) {
     this.dbClient = dbClient;
-    this.permissionService = permissionService;
   }
 
   public boolean apply(DbSession dbSession, GroupPermissionChange change) {
@@ -70,7 +69,7 @@ public class GroupPermissionChanger {
   private boolean isAttemptToAddPublicPermissionToPublicComponent(GroupPermissionChange change, ProjectId projectId) {
     return !projectId.isPrivate()
       && change.getOperation() == ADD
-      && permissionService.getPublicPermissions().contains(change.getPermission());
+      && PUBLIC_PERMISSIONS.contains(change.getPermission());
   }
 
   private static boolean isAttemptToRemovePermissionFromAnyoneOnPrivateComponent(GroupPermissionChange change, ProjectId projectId) {
@@ -100,7 +99,7 @@ public class GroupPermissionChanger {
   private boolean isAttemptToRemovePublicPermissionFromPublicComponent(GroupPermissionChange change, ProjectId projectId) {
     return !projectId.isPrivate()
       && change.getOperation() == REMOVE
-      && permissionService.getPublicPermissions().contains(change.getPermission());
+      && PUBLIC_PERMISSIONS.contains(change.getPermission());
   }
 
   private boolean addPermission(DbSession dbSession, GroupPermissionChange change) {
index 6c84667e897c2393bb62447292956e90d50f56f6..4ee354afe1a202f20c344832e7e0d40849224dc1 100644 (file)
@@ -27,5 +27,5 @@ public interface PermissionService {
 
   List<OrganizationPermission> getAllOrganizationPermissions();
   List<String> getAllProjectPermissions();
-  List<String> getPublicPermissions();
+
 }
index ef614b8bd321727ce2b3cd27dda372c311f9b779..76c54faf52d367f5a165305e445a31a4af993ca9 100644 (file)
@@ -39,11 +39,6 @@ public class PermissionServiceImpl implements PermissionService {
 
   private static final List<OrganizationPermission> ALL_GLOBAL_PERMISSIONS = ImmutableList.copyOf(OrganizationPermission.values());
 
-  /**
-   * Permissions which are implicitly available for any user, any group and to group "AnyOne" on public components.
-   */
-  private static final List<String> PUBLIC_PERMISSIONS = ImmutableList.of(UserRole.USER, UserRole.CODEVIEWER);
-
   private final List<OrganizationPermission> globalPermissions;
   private final List<String> projectPermissions;
 
@@ -73,12 +68,4 @@ public class PermissionServiceImpl implements PermissionService {
   public List<String> getAllProjectPermissions() {
     return projectPermissions;
   }
-
-  /**
-   * Permissions which are implicitly available for any user, any group and to group "AnyOne" on public components.
-   */
-  @Override
-  public List<String> getPublicPermissions() {
-    return PUBLIC_PERMISSIONS;
-  }
 }
index 3b7d08010ec1931f58aaab53ec4c1321237015da..7824a71b2ccd015d44dc433f581b29aeb7126ef6 100644 (file)
@@ -51,6 +51,7 @@ import static com.google.common.base.Preconditions.checkArgument;
 import static java.lang.String.format;
 import static java.util.Collections.singletonList;
 import static org.sonar.api.security.DefaultGroups.isAnyone;
+import static org.sonar.api.web.UserRole.PUBLIC_PERMISSIONS;
 
 @ServerSide
 public class PermissionTemplateService {
@@ -170,7 +171,7 @@ public class PermissionTemplateService {
   }
 
   private boolean permissionValidForProject(ComponentDto project, String permission) {
-    return project.isPrivate() || !permissionService.getPublicPermissions().contains(permission);
+    return project.isPrivate() || !PUBLIC_PERMISSIONS.contains(permission);
   }
 
   private static boolean groupNameValidForProject(ComponentDto project, String groupName) {
index 0143a3be8cfc66140a80e3966536b6f7b82b2622..45e7775f6f4db822fbf80582f4b2923188b80892 100644 (file)
@@ -25,6 +25,7 @@ import org.sonar.db.DbClient;
 import org.sonar.db.DbSession;
 import org.sonar.db.permission.UserPermissionDto;
 
+import static org.sonar.api.web.UserRole.PUBLIC_PERMISSIONS;
 import static org.sonar.core.permission.GlobalPermissions.SYSTEM_ADMIN;
 import static org.sonar.server.permission.PermissionChange.Operation.ADD;
 import static org.sonar.server.permission.PermissionChange.Operation.REMOVE;
@@ -36,11 +37,9 @@ import static org.sonar.server.ws.WsUtils.checkRequest;
 public class UserPermissionChanger {
 
   private final DbClient dbClient;
-  private final PermissionService permissionService;
 
-  public UserPermissionChanger(DbClient dbClient, PermissionService permissionService) {
+  public UserPermissionChanger(DbClient dbClient) {
     this.dbClient = dbClient;
-    this.permissionService = permissionService;
   }
 
   public boolean apply(DbSession dbSession, UserPermissionChange change) {
@@ -71,7 +70,7 @@ public class UserPermissionChanger {
   private boolean isAttemptToAddPublicPermissionToPublicComponent(UserPermissionChange change, ProjectId projectId) {
     return !projectId.isPrivate()
       && change.getOperation() == ADD
-      && permissionService.getPublicPermissions().contains(change.getPermission());
+      && PUBLIC_PERMISSIONS.contains(change.getPermission());
   }
 
   private void ensureConsistencyWithVisibility(UserPermissionChange change) {
@@ -84,7 +83,7 @@ public class UserPermissionChanger {
   private boolean isAttemptToRemovePublicPermissionFromPublicComponent(UserPermissionChange change, ProjectId projectId) {
     return !projectId.isPrivate()
       && change.getOperation() == REMOVE
-      && permissionService.getPublicPermissions().contains(change.getPermission());
+      && PUBLIC_PERMISSIONS.contains(change.getPermission());
   }
 
   private boolean addPermission(DbSession dbSession, UserPermissionChange change) {
index 8103fe582d7577cda4ee91690ea05cffe7c9a88d..473c393e597de1116a76adf171bf11b5f45f6566 100644 (file)
@@ -44,6 +44,7 @@ import org.sonarqube.ws.client.project.ProjectsWsParameters;
 
 import static java.lang.String.format;
 import static java.util.Collections.singletonList;
+import static org.sonar.api.web.UserRole.PUBLIC_PERMISSIONS;
 import static org.sonar.server.ws.KeyExamples.KEY_PROJECT_EXAMPLE_001;
 import static org.sonar.server.ws.WsUtils.checkRequest;
 import static org.sonarqube.ws.client.project.ProjectsWsParameters.PARAM_PROJECT;
@@ -136,7 +137,7 @@ public class UpdateVisibilityAction implements ProjectsWsAction {
     // delete project permissions for group AnyOne
     dbClient.groupPermissionDao().deleteByRootComponentIdAndGroupId(dbSession, component.getId(), null);
     // grant UserRole.CODEVIEWER and UserRole.USER to any group or user with at least one permission on project
-    permissionService.getPublicPermissions().forEach(permission -> {
+    PUBLIC_PERMISSIONS.forEach(permission -> {
       dbClient.groupPermissionDao().selectGroupIdsWithPermissionOnProjectBut(dbSession, component.getId(), permission)
         .forEach(groupId -> insertProjectPermissionOnGroup(dbSession, component, permission, groupId));
       dbClient.userPermissionDao().selectUserIdsWithPermissionOnProjectBut(dbSession, component.getId(), permission)
@@ -157,7 +158,7 @@ public class UpdateVisibilityAction implements ProjectsWsAction {
   }
 
   private void updatePermissionsToPublic(DbSession dbSession, ComponentDto component) {
-    permissionService.getPublicPermissions().forEach(permission -> {
+    PUBLIC_PERMISSIONS.forEach(permission -> {
       // delete project group permission for UserRole.CODEVIEWER and UserRole.USER
       dbClient.groupPermissionDao().deleteByRootComponentIdAndPermission(dbSession, component.getId(), permission);
       // delete project user permission for UserRole.CODEVIEWER and UserRole.USER
index 563042db0edda1b2acca35435918d82c18ec5a15..f28b38dce5116fc22bb13e56285aeaae0420a8f6 100644 (file)
@@ -43,12 +43,12 @@ import org.sonar.db.user.GroupDto;
 import org.sonar.db.user.UserDto;
 import org.sonar.server.organization.DefaultOrganizationProvider;
 import org.sonar.server.organization.OrganizationFlags;
-import org.sonar.server.permission.PermissionService;
 
 import static java.util.Objects.requireNonNull;
 import static java.util.Optional.of;
 import static java.util.Optional.ofNullable;
 import static org.apache.commons.lang.StringUtils.defaultIfEmpty;
+import static org.sonar.api.web.UserRole.PUBLIC_PERMISSIONS;
 
 /**
  * Implementation of {@link UserSession} used in web server
@@ -62,18 +62,16 @@ public class ServerUserSession extends AbstractUserSession {
   private final Supplier<Collection<GroupDto>> groups = Suppliers.memoize(this::loadGroups);
   private final Supplier<Boolean> isSystemAdministratorSupplier = Suppliers.memoize(this::loadIsSystemAdministrator);
   private final Map<String, String> projectUuidByComponentUuid = new HashMap<>();
-  private final PermissionService permissionService;
   private Map<String, Set<OrganizationPermission>> permissionsByOrganizationUuid;
   private Map<String, Set<String>> permissionsByProjectUuid;
   private Set<String> organizationMembership = new HashSet<>();
 
   ServerUserSession(DbClient dbClient, OrganizationFlags organizationFlags,
-    DefaultOrganizationProvider defaultOrganizationProvider, @Nullable UserDto userDto, PermissionService permissionService) {
+    DefaultOrganizationProvider defaultOrganizationProvider, @Nullable UserDto userDto) {
     this.dbClient = dbClient;
     this.organizationFlags = organizationFlags;
     this.defaultOrganizationProvider = defaultOrganizationProvider;
     this.userDto = userDto;
-    this.permissionService = permissionService;
   }
 
   private Collection<GroupDto> loadGroups() {
@@ -200,7 +198,7 @@ public class ServerUserSession extends AbstractUserSession {
         return loadDbPermissions(dbSession, projectUuid);
       }
       ImmutableSet.Builder<String> builder = ImmutableSet.builder();
-      builder.addAll(permissionService.getPublicPermissions());
+      builder.addAll(PUBLIC_PERMISSIONS);
       builder.addAll(loadDbPermissions(dbSession, projectUuid));
       return builder.build();
     }
index dac7bd4a5c3e06625bbb0108c380a6b9f31a8435..e50a32dde9ba3b020116aa09e89aa88a5bec21a9 100644 (file)
@@ -24,7 +24,6 @@ import org.sonar.db.DbClient;
 import org.sonar.db.user.UserDto;
 import org.sonar.server.organization.DefaultOrganizationProvider;
 import org.sonar.server.organization.OrganizationFlags;
-import org.sonar.server.permission.PermissionService;
 
 import static java.util.Objects.requireNonNull;
 
@@ -34,24 +33,22 @@ public class UserSessionFactoryImpl implements UserSessionFactory {
   private final DbClient dbClient;
   private final DefaultOrganizationProvider defaultOrganizationProvider;
   private final OrganizationFlags organizationFlags;
-  private final PermissionService permissionService;
 
   public UserSessionFactoryImpl(DbClient dbClient, DefaultOrganizationProvider defaultOrganizationProvider,
-    OrganizationFlags organizationFlags, PermissionService permissionService) {
+    OrganizationFlags organizationFlags) {
     this.dbClient = dbClient;
     this.defaultOrganizationProvider = defaultOrganizationProvider;
     this.organizationFlags = organizationFlags;
-    this.permissionService = permissionService;
   }
 
   @Override
   public ServerUserSession create(UserDto user) {
     requireNonNull(user, "UserDto must not be null");
-    return new ServerUserSession(dbClient, organizationFlags, defaultOrganizationProvider, user, permissionService);
+    return new ServerUserSession(dbClient, organizationFlags, defaultOrganizationProvider, user);
   }
 
   @Override
   public ServerUserSession createAnonymous() {
-    return new ServerUserSession(dbClient, organizationFlags, defaultOrganizationProvider, null, permissionService);
+    return new ServerUserSession(dbClient, organizationFlags, defaultOrganizationProvider, null);
   }
 }
index 6323fbae13c2377bc7b497e644863118add7fa65..e760c83cc22d1c3158ab01594fa4839bc964551d 100644 (file)
@@ -38,10 +38,7 @@ import org.sonar.db.permission.OrganizationPermission;
 import org.sonar.db.user.GroupDto;
 import org.sonar.db.user.UserDto;
 import org.sonar.server.exceptions.BadRequestException;
-import org.sonar.server.organization.TestDefaultOrganizationProvider;
-import org.sonar.server.usergroups.DefaultGroupFinder;
 import org.sonar.server.usergroups.ws.GroupIdOrAnyone;
-import org.sonar.server.usergroups.ws.GroupWsSupport;
 
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.fail;
@@ -56,11 +53,9 @@ public class GroupPermissionChangerTest {
   @Rule
   public ExpectedException expectedException = ExpectedException.none();
 
-  private TestDefaultOrganizationProvider defaultOrganizationProvider = TestDefaultOrganizationProvider.from(db);
-  private GroupWsSupport groupWsSupport = new GroupWsSupport(db.getDbClient(), defaultOrganizationProvider, new DefaultGroupFinder(db.getDbClient()));
   private ResourceTypes resourceTypes = new ResourceTypesRule().setRootQualifiers(Qualifiers.PROJECT);
   private PermissionService permissionService = new PermissionServiceImpl(resourceTypes);
-  private GroupPermissionChanger underTest = new GroupPermissionChanger(db.getDbClient(), permissionService);
+  private GroupPermissionChanger underTest = new GroupPermissionChanger(db.getDbClient());
   private OrganizationDto org;
   private GroupDto group;
   private ComponentDto privateProject;
index 5936b6ac1865c8d7b7f35e8df63789b34d904e55..bcbbdcd295f61915023229b056135f21d5911e10 100644 (file)
@@ -25,7 +25,6 @@ import org.sonar.db.permission.OrganizationPermission;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
-
 public class PermissionServiceImplTest {
 
   private ResourceTypesRule resourceTypesRule = new ResourceTypesRule().setRootQualifiers("APP", "VW");
@@ -38,12 +37,6 @@ public class PermissionServiceImplTest {
       .containsExactly("admin", "gateadmin", "profileadmin", "provisioning", "scan", "applicationcreator", "portfoliocreator");
   }
 
-  @Test
-  public void publicPermissions_must_be_ordered() {
-    assertThat(underTest.getPublicPermissions())
-      .containsExactly("user", "codeviewer");
-  }
-
   @Test
   public void projectPermissions_must_be_ordered() {
     assertThat(underTest.getAllProjectPermissions())
index cef415d87d409426243a03b6a9c0321f8b4b66bd..a15051f70a1651e90bfaf47b1dc381251d871ede 100644 (file)
@@ -59,8 +59,7 @@ public class UserPermissionChangerTest {
 
   private ResourceTypes resourceTypes = new ResourceTypesRule().setRootQualifiers(Qualifiers.PROJECT);
   private PermissionService permissionService = new PermissionServiceImpl(resourceTypes);
-
-  private UserPermissionChanger underTest = new UserPermissionChanger(db.getDbClient(), permissionService);
+  private UserPermissionChanger underTest = new UserPermissionChanger(db.getDbClient());
   private OrganizationDto org1;
   private OrganizationDto org2;
   private UserDto user1;
index 40ff8b09ca960c6885e68bf4db4aacbbb46bd3b5..2df0afdbebac59b6558a70418ff2093d2015add0 100644 (file)
@@ -23,7 +23,6 @@ import org.junit.Before;
 import org.junit.Rule;
 import org.junit.rules.ExpectedException;
 import org.sonar.api.resources.Qualifiers;
-import org.sonar.api.resources.ResourceTypes;
 import org.sonar.api.utils.internal.AlwaysIncreasingSystem2;
 import org.sonar.db.DbClient;
 import org.sonar.db.DbTester;
@@ -35,8 +34,6 @@ import org.sonar.server.es.EsTester;
 import org.sonar.server.es.ProjectIndexersImpl;
 import org.sonar.server.organization.TestDefaultOrganizationProvider;
 import org.sonar.server.permission.GroupPermissionChanger;
-import org.sonar.server.permission.PermissionService;
-import org.sonar.server.permission.PermissionServiceImpl;
 import org.sonar.server.permission.PermissionUpdater;
 import org.sonar.server.permission.UserPermissionChanger;
 import org.sonar.server.permission.index.FooIndexDefinition;
@@ -61,9 +58,6 @@ public abstract class BasePermissionWsTest<A extends PermissionsWsAction> {
   @Rule
   public ExpectedException expectedException = ExpectedException.none();
 
-  protected ResourceTypes resourceTypes = new ResourceTypesRule().setRootQualifiers(Qualifiers.PROJECT);
-  protected PermissionService permissionService = new PermissionServiceImpl(resourceTypes);
-
   private TestDefaultOrganizationProvider defaultOrganizationProvider = TestDefaultOrganizationProvider.from(db);
   protected UserSessionRule userSession = UserSessionRule.standalone();
   protected WsActionTester wsTester;
@@ -91,8 +85,8 @@ public abstract class BasePermissionWsTest<A extends PermissionsWsAction> {
   protected PermissionUpdater newPermissionUpdater() {
     return new PermissionUpdater(
       new ProjectIndexersImpl(new PermissionIndexer(db.getDbClient(), es.client())),
-      new UserPermissionChanger(db.getDbClient(), permissionService),
-      new GroupPermissionChanger(db.getDbClient(), permissionService));
+      new UserPermissionChanger(db.getDbClient()),
+      new GroupPermissionChanger(db.getDbClient()));
   }
 
   protected TestRequest newRequest() {
index 83caa654df2c15ccada55751997d35c9a7cf36d4..cb4ce3b82c468a702774dd6f8d02dbea5254e46a 100644 (file)
@@ -38,8 +38,6 @@ import org.sonar.db.user.UserDto;
 import org.sonar.server.exceptions.ForbiddenException;
 import org.sonar.server.organization.TestDefaultOrganizationProvider;
 import org.sonar.server.organization.TestOrganizationFlags;
-import org.sonar.server.permission.PermissionService;
-import org.sonar.server.permission.PermissionServiceImpl;
 
 import static com.google.common.base.Preconditions.checkState;
 import static java.util.Arrays.asList;
@@ -58,9 +56,6 @@ public class ServerUserSessionTest {
   public DbTester db = DbTester.create(System2.INSTANCE);
   @Rule
   public ExpectedException expectedException = ExpectedException.none();
-  private ResourceTypes resourceTypes = new ResourceTypesRule().setRootQualifiers(Qualifiers.PROJECT);
-  private PermissionService permissionService = new PermissionServiceImpl(resourceTypes);
-
   private DbClient dbClient = db.getDbClient();
   private TestOrganizationFlags organizationFlags = TestOrganizationFlags.standalone();
   private TestDefaultOrganizationProvider defaultOrganizationProvider = TestDefaultOrganizationProvider.from(db);
@@ -703,7 +698,7 @@ public class ServerUserSessionTest {
   }
 
   private ServerUserSession newUserSession(@Nullable UserDto userDto) {
-    return new ServerUserSession(dbClient, organizationFlags, defaultOrganizationProvider, userDto, permissionService);
+    return new ServerUserSession(dbClient, organizationFlags, defaultOrganizationProvider, userDto);
   }
 
   private ServerUserSession newAnonymousSession() {
index 196218cdc514a8bce9c5065c66b142923713be06..fb582ea5b7c71b593482734fd2bdeca8e0380889 100644 (file)
@@ -23,6 +23,10 @@ import java.lang.annotation.ElementType;
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
 
 /**
  * @since 1.11
@@ -49,4 +53,9 @@ public @interface UserRole {
 
   String[] value() default {};
 
+  /**
+   * Permissions which are implicitly available for any user, any group and to group "AnyOne" on public components.
+   */
+  Set<String> PUBLIC_PERMISSIONS = Collections.unmodifiableSet(new HashSet<>(Arrays.asList(UserRole.USER, UserRole.CODEVIEWER)));
+
 }