From fc80b8c4bbfc89314c99e2817d1fed5b8123a3e2 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Vilain Date: Mon, 15 Jul 2013 18:46:24 +0200 Subject: [PATCH] SONAR-4466 Provision the logical key in the model objects used by the views --- .../core/permission/PermissionTemplateMapper.xml | 4 ++-- .../org/sonar/core/permission/PermissionDaoTest.java | 6 +++++- .../selectAllPermissionTemplates.xml | 6 +++--- .../sonar/server/permission/PermissionTemplate.java | 12 +++++++++--- .../server/startup/RegisterPermissionTemplates.java | 2 +- .../controllers/permission_templates_controller.rb | 6 +++--- .../app/views/permission_templates/index.html.erb | 11 +++++++---- .../server/permission/PermissionTemplateTest.java | 2 ++ 8 files changed, 32 insertions(+), 17 deletions(-) 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 0ca7a418f63..5999d29729d 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 @@ -68,13 +68,13 @@ diff --git a/sonar-core/src/test/java/org/sonar/core/permission/PermissionDaoTest.java b/sonar-core/src/test/java/org/sonar/core/permission/PermissionDaoTest.java index 57d312aceb9..424943b66ad 100644 --- a/sonar-core/src/test/java/org/sonar/core/permission/PermissionDaoTest.java +++ b/sonar-core/src/test/java/org/sonar/core/permission/PermissionDaoTest.java @@ -93,6 +93,7 @@ public class PermissionDaoTest extends AbstractDaoTestCase { assertThat(permissionTemplate).isNotNull(); assertThat(permissionTemplate.getName()).isEqualTo("my template"); + assertThat(permissionTemplate.getKee()).isEqualTo("my_template_20130102_030405"); assertThat(permissionTemplate.getDescription()).isEqualTo("my description"); assertThat(permissionTemplate.getUsersPermissions()).hasSize(3); assertThat(permissionTemplate.getUsersPermissions()).onProperty("userId").containsOnly(1L, 2L, 1L); @@ -126,11 +127,12 @@ public class PermissionDaoTest extends AbstractDaoTestCase { assertThat(permissionTemplate).isNotNull(); assertThat(permissionTemplate.getId()).isEqualTo(1L); assertThat(permissionTemplate.getName()).isEqualTo("my template"); + assertThat(permissionTemplate.getKee()).isEqualTo("my_template_20130102_030405"); assertThat(permissionTemplate.getDescription()).isEqualTo("my description"); } @Test - public void should_select_permission_template_by_id() throws Exception { + public void should_select_permission_template_by_key() throws Exception { setupData("selectPermissionTemplate"); PermissionTemplateDto permissionTemplate = permissionDao.selectTemplateByKey("my_template_20130102_030405"); @@ -138,6 +140,7 @@ public class PermissionDaoTest extends AbstractDaoTestCase { assertThat(permissionTemplate).isNotNull(); assertThat(permissionTemplate.getId()).isEqualTo(1L); assertThat(permissionTemplate.getName()).isEqualTo("my template"); + assertThat(permissionTemplate.getKee()).isEqualTo("my_template_20130102_030405"); assertThat(permissionTemplate.getDescription()).isEqualTo("my description"); } @@ -150,6 +153,7 @@ public class PermissionDaoTest extends AbstractDaoTestCase { assertThat(permissionTemplates).hasSize(3); assertThat(permissionTemplates).onProperty("id").containsOnly(1L, 2L, 3L); assertThat(permissionTemplates).onProperty("name").containsOnly("template1", "template2", "template3"); + assertThat(permissionTemplates).onProperty("kee").containsOnly("template1_20130102_030405", "template2_20130102_030405", "template3_20130102_030405"); assertThat(permissionTemplates).onProperty("description").containsOnly("description1", "description2", "description3"); } diff --git a/sonar-core/src/test/resources/org/sonar/core/permission/PermissionDaoTest/selectAllPermissionTemplates.xml b/sonar-core/src/test/resources/org/sonar/core/permission/PermissionDaoTest/selectAllPermissionTemplates.xml index 1fa43bea18c..65a68bb4b4b 100644 --- a/sonar-core/src/test/resources/org/sonar/core/permission/PermissionDaoTest/selectAllPermissionTemplates.xml +++ b/sonar-core/src/test/resources/org/sonar/core/permission/PermissionDaoTest/selectAllPermissionTemplates.xml @@ -1,5 +1,5 @@ - - - + + + \ No newline at end of file diff --git a/sonar-server/src/main/java/org/sonar/server/permission/PermissionTemplate.java b/sonar-server/src/main/java/org/sonar/server/permission/PermissionTemplate.java index a88bf35d11f..0d6bbf66fe4 100644 --- a/sonar-server/src/main/java/org/sonar/server/permission/PermissionTemplate.java +++ b/sonar-server/src/main/java/org/sonar/server/permission/PermissionTemplate.java @@ -34,13 +34,15 @@ public class PermissionTemplate { private final Long id; private final String name; + private final String key; private final String description; private Multimap usersByPermission; private Multimap groupsByPermission; - private PermissionTemplate(Long id, String name, String description) { + private PermissionTemplate(Long id, String name, String key, String description) { this.id = id; this.name = name; + this.key = key; this.description = description; usersByPermission = HashMultimap.create(); groupsByPermission = HashMultimap.create(); @@ -50,8 +52,8 @@ public class PermissionTemplate { if(permissionTemplateDto == null) { return null; } - PermissionTemplate permissionTemplate = - new PermissionTemplate(permissionTemplateDto.getId(), permissionTemplateDto.getName(), permissionTemplateDto.getDescription()); + PermissionTemplate permissionTemplate = new PermissionTemplate( + permissionTemplateDto.getId(), permissionTemplateDto.getName(), permissionTemplateDto.getKee(), permissionTemplateDto.getDescription()); List usersPermissions = permissionTemplateDto.getUsersPermissions(); if(usersPermissions != null) { @@ -83,6 +85,10 @@ public class PermissionTemplate { return description; } + public String getKey() { + return key; + } + public List getUsersForPermission(String permission) { return ImmutableList.copyOf(usersByPermission.get(permission)); } diff --git a/sonar-server/src/main/java/org/sonar/server/startup/RegisterPermissionTemplates.java b/sonar-server/src/main/java/org/sonar/server/startup/RegisterPermissionTemplates.java index 5447ccd6b67..93b0b2d29b3 100644 --- a/sonar-server/src/main/java/org/sonar/server/startup/RegisterPermissionTemplates.java +++ b/sonar-server/src/main/java/org/sonar/server/startup/RegisterPermissionTemplates.java @@ -84,7 +84,7 @@ public class RegisterPermissionTemplates { } else { GroupDto groupDto = userDao.selectGroupByName(groupName); if(groupDto != null) { - groupId = userDao.selectGroupByName(groupName).getId(); + groupId = groupDto.getId(); } else { throw new IllegalArgumentException("Cannot setup default permission for group: " + groupName); } diff --git a/sonar-server/src/main/webapp/WEB-INF/app/controllers/permission_templates_controller.rb b/sonar-server/src/main/webapp/WEB-INF/app/controllers/permission_templates_controller.rb index b9a99cb8fb0..1d9aa4a1bbb 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/controllers/permission_templates_controller.rb +++ b/sonar-server/src/main/webapp/WEB-INF/app/controllers/permission_templates_controller.rb @@ -43,7 +43,7 @@ class PermissionTemplatesController < ApplicationController templates_names.each do |template_name| permission_template = Internal.permission_templates.selectPermissionTemplate(template_name) @permission_templates << permission_template - @permission_templates_options << [permission_template.name, permission_template.id.to_s] + @permission_templates_options << [permission_template.name, permission_template.key] end @root_qualifiers = get_root_qualifiers @@ -78,7 +78,7 @@ class PermissionTemplatesController < ApplicationController # def update_users_permissions verify_post_request - require_parameters :id, :name, :permission + require_parameters :name, :permission @permission_template = Internal.permission_templates.selectPermissionTemplate(params[:name]) @@ -106,7 +106,7 @@ class PermissionTemplatesController < ApplicationController # def update_groups_permissions verify_post_request - require_parameters :id, :name, :permission + require_parameters :name, :permission @permission_template = Internal.permission_templates.selectPermissionTemplate(params[:name]) diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/permission_templates/index.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/permission_templates/index.html.erb index 2ab96d10867..7b7f25ff923 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/views/permission_templates/index.html.erb +++ b/sonar-server/src/main/webapp/WEB-INF/app/views/permission_templates/index.html.erb @@ -85,10 +85,13 @@ :id => "selectg-codeviewer-#{u permission_template.name}", :class => 'open-modal link-action', 'modal-width' => '760px' %>) - <% if @default_templates.values.include?(permission_template.id.to_s) - qualifier = @default_templates.invert[permission_template.id.to_s] + <% qualifiers = [] + @default_templates.each_pair do |q, t| + qualifiers << q if t == permission_template.key + end + if qualifiers.length > 0 %> - <%= image_tag 'tick.png', :id => "is_active_#{u permission_template.name}" %>(Default for <%= message('qualifier.' + qualifier) %>) + <%= image_tag 'tick.png', :id => "is_active_#{u permission_template.name}" %>(Default for <%= qualifiers.collect {|q| message('qualifier.' + q)}.join(',') %>) <% end %> @@ -96,7 +99,7 @@ :id => "edit-template-#{u permission_template.name}", :class => 'open-modal link-action' %> - <% unless @default_templates.values.include?(permission_template.id.to_s) %> + <% unless @default_templates.values.include?(permission_template.key) %> <%= link_to message('delete'), {:action => :delete_form, :name => permission_template.name}, :id => "delete-template-#{u permission_template.name}", :class => 'open-modal link-action link-red' %> <% end %> diff --git a/sonar-server/src/test/java/org/sonar/server/permission/PermissionTemplateTest.java b/sonar-server/src/test/java/org/sonar/server/permission/PermissionTemplateTest.java index 69a11a8a2ca..5cfa33b23c4 100644 --- a/sonar-server/src/test/java/org/sonar/server/permission/PermissionTemplateTest.java +++ b/sonar-server/src/test/java/org/sonar/server/permission/PermissionTemplateTest.java @@ -36,6 +36,7 @@ public class PermissionTemplateTest { PermissionTemplateDto permissionTemplateDto = new PermissionTemplateDto() .setId(1L) .setName("name") + .setKee("key") .setDescription("description") .setUsersPermissions(Lists.newArrayList( new PermissionTemplateUserDto().setId(1L).setUserId(1L).setUserName("user1").setUserLogin("login1").setPermission("permission1"), @@ -52,6 +53,7 @@ public class PermissionTemplateTest { assertThat(permissionTemplate.getId()).isEqualTo(1L); assertThat(permissionTemplate.getName()).isEqualTo("name"); + assertThat(permissionTemplate.getKey()).isEqualTo("key"); assertThat(permissionTemplate.getDescription()).isEqualTo("description"); assertThat(permissionTemplate.getUsersForPermission("unmatchedPermission")).isEmpty(); assertThat(permissionTemplate.getUsersForPermission("permission1")).onProperty("userName").containsOnly("user1", "user2"); -- 2.39.5