From 5cd234bc473b9955b66c44568b3b16d5c3b24f9b Mon Sep 17 00:00:00 2001 From: Julien Lancelot Date: Tue, 28 Oct 2014 18:21:43 +0100 Subject: [PATCH] Restore deleted method used by Views --- .../java/org/sonar/core/user/AuthorizationDao.java | 8 +++++++- .../org/sonar/core/user/AuthorizationDaoTest.java | 14 ++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/sonar-core/src/main/java/org/sonar/core/user/AuthorizationDao.java b/sonar-core/src/main/java/org/sonar/core/user/AuthorizationDao.java index 0054efd6976..530c9609f4d 100644 --- a/sonar-core/src/main/java/org/sonar/core/user/AuthorizationDao.java +++ b/sonar-core/src/main/java/org/sonar/core/user/AuthorizationDao.java @@ -27,7 +27,6 @@ import org.sonar.core.persistence.DaoComponent; import org.sonar.core.persistence.MyBatis; import javax.annotation.Nullable; - import java.util.*; import static com.google.common.collect.Maps.newHashMap; @@ -68,6 +67,13 @@ public class AuthorizationDao implements ServerComponent, DaoComponent { return Sets.newHashSet(session.selectList(sql, params)); } + /** + * Used by the Views Plugin + */ + public boolean isAuthorizedComponentKey(String componentKey, @Nullable Integer userId, String role) { + return keepAuthorizedComponentKeys(Sets.newHashSet(componentKey), userId, role).size() == 1; + } + public Collection selectAuthorizedRootProjectsKeys(@Nullable Integer userId, String role) { SqlSession session = mybatis.openSession(false); try { diff --git a/sonar-core/src/test/java/org/sonar/core/user/AuthorizationDaoTest.java b/sonar-core/src/test/java/org/sonar/core/user/AuthorizationDaoTest.java index 594256cc85b..e73dc65e787 100644 --- a/sonar-core/src/test/java/org/sonar/core/user/AuthorizationDaoTest.java +++ b/sonar-core/src/test/java/org/sonar/core/user/AuthorizationDaoTest.java @@ -53,6 +53,19 @@ public class AuthorizationDaoTest extends AbstractDaoTestCase { assertThat(componentIds).isEmpty(); } + @Test + public void is_authorized_component_key_for_user() { + // but user is not in an authorized group + setupData("user_should_be_authorized"); + + AuthorizationDao authorization = new AuthorizationDao(getMyBatis()); + + assertThat(authorization.isAuthorizedComponentKey(PROJECT, USER, "user")).isTrue(); + + // user does not have the role "admin" + assertThat(authorization.isAuthorizedComponentKey(PROJECT, USER, "admin")).isFalse(); + } + @Test public void group_should_be_authorized() { // user is in an authorized group @@ -230,4 +243,5 @@ public class AuthorizationDaoTest extends AbstractDaoTestCase { AuthorizationDao authorization = new AuthorizationDao(getMyBatis()); assertThat(authorization.selectGlobalPermissions("anyone_user")).containsOnly("user", "profileadmin"); } + } -- 2.39.5