]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-1884 Use explicit method on root component keys for authorization on profile...
authorJean-Baptiste Lievremont <jean-baptiste.lievremont@sonarsource.com>
Mon, 12 May 2014 12:41:23 +0000 (14:41 +0200)
committerJean-Baptiste Lievremont <jean-baptiste.lievremont@sonarsource.com>
Mon, 12 May 2014 12:41:23 +0000 (14:41 +0200)
sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileProjectLookup.java
sonar-server/src/test/java/org/sonar/server/qualityprofile/QProfileProjectLookupTest.java

index e286088d2600c57de8d6e83708170a44533f3117..5dd735c852e8b47aa10108dc6c0a47a09438a42a 100644 (file)
@@ -34,6 +34,7 @@ import org.sonar.server.user.UserSession;
 
 import javax.annotation.CheckForNull;
 
+import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 
@@ -63,10 +64,11 @@ public class QProfileProjectLookup implements ServerComponent {
 
       UserSession userSession = UserSession.get();
       List<Component> result = Lists.newArrayList();
-      for (String key: authorizationDao.keepAuthorizedComponentKeys(
-          componentsByKeys.keySet(), userSession.userId(), UserRole.USER
-        )) {
-        result.add(componentsByKeys.get(key));
+      Collection<String> authorizedProjectKeys = authorizationDao.selectAuthorizedRootProjectsKeys(userSession.userId(), UserRole.USER);
+      for (String key: componentsByKeys.keySet()) {
+        if (authorizedProjectKeys.contains(key)) {
+          result.add(componentsByKeys.get(key));
+        }
       }
 
       return result;
index f618d00c389f4665d91444651811c083a5567ef2..e4e9c747669239f40167bfd66ed137b751b76ecd 100644 (file)
@@ -40,8 +40,6 @@ import org.sonar.server.user.MockUserSession;
 import static com.google.common.collect.Lists.newArrayList;
 import static org.fest.assertions.Assertions.assertThat;
 import static org.fest.assertions.Fail.fail;
-import static org.mockito.Matchers.anySet;
-import static org.mockito.Matchers.eq;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
@@ -83,7 +81,7 @@ public class QProfileProjectLookupTest {
       new ComponentDto().setId(1L).setKey(key1).setName("SonarQube One"),
       new ComponentDto().setId(1L).setKey(key2).setName("SonarQube Two")));
 
-    when(authorizationDao.keepAuthorizedComponentKeys(anySet(), eq(userId), eq(UserRole.USER))).thenReturn(Sets.newHashSet(key1));
+    when(authorizationDao.selectAuthorizedRootProjectsKeys(userId, UserRole.USER)).thenReturn(Sets.newHashSet(key1));
 
     assertThat(lookup.projects(1)).hasSize(1);
   }