aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-db
diff options
context:
space:
mode:
authorSimon Brandhof <simon.brandhof@sonarsource.com>2016-10-20 19:58:55 +0200
committerSimon Brandhof <simon.brandhof@sonarsource.com>2016-10-21 15:58:39 +0200
commitc004eacf334304b7a850185fe2cc4d6d521506b0 (patch)
treecaea7e20c1897e5bdb793b925469b0be12022f44 /sonar-db
parent4770d7ad2a4b88f08fe68be907b1a0f75c964912 (diff)
downloadsonarqube-c004eacf334304b7a850185fe2cc4d6d521506b0.tar.gz
sonarqube-c004eacf334304b7a850185fe2cc4d6d521506b0.zip
SONAR-8134 merge PermissionRepository into PermissionTemplateService
Diffstat (limited to 'sonar-db')
-rw-r--r--sonar-db/src/main/java/org/sonar/db/permission/PermissionRepository.java179
-rw-r--r--sonar-db/src/test/java/org/sonar/db/permission/PermissionRepositoryTest.java178
-rw-r--r--sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/apply_default_permission_template-result.xml125
-rw-r--r--sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/apply_default_permission_template.xml115
-rw-r--r--sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/apply_default_permission_template_by_component_id-result.xml115
-rw-r--r--sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/apply_default_permission_template_by_component_id.xml98
-rw-r--r--sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/should_apply_permission_template-result.xml109
-rw-r--r--sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/should_apply_permission_template.xml88
-rw-r--r--sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/should_count_component_permissions.xml26
-rw-r--r--sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/should_remove_all_permissions-result.xml18
-rw-r--r--sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/should_remove_all_permissions.xml26
-rw-r--r--sonar-db/src/test/resources/org/sonar/db/permission/template/PermissionTemplateDaoTest/createNonAsciiPermissionTemplate-result.xml8
-rw-r--r--sonar-db/src/test/resources/org/sonar/db/permission/template/PermissionTemplateDaoTest/createNonAsciiPermissionTemplate.xml1
13 files changed, 0 insertions, 1086 deletions
diff --git a/sonar-db/src/main/java/org/sonar/db/permission/PermissionRepository.java b/sonar-db/src/main/java/org/sonar/db/permission/PermissionRepository.java
deleted file mode 100644
index 86e0d81d921..00000000000
--- a/sonar-db/src/main/java/org/sonar/db/permission/PermissionRepository.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2016 SonarSource SA
- * mailto:contact AT sonarsource DOT com
- *
- * This program 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.
- *
- * This program 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 this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-package org.sonar.db.permission;
-
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-import java.util.stream.Collectors;
-import javax.annotation.CheckForNull;
-import javax.annotation.Nullable;
-import org.apache.commons.lang.StringUtils;
-import org.sonar.api.config.Settings;
-import org.sonar.db.DbClient;
-import org.sonar.db.DbSession;
-import org.sonar.db.component.ComponentDto;
-import org.sonar.db.permission.template.PermissionTemplateCharacteristicDto;
-import org.sonar.db.permission.template.PermissionTemplateDto;
-import org.sonar.db.permission.template.PermissionTemplateGroupDto;
-import org.sonar.db.permission.template.PermissionTemplateUserDto;
-
-import static java.util.Arrays.asList;
-import static org.sonar.api.security.DefaultGroups.isAnyone;
-
-/**
- * This facade wraps db operations related to permissions
- * <p/>
- * Should be removed when batch will no more create permission, and be replaced by a new PermissionService in module server (probably be a merge with InternalPermissionService)
- * <p/>
- * WARNING, this class is called by Deveveloper Cockpit to apply default permission template on new developers
- */
-public class PermissionRepository {
-
- private final DbClient dbClient;
- private final Settings settings;
-
- public PermissionRepository(DbClient dbClient, Settings settings) {
- this.dbClient = dbClient;
- this.settings = settings;
- }
-
- public void apply(DbSession session, PermissionTemplateDto template, ComponentDto project, @Nullable Long currentUserId) {
- updateProjectAuthorizationDate(session, project.getId());
- dbClient.groupPermissionDao().deleteByRootComponentId(session, project.getId());
- dbClient.userPermissionDao().deleteProjectPermissions(session, project.getId());
-
- List<PermissionTemplateUserDto> usersPermissions = dbClient.permissionTemplateDao().selectUserPermissionsByTemplateId(session, template.getId());
- String organizationUuid = template.getOrganizationUuid();
- usersPermissions
- .forEach(up -> {
- UserPermissionDto dto = new UserPermissionDto(organizationUuid, up.getPermission(), up.getUserId(), project.getId());
- dbClient.userPermissionDao().insert(session, dto);
- });
-
- List<PermissionTemplateGroupDto> groupsPermissions = dbClient.permissionTemplateDao().selectGroupPermissionsByTemplateId(session, template.getId());
- groupsPermissions.forEach(gp -> {
- GroupPermissionDto dto = new GroupPermissionDto()
- .setOrganizationUuid(organizationUuid)
- .setGroupId(isAnyone(gp.getGroupName()) ? null : gp.getGroupId())
- .setRole(gp.getPermission())
- .setResourceId(project.getId());
- dbClient.groupPermissionDao().insert(session, dto);
- });
-
- List<PermissionTemplateCharacteristicDto> characteristics = dbClient.permissionTemplateCharacteristicDao().selectByTemplateIds(session, asList(template.getId()));
- if (currentUserId != null) {
- Set<String> permissionsForCurrentUserAlreadyInDb = usersPermissions.stream()
- .filter(userPermission -> currentUserId.equals(userPermission.getUserId()))
- .map(PermissionTemplateUserDto::getPermission)
- .collect(Collectors.toSet());
- characteristics.stream()
- .filter(PermissionTemplateCharacteristicDto::getWithProjectCreator)
- .filter(characteristic -> !permissionsForCurrentUserAlreadyInDb.contains(characteristic.getPermission()))
- .forEach(c -> {
- UserPermissionDto dto = new UserPermissionDto(organizationUuid, c.getPermission(), currentUserId, project.getId());
- dbClient.userPermissionDao().insert(session, dto);
- });
- }
- }
-
- /**
- * Warning, this method is also used by the Developer Cockpit plugin
- */
- public void applyDefaultPermissionTemplate(DbSession session, long componentId) {
- ComponentDto component = dbClient.componentDao().selectOrFailById(session, componentId);
- applyDefaultPermissionTemplate(session, component, null);
- }
-
- public void applyDefaultPermissionTemplate(DbSession dbSession, ComponentDto componentDto, @Nullable Long userId) {
- PermissionTemplateDto template = getApplicablePermissionTemplate(dbSession, componentDto);
- if (template == null) {
- throw new IllegalArgumentException("Can not retrieve default permission template");
- }
- apply(dbSession, template, componentDto, userId);
- }
-
- /**
- * Return the permission template for the given componentKey. If no template key pattern match then consider default
- * permission template for the resource qualifier.
- */
- @CheckForNull
- private PermissionTemplateDto getApplicablePermissionTemplate(DbSession dbSession, ComponentDto component) {
- // FIXME performance issue here, we should not load all templates
- List<PermissionTemplateDto> allPermissionTemplates = dbClient.permissionTemplateDao().selectAll(dbSession);
- List<PermissionTemplateDto> matchingTemplates = new ArrayList<>();
- for (PermissionTemplateDto permissionTemplateDto : allPermissionTemplates) {
- String keyPattern = permissionTemplateDto.getKeyPattern();
- if (StringUtils.isNotBlank(keyPattern) && component.getKey().matches(keyPattern)) {
- matchingTemplates.add(permissionTemplateDto);
- }
- }
- checkAtMostOneMatchForComponentKey(component.getKey(), matchingTemplates);
- if (matchingTemplates.size() == 1) {
- return matchingTemplates.get(0);
- }
- String qualifierTemplateKey = settings.getString("sonar.permission.template." + component.qualifier() + ".default");
- if (!StringUtils.isBlank(qualifierTemplateKey)) {
- return dbClient.permissionTemplateDao().selectByUuid(dbSession, qualifierTemplateKey);
- }
-
- String defaultTemplateKey = settings.getString("sonar.permission.template.default");
- if (StringUtils.isBlank(defaultTemplateKey)) {
- throw new IllegalStateException("At least one default permission template should be defined");
- }
- return dbClient.permissionTemplateDao().selectByUuid(dbSession, defaultTemplateKey);
- }
-
- public boolean wouldUserHavePermissionWithDefaultTemplate(DbSession dbSession, @Nullable Long currentUserId, String permission, String projectKey, String qualifier) {
- PermissionTemplateDto template = getApplicablePermissionTemplate(dbSession, new ComponentDto().setKey(projectKey).setQualifier(qualifier));
- if (template == null) {
- return false;
- }
-
- List<String> potentialPermissions = dbClient.permissionTemplateDao().selectPotentialPermissionsByUserIdAndTemplateId(dbSession, currentUserId, template.getId());
- return potentialPermissions.contains(permission);
- }
-
- private static void checkAtMostOneMatchForComponentKey(final String componentKey, List<PermissionTemplateDto> matchingTemplates) {
- if (matchingTemplates.size() > 1) {
- StringBuilder templatesNames = new StringBuilder();
- for (Iterator<PermissionTemplateDto> it = matchingTemplates.iterator(); it.hasNext();) {
- templatesNames.append("\"").append(it.next().getName()).append("\"");
- if (it.hasNext()) {
- templatesNames.append(", ");
- }
- }
- throw new IllegalStateException(MessageFormat.format(
- "The \"{0}\" key matches multiple permission templates: {1}."
- + " A system administrator must update these templates so that only one of them matches the key.",
- componentKey,
- templatesNames.toString()));
- }
- }
-
- /**
- * For each modification of permission on a project, update the authorization_updated_at to help ES reindex only relevant changes
- */
- private void updateProjectAuthorizationDate(DbSession dbSession, long projectId) {
- dbClient.resourceDao().updateAuthorizationDate(projectId, dbSession);
- }
-}
diff --git a/sonar-db/src/test/java/org/sonar/db/permission/PermissionRepositoryTest.java b/sonar-db/src/test/java/org/sonar/db/permission/PermissionRepositoryTest.java
deleted file mode 100644
index 0d2b62332d8..00000000000
--- a/sonar-db/src/test/java/org/sonar/db/permission/PermissionRepositoryTest.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2016 SonarSource SA
- * mailto:contact AT sonarsource DOT com
- *
- * This program 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.
- *
- * This program 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 this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-package org.sonar.db.permission;
-
-import java.util.List;
-import javax.annotation.Nullable;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.ExpectedException;
-import org.sonar.api.config.MapSettings;
-import org.sonar.api.config.Settings;
-import org.sonar.api.resources.Qualifiers;
-import org.sonar.api.utils.System2;
-import org.sonar.api.web.UserRole;
-import org.sonar.db.DbSession;
-import org.sonar.db.DbTester;
-import org.sonar.db.component.ComponentDto;
-import org.sonar.db.permission.template.PermissionTemplateDbTester;
-import org.sonar.db.permission.template.PermissionTemplateDto;
-import org.sonar.db.user.GroupDto;
-import org.sonar.db.user.UserDto;
-
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-import static org.sonar.core.permission.GlobalPermissions.SCAN_EXECUTION;
-import static org.sonar.db.component.ComponentTesting.newProjectDto;
-import static org.sonar.db.user.GroupTesting.newGroupDto;
-
-public class PermissionRepositoryTest {
-
- private static final String DEFAULT_TEMPLATE = "default_20130101_010203";
- private static final ComponentDto PROJECT = newProjectDto().setId(123L).setUuid("THE_PROJECT_UUID");
- private static final long NOW = 123456789L;
-
- @Rule
- public ExpectedException throwable = ExpectedException.none();
-
- private System2 system2 = mock(System2.class);
-
- @Rule
- public DbTester dbTester = DbTester.create(system2);
-
- private PermissionTemplateDbTester templateDb = dbTester.permissionTemplates();
- private DbSession session = dbTester.getSession();
- private Settings settings = new MapSettings();
- private PermissionRepository underTest = new PermissionRepository(dbTester.getDbClient(), settings);
-
- @Before
- public void setUp() {
- when(system2.now()).thenReturn(NOW);
- }
-
- @Test
- public void apply_permission_template() {
- dbTester.prepareDbUnit(getClass(), "should_apply_permission_template.xml");
-
- assertThat(selectProjectPermissionsOfGroup("org1", 100L, PROJECT)).isEmpty();
- assertThat(selectProjectPermissionsOfGroup("org1", 101L, PROJECT)).isEmpty();
- assertThat(selectProjectPermissionsOfGroup("org1", null, PROJECT)).isEmpty();
- assertThat(selectProjectPermissionsOfUser(200L, PROJECT)).isEmpty();
-
- PermissionTemplateDto template = dbTester.getDbClient().permissionTemplateDao().selectByUuid(session, "default_20130101_010203");
- underTest.apply(session, template, PROJECT, null);
-
- assertThat(selectProjectPermissionsOfGroup("org1", 100L, PROJECT)).containsOnly("admin", "issueadmin");
- assertThat(selectProjectPermissionsOfGroup("org1", 101L, PROJECT)).containsOnly("user", "codeviewer");
- assertThat(selectProjectPermissionsOfGroup("org1", null, PROJECT)).containsOnly("user", "codeviewer");
- assertThat(selectProjectPermissionsOfUser(200L, PROJECT)).containsOnly("admin");
-
- checkAuthorizationUpdatedAtIsUpdated();
- }
-
- private List<String> selectProjectPermissionsOfGroup(String organizationUuid, @Nullable Long groupId, ComponentDto project) {
- return dbTester.getDbClient().groupPermissionDao().selectProjectPermissionsOfGroup(session,
- organizationUuid, groupId != null ? groupId : null, project.getId());
- }
-
- private List<String> selectProjectPermissionsOfUser(long userId, ComponentDto project) {
- return dbTester.getDbClient().userPermissionDao().selectProjectPermissionsOfUser(session,
- userId, project.getId());
- }
-
- @Test
- public void apply_default_permission_template_from_component_id() {
- dbTester.prepareDbUnit(getClass(), "apply_default_permission_template_by_component_id.xml");
- settings.setProperty("sonar.permission.template.default", DEFAULT_TEMPLATE);
-
- underTest.applyDefaultPermissionTemplate(session, PROJECT.getId());
- session.commit();
-
- dbTester.assertDbUnitTable(getClass(), "apply_default_permission_template_by_component_id-result.xml", "user_roles", "user_id", "resource_id", "role");
- }
-
- @Test
- public void apply_default_permission_template_from_component() {
- dbTester.prepareDbUnit(getClass(), "apply_default_permission_template.xml");
- settings.setProperty("sonar.permission.template.default", DEFAULT_TEMPLATE);
-
- underTest.applyDefaultPermissionTemplate(session, dbTester.getDbClient().componentDao().selectOrFailByKey(session, "org.struts:struts"), 201L);
- session.commit();
-
- dbTester.assertDbUnitTable(getClass(), "apply_default_permission_template-result.xml", "user_roles", "user_id", "resource_id", "role");
- }
-
- @Test
- public void would_user_have_permission_with_default_permission_template() {
- UserDto user = dbTester.users().insertUser();
- GroupDto group = dbTester.users().insertGroup(newGroupDto());
- dbTester.users().insertMember(group, user);
- PermissionTemplateDto template = templateDb.insertTemplate();
- setDefaultTemplateUuid(template.getUuid());
- templateDb.addProjectCreatorToTemplate(template.getId(), SCAN_EXECUTION);
- templateDb.addUserToTemplate(template.getId(), user.getId(), UserRole.USER);
- templateDb.addGroupToTemplate(template.getId(), group.getId(), UserRole.CODEVIEWER);
- templateDb.addGroupToTemplate(template.getId(), null, UserRole.ISSUE_ADMIN);
-
- // authenticated user
- checkWouldUserHavePermission(user.getId(), UserRole.ADMIN, false);
- checkWouldUserHavePermission(user.getId(), SCAN_EXECUTION, true);
- checkWouldUserHavePermission(user.getId(), UserRole.USER, true);
- checkWouldUserHavePermission(user.getId(), UserRole.CODEVIEWER, true);
- checkWouldUserHavePermission(user.getId(), UserRole.ISSUE_ADMIN, true);
-
- // anonymous user
- checkWouldUserHavePermission(null, UserRole.ADMIN, false);
- checkWouldUserHavePermission(null, SCAN_EXECUTION, false);
- checkWouldUserHavePermission(null, UserRole.USER, false);
- checkWouldUserHavePermission(null, UserRole.CODEVIEWER, false);
- checkWouldUserHavePermission(null, UserRole.ISSUE_ADMIN, true);
- }
-
- @Test
- public void would_user_have_permission_with_unknown_default_permission_template() {
- setDefaultTemplateUuid("UNKNOWN_TEMPLATE_UUID");
-
- checkWouldUserHavePermission(null, UserRole.ADMIN, false);
- }
-
- @Test
- public void would_user_have_permission_with_empty_template() {
- PermissionTemplateDto template = templateDb.insertTemplate();
- setDefaultTemplateUuid(template.getUuid());
-
- checkWouldUserHavePermission(null, UserRole.ADMIN, false);
- }
-
- private void checkWouldUserHavePermission(@Nullable Long userId, String permission, boolean expectedResult) {
- assertThat(underTest.wouldUserHavePermissionWithDefaultTemplate(session, userId, permission, "PROJECT_KEY", Qualifiers.PROJECT)).isEqualTo(expectedResult);
- }
-
- private void checkAuthorizationUpdatedAtIsUpdated() {
- assertThat(dbTester.getDbClient().resourceDao().selectResource(PROJECT.getId(), session).getAuthorizationUpdatedAt()).isEqualTo(NOW);
- }
-
- private void setDefaultTemplateUuid(String templateUuid) {
- settings.setProperty("sonar.permission.template.default", templateUuid);
- }
-
-}
diff --git a/sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/apply_default_permission_template-result.xml b/sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/apply_default_permission_template-result.xml
deleted file mode 100644
index 4e6496e31e3..00000000000
--- a/sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/apply_default_permission_template-result.xml
+++ /dev/null
@@ -1,125 +0,0 @@
-<dataset>
-
- <groups id="100"
- name="sonar-administrators"
- organization_uuid="org1"/>
- <groups id="101"
- name="sonar-users"
- organization_uuid="org1"/>
-
- <users id="200"
- login="marius"
- name="Marius"
- email="[null]"
- active="[true]"
- is_root="[false]"/>
- <users id="201"
- login="janette"
- name="Janette"
- email="[null]"
- active="[true]"
- is_root="[false]"/>
-
- <!-- on other resources -->
- <group_roles id="1"
- group_id="100"
- resource_id="1"
- role="admin"
- organization_uuid="org1"/>
- <group_roles id="2"
- group_id="101"
- resource_id="1"
- role="user"
- organization_uuid="org1"/>
- <user_roles id="1"
- user_id="200"
- resource_id="1"
- role="admin"
- organization_uuid="org1"/>
-
- <!-- new groups permissions : sonar-administrators (admin), sonar-users (user & codeviewer), Anyone (user & codeviewer) -->
- <group_roles id="3"
- group_id="100"
- resource_id="123"
- role="admin"
- organization_uuid="org1"/>
- <group_roles id="4"
- group_id="101"
- resource_id="123"
- role="user"
- organization_uuid="org1"/>
- <group_roles id="5"
- group_id="[null]"
- resource_id="123"
- role="user"
- organization_uuid="org1"/>
- <group_roles id="6"
- group_id="101"
- resource_id="123"
- role="codeviewer"
- organization_uuid="org1"/>
- <group_roles id="7"
- group_id="[null]"
- resource_id="123"
- role="codeviewer"
- organization_uuid="org1"/>
- <group_roles id="8"
- group_id="100"
- resource_id="123"
- role="issueadmin"
- organization_uuid="org1"/>
-
- <!-- new user permission : marius (admin) & janette (user) -->
- <user_roles id="2"
- user_id="200"
- resource_id="123"
- role="admin"
- organization_uuid="org1"/>
- <user_roles id="3"
- user_id="201"
- resource_id="123"
- role="admin"
- organization_uuid="org1"/>
- <user_roles id="4"
- user_id="201"
- resource_id="123"
- role="user"
- organization_uuid="org1"/>
-
- <!-- default permission template for all qualifiers -->
- <permission_templates id="1"
- name="default"
- kee="default_20130101_010203"
- organization_uuid="org1"/>
-
- <perm_templates_groups id="1"
- template_id="1"
- group_id="100"
- permission_reference="admin"/>
- <perm_templates_groups id="2"
- template_id="1"
- group_id="101"
- permission_reference="user"/>
- <perm_templates_groups id="3"
- template_id="1"
- group_id="[null]"
- permission_reference="user"/>
- <perm_templates_groups id="4"
- template_id="1"
- group_id="101"
- permission_reference="codeviewer"/>
- <perm_templates_groups id="5"
- template_id="1"
- group_id="[null]"
- permission_reference="codeviewer"/>
- <perm_templates_groups id="6"
- template_id="1"
- group_id="100"
- permission_reference="issueadmin"/>
-
- <perm_templates_users id="1"
- template_id="1"
- user_id="200"
- permission_reference="admin"/>
-
-</dataset>
diff --git a/sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/apply_default_permission_template.xml b/sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/apply_default_permission_template.xml
deleted file mode 100644
index 04c60e6a91f..00000000000
--- a/sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/apply_default_permission_template.xml
+++ /dev/null
@@ -1,115 +0,0 @@
-<dataset>
-
- <projects uuid="A"
- uuid_path="NOT_USED"
- root_uuid="A"
- scope="PRJ"
- qualifier="TRK"
- kee="org.struts:struts"
- name="Struts"
- description="the description"
- long_name="Apache Struts"
- enabled="[true]"
- language="java"
- copy_component_uuid="[null]"
- developer_uuid="[null]"
- path="[null]"
- authorization_updated_at="123456789"
- id="123"/>
-
- <groups id="100"
- name="sonar-administrators"
- organization_uuid="org1"/>
- <groups id="101"
- name="sonar-users"
- organization_uuid="org1"/>
-
- <users id="200"
- login="marius"
- name="Marius"
- email="[null]"
- active="[true]"
- is_root="[false]"/>
- <users id="201"
- login="janette"
- name="Janette"
- email="[null]"
- active="[true]"
- is_root="[false]"/>
-
- <!-- on other resources -->
- <group_roles id="1"
- group_id="100"
- resource_id="1"
- role="admin"
- organization_uuid="org1"/>
- <group_roles id="2"
- group_id="101"
- resource_id="1"
- role="user"
- organization_uuid="org1"/>
- <user_roles id="1"
- user_id="200"
- resource_id="1"
- role="admin"
- organization_uuid="org1"/>
-
- <!-- default permission template for all qualifiers -->
- <permission_templates id="1"
- name="default"
- kee="default_20130101_010203"
- organization_uuid="org1"/>
-
- <perm_templates_groups id="1"
- template_id="1"
- group_id="100"
- permission_reference="admin"/>
- <perm_templates_groups id="2"
- template_id="1"
- group_id="101"
- permission_reference="user"/>
- <perm_templates_groups id="3"
- template_id="1"
- group_id="[null]"
- permission_reference="user"/>
- <perm_templates_groups id="4"
- template_id="1"
- group_id="101"
- permission_reference="codeviewer"/>
- <perm_templates_groups id="5"
- template_id="1"
- group_id="[null]"
- permission_reference="codeviewer"/>
- <perm_templates_groups id="6"
- template_id="1"
- group_id="100"
- permission_reference="issueadmin"/>
-
- <perm_templates_users id="1"
- template_id="1"
- user_id="200"
- permission_reference="admin"/>
- <perm_templates_users id="2"
- template_id="1"
- user_id="201"
- permission_reference="admin"/>
-
- <perm_tpl_characteristics id="1"
- template_id="1"
- permission_key="user"
- with_project_creator="[true]"
- created_at="1234567890"
- updated_at="123457890"/>
- <perm_tpl_characteristics id="2"
- template_id="1"
- permission_key="admin"
- with_project_creator="[true]"
- created_at="1234567890"
- updated_at="123457890"/>
- <perm_tpl_characteristics id="3"
- template_id="2"
- permission_key="user"
- with_project_creator="[false]"
- created_at="1234567890"
- updated_at="1234567890"/>
-</dataset>
diff --git a/sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/apply_default_permission_template_by_component_id-result.xml b/sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/apply_default_permission_template_by_component_id-result.xml
deleted file mode 100644
index c0a3eef5b84..00000000000
--- a/sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/apply_default_permission_template_by_component_id-result.xml
+++ /dev/null
@@ -1,115 +0,0 @@
-<dataset>
-
- <groups id="100"
- name="sonar-administrators"
- organization_uuid="org1"/>
- <groups id="101"
- name="sonar-users"
- organization_uuid="org1"/>
-
- <users id="200"
- login="marius"
- name="Marius"
- email="[null]"
- active="[true]"
- is_root="[false]"/>
- <users id="201"
- login="janette"
- name="Janette"
- email="[null]"
- active="[true]"
- is_root="[false]"/>
-
- <!-- on other resources -->
- <group_roles id="1"
- group_id="100"
- resource_id="1"
- role="admin"
- organization_uuid="org1"/>
- <group_roles id="2"
- group_id="101"
- resource_id="1"
- role="user"
- organization_uuid="org1"/>
- <user_roles id="1"
- user_id="200"
- resource_id="1"
- role="admin"
- organization_uuid="org1"/>
-
- <!-- new groups permissions : sonar-administrators (admin), sonar-users (user & codeviewer), Anyone (user & codeviewer) -->
- <group_roles id="3"
- group_id="100"
- resource_id="123"
- role="admin"
- organization_uuid="org1"/>
- <group_roles id="4"
- group_id="101"
- resource_id="123"
- role="user"
- organization_uuid="org1"/>
- <group_roles id="5"
- group_id="[null]"
- resource_id="123"
- role="user"
- organization_uuid="org1"/>
- <group_roles id="6"
- group_id="101"
- resource_id="123"
- role="codeviewer"
- organization_uuid="org1"/>
- <group_roles id="7"
- group_id="[null]"
- resource_id="123"
- role="codeviewer"
- organization_uuid="org1"/>
- <group_roles id="8"
- group_id="100"
- resource_id="123"
- role="issueadmin"
- organization_uuid="org1"/>
-
- <!-- new user permission : marius (admin) & janette (user) -->
- <user_roles id="2"
- user_id="200"
- resource_id="123"
- role="admin"
- organization_uuid="org1"/>
-
- <!-- default permission template for all qualifiers -->
- <permission_templates id="1"
- name="default"
- kee="default_20130101_010203"
- organization_uuid="org1"/>
-
- <perm_templates_groups id="1"
- template_id="1"
- group_id="100"
- permission_reference="admin"/>
- <perm_templates_groups id="2"
- template_id="1"
- group_id="101"
- permission_reference="user"/>
- <perm_templates_groups id="3"
- template_id="1"
- group_id="[null]"
- permission_reference="user"/>
- <perm_templates_groups id="4"
- template_id="1"
- group_id="101"
- permission_reference="codeviewer"/>
- <perm_templates_groups id="5"
- template_id="1"
- group_id="[null]"
- permission_reference="codeviewer"/>
- <perm_templates_groups id="6"
- template_id="1"
- group_id="100"
- permission_reference="issueadmin"/>
-
- <perm_templates_users id="1"
- template_id="1"
- user_id="200"
- permission_reference="admin"/>
-
-</dataset>
diff --git a/sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/apply_default_permission_template_by_component_id.xml b/sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/apply_default_permission_template_by_component_id.xml
deleted file mode 100644
index ee44229b86f..00000000000
--- a/sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/apply_default_permission_template_by_component_id.xml
+++ /dev/null
@@ -1,98 +0,0 @@
-<dataset>
- <projects uuid="A"
- uuid_path="NOT_USED"
- root_uuid="A"
- scope="PRJ"
- qualifier="TRK"
- kee="org.struts:struts"
- name="Struts"
- description="the description"
- long_name="Apache Struts"
- enabled="[true]"
- language="java"
- copy_component_uuid="[null]"
- developer_uuid="[null]"
- path="[null]"
- authorization_updated_at="123456789"
- id="123"/>
-
- <groups id="100"
- name="sonar-administrators"
- organization_uuid="org1"/>
- <groups id="101"
- name="sonar-users"
- organization_uuid="org1"/>
-
- <users id="200"
- login="marius"
- name="Marius"
- email="[null]"
- active="[true]"
- is_root="[false]"/>
-
- <!-- on other resources -->
- <group_roles id="1"
- group_id="100"
- resource_id="1"
- role="admin"
- organization_uuid="org1"/>
- <group_roles id="2"
- group_id="101"
- resource_id="1"
- role="user"
- organization_uuid="org1"/>
- <user_roles id="1"
- user_id="200"
- resource_id="1"
- role="admin"
- organization_uuid="org1"/>
-
- <!-- default permission template for all qualifiers -->
- <permission_templates id="1"
- name="default"
- kee="default_20130101_010203"
- organization_uuid="org1"/>
-
- <perm_templates_groups id="1"
- template_id="1"
- group_id="100"
- permission_reference="admin"/>
- <perm_templates_groups id="2"
- template_id="1"
- group_id="101"
- permission_reference="user"/>
- <perm_templates_groups id="3"
- template_id="1"
- group_id="[null]"
- permission_reference="user"/>
- <perm_templates_groups id="4"
- template_id="1"
- group_id="101"
- permission_reference="codeviewer"/>
- <perm_templates_groups id="5"
- template_id="1"
- group_id="[null]"
- permission_reference="codeviewer"/>
- <perm_templates_groups id="6"
- template_id="1"
- group_id="100"
- permission_reference="issueadmin"/>
-
- <perm_templates_users id="1"
- template_id="1"
- user_id="200"
- permission_reference="admin"/>
-
- <perm_tpl_characteristics id="1"
- template_id="1"
- permission_key="user"
- with_project_creator="[true]"
- created_at="1234567890"
- updated_at="123457890"/>
- <perm_tpl_characteristics id="2"
- template_id="2"
- permission_key="user"
- with_project_creator="[false]"
- created_at="1234567890"
- updated_at="1234567890"/>
-</dataset>
diff --git a/sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/should_apply_permission_template-result.xml b/sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/should_apply_permission_template-result.xml
deleted file mode 100644
index 7667cf5e407..00000000000
--- a/sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/should_apply_permission_template-result.xml
+++ /dev/null
@@ -1,109 +0,0 @@
-<dataset>
-
- <groups id="100"
- name="sonar-administrators"
- organization_uuid="org1"/>
- <groups id="101"
- name="sonar-users"
- organization_uuid="org1"/>
-
- <users id="200"
- login="marius"
- name="Marius"
- email="[null]"
- active="[true]"
- is_root="[false]"/>
-
- <!-- on other resources -->
- <group_roles id="1"
- group_id="100"
- resource_id="1"
- role="admin"
- organization_uuid="org1"/>
- <group_roles id="2"
- group_id="101"
- resource_id="1"
- role="user"
- organization_uuid="org1"/>
- <user_roles id="1"
- user_id="200"
- resource_id="1"
- role="admin"
- organization_uuid="org1"/>
-
- <!-- new groups permissions : sonar-administrators (admin), sonar-users (user & codeviewer), Anyone (user & codeviewer) -->
- <group_roles id="3"
- group_id="100"
- resource_id="123"
- role="admin"
- organization_uuid="org1"/>
- <group_roles id="4"
- group_id="101"
- resource_id="123"
- role="user"
- organization_uuid="org1"/>
- <group_roles id="5"
- group_id="[null]"
- resource_id="123"
- role="user"
- organization_uuid="org1"/>
- <group_roles id="6"
- group_id="101"
- resource_id="123"
- role="codeviewer"
- organization_uuid="org1"/>
- <group_roles id="7"
- group_id="[null]"
- resource_id="123"
- role="codeviewer"
- organization_uuid="org1"/>
- <group_roles id="8"
- group_id="100"
- resource_id="123"
- role="issueadmin"
- organization_uuid="org1"/>
-
- <!-- new user permission : marius (admin) -->
- <user_roles id="2"
- user_id="200"
- resource_id="123"
- role="admin"
- organization_uuid="org1"/>
-
- <!-- default permission template for all qualifiers -->
- <permission_templates id="1"
- name="default"
- kee="default_20130101_010203"
- organization_uuid="org1"/>
-
- <perm_templates_groups id="1"
- template_id="1"
- group_id="100"
- permission_reference="admin"/>
- <perm_templates_groups id="2"
- template_id="1"
- group_id="101"
- permission_reference="user"/>
- <perm_templates_groups id="3"
- template_id="1"
- group_id="[null]"
- permission_reference="user"/>
- <perm_templates_groups id="4"
- template_id="1"
- group_id="101"
- permission_reference="codeviewer"/>
- <perm_templates_groups id="5"
- template_id="1"
- group_id="[null]"
- permission_reference="codeviewer"/>
- <perm_templates_groups id="6"
- template_id="1"
- group_id="100"
- permission_reference="issueadmin"/>
-
- <perm_templates_users id="1"
- template_id="1"
- user_id="200"
- permission_reference="admin"/>
-
-</dataset>
diff --git a/sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/should_apply_permission_template.xml b/sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/should_apply_permission_template.xml
deleted file mode 100644
index ff82df0b5be..00000000000
--- a/sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/should_apply_permission_template.xml
+++ /dev/null
@@ -1,88 +0,0 @@
-<dataset>
-
- <projects uuid="THE_PROJECT_UUID"
- uuid_path="NOT_USED"
- root_uuid="THE_PROJECT_UUID"
- scope="PRJ"
- qualifier="TRK"
- kee="org.struts:struts"
- name="Struts"
- description="the description"
- long_name="Apache Struts"
- enabled="[true]"
- language="java"
- copy_component_uuid="[null]"
- developer_uuid="[null]"
- path="[null]"
- authorization_updated_at="123456789"
- id="123"/>
-
- <groups id="100"
- name="sonar-administrators"
- organization_uuid="org1"/>
- <groups id="101"
- name="sonar-users"
- organization_uuid="org1"/>
-
- <users id="200"
- login="marius"
- name="Marius"
- email="[null]"
- active="[true]"
- is_root="[false]"/>
-
- <!-- on other resources -->
- <group_roles id="1"
- group_id="100"
- resource_id="1"
- role="admin"
- organization_uuid="org1"/>
- <group_roles id="2"
- group_id="101"
- resource_id="1"
- role="user"
- organization_uuid="org1"/>
- <user_roles id="1"
- user_id="200"
- resource_id="1"
- role="admin"
- organization_uuid="org1"/>
-
-
- <!-- default permission template for all qualifiers -->
- <permission_templates id="1"
- name="default"
- kee="default_20130101_010203"
- organization_uuid="org1"/>
-
- <perm_templates_groups id="1"
- template_id="1"
- group_id="100"
- permission_reference="admin"/>
- <perm_templates_groups id="2"
- template_id="1"
- group_id="101"
- permission_reference="user"/>
- <perm_templates_groups id="3"
- template_id="1"
- group_id="[null]"
- permission_reference="user"/>
- <perm_templates_groups id="4"
- template_id="1"
- group_id="101"
- permission_reference="codeviewer"/>
- <perm_templates_groups id="5"
- template_id="1"
- group_id="[null]"
- permission_reference="codeviewer"/>
- <perm_templates_groups id="6"
- template_id="1"
- group_id="100"
- permission_reference="issueadmin"/>
-
- <perm_templates_users id="1"
- template_id="1"
- user_id="200"
- permission_reference="admin"/>
-
-</dataset>
diff --git a/sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/should_count_component_permissions.xml b/sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/should_count_component_permissions.xml
deleted file mode 100644
index 3c91825413a..00000000000
--- a/sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/should_count_component_permissions.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<dataset>
-
- <users id="200"
- login="dave.loper"
- name="Dave Loper"
- email="dave.loper@company.net"
- active="[true]"
- is_root="[false]"/>
-
- <groups id="100"
- name="devs"
- organization_uuid="org1"/>
-
- <user_roles id="1"
- user_id="200"
- resource_id="123"
- role="user"
- organization_uuid="org1"/>
-
- <group_roles id="1"
- group_id="100"
- resource_id="123"
- role="codeviewer"
- organization_uuid="org1"/>
-
-</dataset>
diff --git a/sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/should_remove_all_permissions-result.xml b/sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/should_remove_all_permissions-result.xml
deleted file mode 100644
index 77964cdc299..00000000000
--- a/sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/should_remove_all_permissions-result.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<dataset>
-
- <users id="200"
- login="dave.loper"
- name="Dave Loper"
- email="dave.loper@company.net"
- active="[true]"
- is_root="[false]"/>
-
- <groups id="100"
- name="devs"
- organization_uuid="org1"/>
-
- <user_roles/>
-
- <group_roles/>
-
-</dataset>
diff --git a/sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/should_remove_all_permissions.xml b/sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/should_remove_all_permissions.xml
deleted file mode 100644
index 3c91825413a..00000000000
--- a/sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/should_remove_all_permissions.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<dataset>
-
- <users id="200"
- login="dave.loper"
- name="Dave Loper"
- email="dave.loper@company.net"
- active="[true]"
- is_root="[false]"/>
-
- <groups id="100"
- name="devs"
- organization_uuid="org1"/>
-
- <user_roles id="1"
- user_id="200"
- resource_id="123"
- role="user"
- organization_uuid="org1"/>
-
- <group_roles id="1"
- group_id="100"
- resource_id="123"
- role="codeviewer"
- organization_uuid="org1"/>
-
-</dataset>
diff --git a/sonar-db/src/test/resources/org/sonar/db/permission/template/PermissionTemplateDaoTest/createNonAsciiPermissionTemplate-result.xml b/sonar-db/src/test/resources/org/sonar/db/permission/template/PermissionTemplateDaoTest/createNonAsciiPermissionTemplate-result.xml
deleted file mode 100644
index 519de675357..00000000000
--- a/sonar-db/src/test/resources/org/sonar/db/permission/template/PermissionTemplateDaoTest/createNonAsciiPermissionTemplate-result.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<dataset>
- <permission_templates id="1"
- name="Môü Gnô Gnèçàß"
- kee="mou_gno_gneca_20130102_010405"
- description="my description"
- key_pattern="[null]"
- organization_uuid="org1"/>
-</dataset>
diff --git a/sonar-db/src/test/resources/org/sonar/db/permission/template/PermissionTemplateDaoTest/createNonAsciiPermissionTemplate.xml b/sonar-db/src/test/resources/org/sonar/db/permission/template/PermissionTemplateDaoTest/createNonAsciiPermissionTemplate.xml
deleted file mode 100644
index 5ed00ba028b..00000000000
--- a/sonar-db/src/test/resources/org/sonar/db/permission/template/PermissionTemplateDaoTest/createNonAsciiPermissionTemplate.xml
+++ /dev/null
@@ -1 +0,0 @@
-<dataset></dataset> \ No newline at end of file