aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-core
diff options
context:
space:
mode:
authorJulien HENRY <julien.henry@sonarsource.com>2013-11-29 18:38:35 +0100
committerJulien HENRY <julien.henry@sonarsource.com>2013-12-02 14:57:33 +0100
commitc349fe24b6a3134e9268bde53e4f139d8ec03e4e (patch)
treee8bd6509b5e254f2df6ae981ecebc5eebdec2b3c /sonar-core
parentce4052cc01ebf601332266f06b520d74d4566ce6 (diff)
downloadsonarqube-c349fe24b6a3134e9268bde53e4f139d8ec03e4e.tar.gz
sonarqube-c349fe24b6a3134e9268bde53e4f139d8ec03e4e.zip
SONAR-4535 Add key pattern field on permission templates
Diffstat (limited to 'sonar-core')
-rw-r--r--sonar-core/src/main/java/org/sonar/core/permission/PermissionTemplateDao.java12
-rw-r--r--sonar-core/src/main/java/org/sonar/core/permission/PermissionTemplateDto.java12
-rw-r--r--sonar-core/src/main/java/org/sonar/core/persistence/DatabaseVersion.java2
-rw-r--r--sonar-core/src/main/resources/org/sonar/core/permission/PermissionTemplateMapper.xml15
-rw-r--r--sonar-core/src/main/resources/org/sonar/core/persistence/rows-h2.sql1
-rw-r--r--sonar-core/src/main/resources/org/sonar/core/persistence/schema-h2.ddl1
-rw-r--r--sonar-core/src/test/java/org/sonar/core/permission/PermissionTemplateDaoTest.java13
-rw-r--r--sonar-core/src/test/resources/org/sonar/core/permission/PermissionTemplateDaoTest/createNonAsciiPermissionTemplate-result.xml4
-rw-r--r--sonar-core/src/test/resources/org/sonar/core/permission/PermissionTemplateDaoTest/createPermissionTemplate-result.xml4
-rw-r--r--sonar-core/src/test/resources/org/sonar/core/permission/PermissionTemplateDaoTest/updatePermissionTemplate-result.xml6
-rw-r--r--sonar-core/src/test/resources/org/sonar/core/permission/PermissionTemplateDaoTest/updatePermissionTemplate.xml6
11 files changed, 49 insertions, 27 deletions
diff --git a/sonar-core/src/main/java/org/sonar/core/permission/PermissionTemplateDao.java b/sonar-core/src/main/java/org/sonar/core/permission/PermissionTemplateDao.java
index ac6341a3bf0..a320ba0fb79 100644
--- a/sonar-core/src/main/java/org/sonar/core/permission/PermissionTemplateDao.java
+++ b/sonar-core/src/main/java/org/sonar/core/permission/PermissionTemplateDao.java
@@ -79,11 +79,11 @@ public class PermissionTemplateDao implements TaskComponent, ServerComponent {
PermissionTemplateMapper mapper = session.getMapper(PermissionTemplateMapper.class);
permissionTemplate = mapper.selectByName(templateName);
PermissionTemplateDto templateUsersPermissions = mapper.selectTemplateUsersPermissions(templateName);
- if(templateUsersPermissions != null) {
+ if (templateUsersPermissions != null) {
permissionTemplate.setUsersPermissions(templateUsersPermissions.getUsersPermissions());
}
PermissionTemplateDto templateGroupsPermissions = mapper.selectTemplateGroupsPermissions(templateName);
- if(templateGroupsPermissions != null) {
+ if (templateGroupsPermissions != null) {
permissionTemplate.setGroupsByPermission(templateGroupsPermissions.getGroupsPermissions());
}
} finally {
@@ -102,12 +102,13 @@ public class PermissionTemplateDao implements TaskComponent, ServerComponent {
}
}
- public PermissionTemplateDto createPermissionTemplate(String templateName, @Nullable String description) {
+ public PermissionTemplateDto createPermissionTemplate(String templateName, @Nullable String description, @Nullable String keyPattern) {
Date creationDate = now();
PermissionTemplateDto permissionTemplate = new PermissionTemplateDto()
.setName(templateName)
.setKee(generateTemplateKee(templateName, creationDate))
.setDescription(description)
+ .setKeyPattern(keyPattern)
.setCreatedAt(creationDate)
.setUpdatedAt(creationDate);
SqlSession session = myBatis.openSession();
@@ -134,11 +135,12 @@ public class PermissionTemplateDao implements TaskComponent, ServerComponent {
}
}
- public void updatePermissionTemplate(Long templateId, String templateName, @Nullable String description) {
+ public void updatePermissionTemplate(Long templateId, String templateName, @Nullable String description, @Nullable String keyPattern) {
PermissionTemplateDto permissionTemplate = new PermissionTemplateDto()
.setId(templateId)
.setName(templateName)
.setDescription(description)
+ .setKeyPattern(keyPattern)
.setUpdatedAt(now());
SqlSession session = myBatis.openSession();
try {
@@ -215,7 +217,7 @@ public class PermissionTemplateDao implements TaskComponent, ServerComponent {
}
private String generateTemplateKee(String name, Date timeStamp) {
- if(PermissionTemplateDto.DEFAULT.getName().equals(name)) {
+ if (PermissionTemplateDto.DEFAULT.getName().equals(name)) {
return PermissionTemplateDto.DEFAULT.getKee();
}
String normalizedName = Normalizer.normalize(name, Normalizer.Form.NFD).replaceAll("[^\\p{ASCII}]", "").replace(" ", "_");
diff --git a/sonar-core/src/main/java/org/sonar/core/permission/PermissionTemplateDto.java b/sonar-core/src/main/java/org/sonar/core/permission/PermissionTemplateDto.java
index a68a60557aa..70c2a525218 100644
--- a/sonar-core/src/main/java/org/sonar/core/permission/PermissionTemplateDto.java
+++ b/sonar-core/src/main/java/org/sonar/core/permission/PermissionTemplateDto.java
@@ -22,6 +22,7 @@ package org.sonar.core.permission;
import javax.annotation.CheckForNull;
import javax.annotation.Nullable;
+
import java.util.Date;
import java.util.List;
@@ -36,6 +37,7 @@ public class PermissionTemplateDto {
private String name;
private String kee;
private String description;
+ private String keyPattern;
private List<PermissionTemplateUserDto> usersPermissions;
private List<PermissionTemplateGroupDto> groupsPermissions;
private Date createdAt;
@@ -79,6 +81,16 @@ public class PermissionTemplateDto {
}
@CheckForNull
+ public String getKeyPattern() {
+ return keyPattern;
+ }
+
+ public PermissionTemplateDto setKeyPattern(@Nullable String regexp) {
+ this.keyPattern = regexp;
+ return this;
+ }
+
+ @CheckForNull
public List<PermissionTemplateUserDto> getUsersPermissions() {
return usersPermissions;
}
diff --git a/sonar-core/src/main/java/org/sonar/core/persistence/DatabaseVersion.java b/sonar-core/src/main/java/org/sonar/core/persistence/DatabaseVersion.java
index caa95eeab07..845d94b5c6f 100644
--- a/sonar-core/src/main/java/org/sonar/core/persistence/DatabaseVersion.java
+++ b/sonar-core/src/main/java/org/sonar/core/persistence/DatabaseVersion.java
@@ -33,7 +33,7 @@ import java.util.List;
*/
public class DatabaseVersion implements BatchComponent, ServerComponent {
- public static final int LAST_VERSION = 464;
+ public static final int LAST_VERSION = 465;
public static enum Status {
UP_TO_DATE, REQUIRES_UPGRADE, REQUIRES_DOWNGRADE, FRESH_INSTALL
diff --git a/sonar-core/src/main/resources/org/sonar/core/permission/PermissionTemplateMapper.xml b/sonar-core/src/main/resources/org/sonar/core/permission/PermissionTemplateMapper.xml
index 7293920ebe2..29af09a54c0 100644
--- a/sonar-core/src/main/resources/org/sonar/core/permission/PermissionTemplateMapper.xml
+++ b/sonar-core/src/main/resources/org/sonar/core/permission/PermissionTemplateMapper.xml
@@ -4,13 +4,13 @@
<mapper namespace="org.sonar.core.permission.PermissionTemplateMapper">
<insert id="insert" parameterType="PermissionTemplate" keyColumn="id" useGeneratedKeys="true" keyProperty="id">
- INSERT INTO permission_templates (name, kee, description, created_at, updated_at)
- VALUES (#{name}, #{kee}, #{description}, #{createdAt}, #{updatedAt})
+ INSERT INTO permission_templates (name, kee, description, key_pattern, created_at, updated_at)
+ VALUES (#{name}, #{kee}, #{description}, #{keyPattern}, #{createdAt}, #{updatedAt})
</insert>
<update id="update" parameterType="PermissionTemplate">
UPDATE permission_templates
- SET name = #{name}, description = #{description}, updated_at = #{updatedAt}
+ SET name = #{name}, description = #{description}, key_pattern = #{keyPattern}, updated_at = #{updatedAt}
WHERE id = #{id}
</update>
@@ -62,19 +62,19 @@
</delete>
<select id="selectByKey" parameterType="String" resultType="PermissionTemplate">
- SELECT id, name, kee, description, created_at AS createdAt, updated_at AS updatedAt
+ SELECT id, name, kee, description, key_pattern AS keyPattern, created_at AS createdAt, updated_at AS updatedAt
FROM permission_templates
WHERE kee = #{kee}
</select>
<select id="selectByName" parameterType="String" resultType="PermissionTemplate">
- SELECT id, name, kee, description, created_at AS createdAt, updated_at AS updatedAt
+ SELECT id, name, kee, description, key_pattern AS keyPattern, created_at AS createdAt, updated_at AS updatedAt
FROM permission_templates
WHERE name = #{templateName}
</select>
<select id="selectAllPermissionTemplates" resultType="PermissionTemplate">
- SELECT id, name, kee, description, created_at AS createdAt, updated_at AS updatedAt
+ SELECT id, name, kee, description, key_pattern AS keyPattern, created_at AS createdAt, updated_at AS updatedAt
FROM permission_templates
</select>
@@ -82,6 +82,7 @@
SELECT pt.id AS template_id,
pt.name AS template_name,
pt.description AS template_description,
+ pt.key_pattern AS template_key_pattern,
pt.created_at AS template_created_at,
pt.updated_at AS template_updated_at,
ptu.id AS permission_template_user_id,
@@ -99,6 +100,7 @@
SELECT pt.id AS template_id,
pt.name AS template_name,
pt.description AS template_description,
+ pt.key_pattern AS template_key_pattern,
pt.created_at AS template_created_at,
pt.updated_at AS template_updated_at,
ptg.id AS permission_template_group_id,
@@ -116,6 +118,7 @@
<id property="id" column="template_id"/>
<result property="name" column="template_name"/>
<result property="description" column="template_description"/>
+ <result property="keyPattern" column="template_key_pattern"/>
<result property="createdAt" column="template_created_at"/>
<result property="updatedAt" column="template_updated_at"/>
<collection property="usersPermissions" ofType="PermissionTemplateUser">
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 7c25b9f59fb..ece45fc06e8 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
@@ -188,6 +188,7 @@ INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('461');
INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('462');
INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('463');
INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('464');
+INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('465');
INSERT INTO USERS(ID, LOGIN, NAME, EMAIL, CRYPTED_PASSWORD, SALT, CREATED_AT, UPDATED_AT, REMEMBER_TOKEN, REMEMBER_TOKEN_EXPIRES_AT) VALUES (1, 'admin', 'Administrator', '', 'a373a0e667abb2604c1fd571eb4ad47fe8cc0878', '48bc4b0d93179b5103fd3885ea9119498e9d161b', '2011-09-26 22:27:48.0', '2011-09-26 22:27:48.0', null, null);
ALTER TABLE USERS ALTER COLUMN ID RESTART WITH 2;
diff --git a/sonar-core/src/main/resources/org/sonar/core/persistence/schema-h2.ddl b/sonar-core/src/main/resources/org/sonar/core/persistence/schema-h2.ddl
index d10f1505036..8f6ee44a95b 100644
--- a/sonar-core/src/main/resources/org/sonar/core/persistence/schema-h2.ddl
+++ b/sonar-core/src/main/resources/org/sonar/core/persistence/schema-h2.ddl
@@ -525,6 +525,7 @@ CREATE TABLE "PERMISSION_TEMPLATES" (
"NAME" VARCHAR(100) NOT NULL,
"KEE" VARCHAR(100) NOT NULL,
"DESCRIPTION" VARCHAR(4000),
+ "KEY_PATTERN" VARCHAR(500),
"CREATED_AT" TIMESTAMP,
"UPDATED_AT" TIMESTAMP
);
diff --git a/sonar-core/src/test/java/org/sonar/core/permission/PermissionTemplateDaoTest.java b/sonar-core/src/test/java/org/sonar/core/permission/PermissionTemplateDaoTest.java
index c98ad095713..652ecfca7d1 100644
--- a/sonar-core/src/test/java/org/sonar/core/permission/PermissionTemplateDaoTest.java
+++ b/sonar-core/src/test/java/org/sonar/core/permission/PermissionTemplateDaoTest.java
@@ -33,7 +33,10 @@ import java.util.Date;
import java.util.List;
import static org.fest.assertions.Assertions.assertThat;
-import static org.mockito.Mockito.*;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.stub;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
public class PermissionTemplateDaoTest extends AbstractDaoTestCase {
@@ -52,7 +55,7 @@ public class PermissionTemplateDaoTest extends AbstractDaoTestCase {
@Test
public void should_create_permission_template() throws Exception {
setupData("createPermissionTemplate");
- PermissionTemplateDto permissionTemplate = permissionTemplateDao.createPermissionTemplate("my template", "my description");
+ PermissionTemplateDto permissionTemplate = permissionTemplateDao.createPermissionTemplate("my template", "my description", "myregexp");
assertThat(permissionTemplate).isNotNull();
assertThat(permissionTemplate.getId()).isEqualTo(1L);
checkTable("createPermissionTemplate", "permission_templates", "id", "name", "kee", "description");
@@ -61,7 +64,7 @@ public class PermissionTemplateDaoTest extends AbstractDaoTestCase {
@Test
public void should_normalize_kee_on_template_creation() throws Exception {
setupData("createNonAsciiPermissionTemplate");
- PermissionTemplateDto permissionTemplate = permissionTemplateDao.createPermissionTemplate("Môü Gnô Gnèçàß", "my description");
+ PermissionTemplateDto permissionTemplate = permissionTemplateDao.createPermissionTemplate("Môü Gnô Gnèçàß", "my description", null);
assertThat(permissionTemplate).isNotNull();
assertThat(permissionTemplate.getId()).isEqualTo(1L);
checkTable("createNonAsciiPermissionTemplate", "permission_templates", "id", "name", "kee", "description");
@@ -79,7 +82,7 @@ public class PermissionTemplateDaoTest extends AbstractDaoTestCase {
when(myBatis.openSession()).thenReturn(session);
permissionTemplateDao = new PermissionTemplateDao(myBatis, dateProvider);
- PermissionTemplateDto permissionTemplate = permissionTemplateDao.createPermissionTemplate(PermissionTemplateDto.DEFAULT.getName(), null);
+ PermissionTemplateDto permissionTemplate = permissionTemplateDao.createPermissionTemplate(PermissionTemplateDto.DEFAULT.getName(), null, null);
verify(mapper).insert(permissionTemplate);
verify(session).commit();
@@ -162,7 +165,7 @@ public class PermissionTemplateDaoTest extends AbstractDaoTestCase {
public void should_update_permission_template() throws Exception {
setupData("updatePermissionTemplate");
- permissionTemplateDao.updatePermissionTemplate(1L, "new_name", "new_description");
+ permissionTemplateDao.updatePermissionTemplate(1L, "new_name", "new_description", "new_regexp");
checkTable("updatePermissionTemplate", "permission_templates", "id", "name", "kee", "description");
}
diff --git a/sonar-core/src/test/resources/org/sonar/core/permission/PermissionTemplateDaoTest/createNonAsciiPermissionTemplate-result.xml b/sonar-core/src/test/resources/org/sonar/core/permission/PermissionTemplateDaoTest/createNonAsciiPermissionTemplate-result.xml
index d80de102071..68023c5eb8e 100644
--- a/sonar-core/src/test/resources/org/sonar/core/permission/PermissionTemplateDaoTest/createNonAsciiPermissionTemplate-result.xml
+++ b/sonar-core/src/test/resources/org/sonar/core/permission/PermissionTemplateDaoTest/createNonAsciiPermissionTemplate-result.xml
@@ -1,3 +1,3 @@
<dataset>
- <permission_templates id="1" name="Môü Gnô Gnèçàß" kee="mou_gno_gneca_20130102_010405" description="my description"/>
-</dataset> \ No newline at end of file
+ <permission_templates id="1" name="Môü Gnô Gnèçàß" kee="mou_gno_gneca_20130102_010405" description="my description" key_pattern="[null]"/>
+</dataset>
diff --git a/sonar-core/src/test/resources/org/sonar/core/permission/PermissionTemplateDaoTest/createPermissionTemplate-result.xml b/sonar-core/src/test/resources/org/sonar/core/permission/PermissionTemplateDaoTest/createPermissionTemplate-result.xml
index 0c2bd559342..4e0f6a0565c 100644
--- a/sonar-core/src/test/resources/org/sonar/core/permission/PermissionTemplateDaoTest/createPermissionTemplate-result.xml
+++ b/sonar-core/src/test/resources/org/sonar/core/permission/PermissionTemplateDaoTest/createPermissionTemplate-result.xml
@@ -1,3 +1,3 @@
<dataset>
- <permission_templates id="1" name="my template" kee="my_template_20130102_010405" description="my description"/>
-</dataset> \ No newline at end of file
+ <permission_templates id="1" name="my template" kee="my_template_20130102_010405" description="my description" key_pattern="myregexp"/>
+</dataset>
diff --git a/sonar-core/src/test/resources/org/sonar/core/permission/PermissionTemplateDaoTest/updatePermissionTemplate-result.xml b/sonar-core/src/test/resources/org/sonar/core/permission/PermissionTemplateDaoTest/updatePermissionTemplate-result.xml
index 6f25f75defe..864e0c9be19 100644
--- a/sonar-core/src/test/resources/org/sonar/core/permission/PermissionTemplateDaoTest/updatePermissionTemplate-result.xml
+++ b/sonar-core/src/test/resources/org/sonar/core/permission/PermissionTemplateDaoTest/updatePermissionTemplate-result.xml
@@ -1,4 +1,4 @@
<dataset>
- <permission_templates id="1" name="new_name" kee="template1_20130102_030405" description="new_description" created_at="[null]" updated_at="[null]"/>
- <permission_templates id="2" name="template2" kee="template2_20130102_030405" description="description2" created_at="[null]" updated_at="[null]"/>
-</dataset> \ No newline at end of file
+ <permission_templates id="1" name="new_name" kee="template1_20130102_030405" description="new_description" key_pattern="new_regexp" created_at="[null]" updated_at="[null]"/>
+ <permission_templates id="2" name="template2" kee="template2_20130102_030405" description="description2" key_pattern="barregexp" created_at="[null]" updated_at="[null]"/>
+</dataset>
diff --git a/sonar-core/src/test/resources/org/sonar/core/permission/PermissionTemplateDaoTest/updatePermissionTemplate.xml b/sonar-core/src/test/resources/org/sonar/core/permission/PermissionTemplateDaoTest/updatePermissionTemplate.xml
index 2c056af7153..b461c1c9c3b 100644
--- a/sonar-core/src/test/resources/org/sonar/core/permission/PermissionTemplateDaoTest/updatePermissionTemplate.xml
+++ b/sonar-core/src/test/resources/org/sonar/core/permission/PermissionTemplateDaoTest/updatePermissionTemplate.xml
@@ -1,4 +1,4 @@
<dataset>
- <permission_templates id="1" name="template1" kee="template1_20130102_030405" description="description1" created_at="[null]" updated_at="[null]"/>
- <permission_templates id="2" name="template2" kee="template2_20130102_030405" description="description2" created_at="[null]" updated_at="[null]"/>
-</dataset> \ No newline at end of file
+ <permission_templates id="1" name="template1" kee="template1_20130102_030405" description="description1" key_pattern="fooregexp" created_at="[null]" updated_at="[null]"/>
+ <permission_templates id="2" name="template2" kee="template2_20130102_030405" description="description2" key_pattern="barregexp" created_at="[null]" updated_at="[null]"/>
+</dataset>