summaryrefslogtreecommitdiffstats
path: root/sonar-core
diff options
context:
space:
mode:
authorSimon Brandhof <simon.brandhof@gmail.com>2012-07-05 16:40:16 +0200
committerSimon Brandhof <simon.brandhof@gmail.com>2012-07-05 17:00:17 +0200
commitcba251c929936768308e59365bc44f532bb16756 (patch)
tree5b6b4afcc4863b6264e41d112677e31b7ea1da8f /sonar-core
parent5016b01b23344d65768d68ab03419caad3f57c4b (diff)
downloadsonarqube-cba251c929936768308e59365bc44f532bb16756.tar.gz
sonarqube-cba251c929936768308e59365bc44f532bb16756.zip
SONAR-3618 Support custom default permissions for non-project resources
Diffstat (limited to 'sonar-core')
-rw-r--r--sonar-core/src/main/java/org/sonar/core/persistence/DaoUtils.java2
-rw-r--r--sonar-core/src/main/java/org/sonar/core/user/RoleDao.java64
-rw-r--r--sonar-core/src/main/java/org/sonar/core/user/RoleMapper.java7
-rw-r--r--sonar-core/src/main/resources/META-INF/persistence.xml2
-rw-r--r--sonar-core/src/main/resources/org/sonar/core/persistence/rows-h2.sql5
-rw-r--r--sonar-core/src/main/resources/org/sonar/core/user/RoleMapper.xml18
-rw-r--r--sonar-core/src/test/java/org/sonar/core/user/RoleDaoTest.java66
-rw-r--r--sonar-core/src/test/java/org/sonar/core/user/UserDaoTest.java4
-rw-r--r--sonar-core/src/test/resources/org/sonar/core/user/RoleDaoTest/insertGroupRoles-result.xml4
-rw-r--r--sonar-core/src/test/resources/org/sonar/core/user/RoleDaoTest/insertGroupRoles.xml2
-rw-r--r--sonar-core/src/test/resources/org/sonar/core/user/RoleDaoTest/insertUserRoles-result.xml4
-rw-r--r--sonar-core/src/test/resources/org/sonar/core/user/RoleDaoTest/insertUserRoles.xml2
12 files changed, 27 insertions, 153 deletions
diff --git a/sonar-core/src/main/java/org/sonar/core/persistence/DaoUtils.java b/sonar-core/src/main/java/org/sonar/core/persistence/DaoUtils.java
index 67cbc72d58b..fd00b5e92df 100644
--- a/sonar-core/src/main/java/org/sonar/core/persistence/DaoUtils.java
+++ b/sonar-core/src/main/java/org/sonar/core/persistence/DaoUtils.java
@@ -34,7 +34,6 @@ import org.sonar.core.review.ReviewDao;
import org.sonar.core.rule.RuleDao;
import org.sonar.core.template.LoadedTemplateDao;
import org.sonar.core.user.AuthorDao;
-import org.sonar.core.user.RoleDao;
import org.sonar.core.user.UserDao;
import java.util.List;
@@ -60,7 +59,6 @@ public final class DaoUtils {
ResourceKeyUpdaterDao.class,
ReviewCommentDao.class,
ReviewDao.class,
- RoleDao.class,
RuleDao.class,
UserDao.class);
}
diff --git a/sonar-core/src/main/java/org/sonar/core/user/RoleDao.java b/sonar-core/src/main/java/org/sonar/core/user/RoleDao.java
deleted file mode 100644
index 164a72e3913..00000000000
--- a/sonar-core/src/main/java/org/sonar/core/user/RoleDao.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Sonar, open source software quality management tool.
- * Copyright (C) 2008-2012 SonarSource
- * mailto:contact AT sonarsource DOT com
- *
- * Sonar is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * Sonar is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with Sonar; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02
- */
-package org.sonar.core.user;
-
-import org.apache.ibatis.session.SqlSession;
-import org.sonar.core.persistence.MyBatis;
-
-import java.util.Collection;
-
-/**
- * @since 3.2
- */
-public class RoleDao {
- private final MyBatis mybatis;
-
- public RoleDao(MyBatis mybatis) {
- this.mybatis = mybatis;
- }
-
- public RoleDao insertGroupRoles(Collection<GroupRoleDto> groupRoles) {
- SqlSession session = mybatis.openBatchSession();
- try {
- RoleMapper mapper = session.getMapper(RoleMapper.class);
- for (GroupRoleDto groupRole : groupRoles) {
- mapper.insertGroupRole(groupRole);
- }
- session.commit();
- } finally {
- MyBatis.closeQuietly(session);
- }
- return this;
- }
-
- public RoleDao insertUserRoles(Collection<UserRoleDto> userRoles) {
- SqlSession session = mybatis.openBatchSession();
- try {
- RoleMapper mapper = session.getMapper(RoleMapper.class);
- for (UserRoleDto userRole : userRoles) {
- mapper.insertUserRole(userRole);
- }
- session.commit();
- } finally {
- MyBatis.closeQuietly(session);
- }
- return this;
- }
-}
diff --git a/sonar-core/src/main/java/org/sonar/core/user/RoleMapper.java b/sonar-core/src/main/java/org/sonar/core/user/RoleMapper.java
index bd2b45ff9eb..79e83c766be 100644
--- a/sonar-core/src/main/java/org/sonar/core/user/RoleMapper.java
+++ b/sonar-core/src/main/java/org/sonar/core/user/RoleMapper.java
@@ -28,4 +28,11 @@ public interface RoleMapper {
void insertUserRole(UserRoleDto userRole);
+ void deleteGroupRolesByResourceId(Long resourceId);
+
+ void deleteUserRolesByResourceId(Long resourceId);
+
+ int countGroupRoles(Long resourceId);
+
+ int countUserRoles(Long resourceId);
}
diff --git a/sonar-core/src/main/resources/META-INF/persistence.xml b/sonar-core/src/main/resources/META-INF/persistence.xml
index 357801c27b9..c8ac4392caf 100644
--- a/sonar-core/src/main/resources/META-INF/persistence.xml
+++ b/sonar-core/src/main/resources/META-INF/persistence.xml
@@ -21,8 +21,6 @@
<class>org.sonar.api.database.model.ResourceModel</class>
<class>org.sonar.api.database.model.SnapshotSource</class>
<class>org.sonar.api.database.model.RuleFailureModel</class>
- <class>org.sonar.api.security.UserRole</class>
- <class>org.sonar.api.security.GroupRole</class>
<class>org.sonar.api.rules.Rule</class>
<class>org.sonar.api.rules.RuleParam</class>
<class>org.sonar.api.resources.ProjectLink</class>
diff --git a/sonar-core/src/main/resources/org/sonar/core/persistence/rows-h2.sql b/sonar-core/src/main/resources/org/sonar/core/persistence/rows-h2.sql
index 2493292440f..804f1f830a0 100644
--- a/sonar-core/src/main/resources/org/sonar/core/persistence/rows-h2.sql
+++ b/sonar-core/src/main/resources/org/sonar/core/persistence/rows-h2.sql
@@ -7,11 +7,6 @@ ALTER TABLE GROUPS ALTER COLUMN ID RESTART WITH 3;
INSERT INTO GROUP_ROLES(ID, GROUP_ID, RESOURCE_ID, ROLE) VALUES (1, 1, null, 'admin');
ALTER TABLE GROUP_ROLES ALTER COLUMN ID RESTART WITH 2;
-INSERT INTO PROPERTIES(ID, PROP_KEY, RESOURCE_ID, TEXT_VALUE, USER_ID) VALUES (1, 'sonar.role.admin.project.defaultGroups', null, 'sonar-administrators', null);
-INSERT INTO PROPERTIES(ID, PROP_KEY, RESOURCE_ID, TEXT_VALUE, USER_ID) VALUES (2, 'sonar.role.user.project.defaultGroups', null, 'sonar-users,Anyone', null);
-INSERT INTO PROPERTIES(ID, PROP_KEY, RESOURCE_ID, TEXT_VALUE, USER_ID) VALUES (3, 'sonar.role.codeviewer.project.defaultGroups', null, 'sonar-users,Anyone', null);
-ALTER TABLE PROPERTIES ALTER COLUMN ID RESTART WITH 4;
-
INSERT INTO GROUPS_USERS(USER_ID, GROUP_ID) VALUES (1, 1);
INSERT INTO GROUPS_USERS(USER_ID, GROUP_ID) VALUES (1, 2);
diff --git a/sonar-core/src/main/resources/org/sonar/core/user/RoleMapper.xml b/sonar-core/src/main/resources/org/sonar/core/user/RoleMapper.xml
index 753f13ea520..be2fad12465 100644
--- a/sonar-core/src/main/resources/org/sonar/core/user/RoleMapper.xml
+++ b/sonar-core/src/main/resources/org/sonar/core/user/RoleMapper.xml
@@ -12,4 +12,22 @@
INSERT INTO user_roles (user_id, resource_id, role)
VALUES (#{userId, jdbcType=INTEGER}, #{resourceId, jdbcType=INTEGER}, #{role, jdbcType=VARCHAR})
</insert>
+
+ <delete id="deleteGroupRolesByResourceId" parameterType="long">
+ delete from group_roles where resource_id=#{id}
+ </delete>
+
+ <delete id="deleteUserRolesByResourceId" parameterType="long">
+ delete from user_roles where resource_id=#{id}
+ </delete>
+
+ <select id="countUserRoles" parameterType="long" resultType="int">
+ SELECT count(id)
+ FROM user_roles WHERE resource_id=#{id}
+ </select>
+
+ <select id="countGroupRoles" parameterType="long" resultType="int">
+ SELECT count(id)
+ FROM group_roles WHERE resource_id=#{id}
+ </select>
</mapper>
diff --git a/sonar-core/src/test/java/org/sonar/core/user/RoleDaoTest.java b/sonar-core/src/test/java/org/sonar/core/user/RoleDaoTest.java
deleted file mode 100644
index 939046d9abc..00000000000
--- a/sonar-core/src/test/java/org/sonar/core/user/RoleDaoTest.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Sonar, open source software quality management tool.
- * Copyright (C) 2008-2012 SonarSource
- * mailto:contact AT sonarsource DOT com
- *
- * Sonar is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * Sonar is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with Sonar; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02
- */
-package org.sonar.core.user;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.sonar.core.persistence.DaoTestCase;
-
-import java.util.Arrays;
-import java.util.Collection;
-
-
-public class RoleDaoTest extends DaoTestCase {
-
- private RoleDao dao;
-
- @Before
- public void setUp() {
- dao = new RoleDao(getMyBatis());
- }
-
- @Test
- public void insertGroupRoles() {
- setupData("insertGroupRoles");
-
- Collection<GroupRoleDto> groupRoles = Arrays.asList(
- new GroupRoleDto().setGroupId(100L).setResourceId(200L).setRole("admin"),
-
- // no group id => Anyone
- new GroupRoleDto().setResourceId(200L).setRole("user")
- );
- dao.insertGroupRoles(groupRoles);
-
- checkTables("insertGroupRoles", "group_roles");
- }
-
- @Test
- public void insertUserRoles() {
- setupData("insertUserRoles");
-
- Collection<UserRoleDto> userRoles = Arrays.asList(
- new UserRoleDto().setUserId(100L).setResourceId(200L).setRole("admin"),
- new UserRoleDto().setUserId(101L).setResourceId(200L).setRole("user")
- );
- dao.insertUserRoles(userRoles);
-
- checkTables("insertUserRoles", "user_roles");
- }
-}
diff --git a/sonar-core/src/test/java/org/sonar/core/user/UserDaoTest.java b/sonar-core/src/test/java/org/sonar/core/user/UserDaoTest.java
index 6015f5ee196..8fd2516aa29 100644
--- a/sonar-core/src/test/java/org/sonar/core/user/UserDaoTest.java
+++ b/sonar-core/src/test/java/org/sonar/core/user/UserDaoTest.java
@@ -21,12 +21,12 @@ package org.sonar.core.user;
import org.junit.Before;
import org.junit.Test;
-import org.sonar.core.persistence.DaoTestCase;
+import org.sonar.core.persistence.AbstractDaoTestCase;
import static org.fest.assertions.Assertions.assertThat;
-public class UserDaoTest extends DaoTestCase {
+public class UserDaoTest extends AbstractDaoTestCase {
private UserDao dao;
diff --git a/sonar-core/src/test/resources/org/sonar/core/user/RoleDaoTest/insertGroupRoles-result.xml b/sonar-core/src/test/resources/org/sonar/core/user/RoleDaoTest/insertGroupRoles-result.xml
deleted file mode 100644
index 72fd8e47bdf..00000000000
--- a/sonar-core/src/test/resources/org/sonar/core/user/RoleDaoTest/insertGroupRoles-result.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<dataset>
- <group_roles id="1" group_id="100" resource_id="200" role="admin"/>
- <group_roles id="2" group_id="[null]" resource_id="200" role="user"/>
-</dataset> \ No newline at end of file
diff --git a/sonar-core/src/test/resources/org/sonar/core/user/RoleDaoTest/insertGroupRoles.xml b/sonar-core/src/test/resources/org/sonar/core/user/RoleDaoTest/insertGroupRoles.xml
deleted file mode 100644
index a3306c70d7b..00000000000
--- a/sonar-core/src/test/resources/org/sonar/core/user/RoleDaoTest/insertGroupRoles.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<dataset>
-</dataset> \ No newline at end of file
diff --git a/sonar-core/src/test/resources/org/sonar/core/user/RoleDaoTest/insertUserRoles-result.xml b/sonar-core/src/test/resources/org/sonar/core/user/RoleDaoTest/insertUserRoles-result.xml
deleted file mode 100644
index 253a46b3faf..00000000000
--- a/sonar-core/src/test/resources/org/sonar/core/user/RoleDaoTest/insertUserRoles-result.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<dataset>
- <user_roles id="1" user_id="100" resource_id="200" role="admin"/>
- <user_roles id="2" user_id="101" resource_id="200" role="user"/>
-</dataset> \ No newline at end of file
diff --git a/sonar-core/src/test/resources/org/sonar/core/user/RoleDaoTest/insertUserRoles.xml b/sonar-core/src/test/resources/org/sonar/core/user/RoleDaoTest/insertUserRoles.xml
deleted file mode 100644
index a3306c70d7b..00000000000
--- a/sonar-core/src/test/resources/org/sonar/core/user/RoleDaoTest/insertUserRoles.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<dataset>
-</dataset> \ No newline at end of file