diff options
author | Simon Brandhof <simon.brandhof@gmail.com> | 2012-07-06 18:14:14 +0200 |
---|---|---|
committer | Simon Brandhof <simon.brandhof@gmail.com> | 2012-07-06 18:14:32 +0200 |
commit | 4925839fd7c126f25c6352d6688b8fafd5cd81f0 (patch) | |
tree | f24e09117e6901660fd721bf1b3f59eba3a089f7 /sonar-server | |
parent | b3ca2478b4cb39787d1be6e2e91463b9869b8908 (diff) | |
download | sonarqube-4925839fd7c126f25c6352d6688b8fafd5cd81f0.tar.gz sonarqube-4925839fd7c126f25c6352d6688b8fafd5cd81f0.zip |
SONAR-3618 improve support of the Views plugin
Diffstat (limited to 'sonar-server')
-rw-r--r-- | sonar-server/src/main/webapp/WEB-INF/app/helpers/roles_helper.rb | 15 | ||||
-rw-r--r-- | sonar-server/src/main/webapp/WEB-INF/db/migrate/320_move_default_roles.rb | 17 |
2 files changed, 28 insertions, 4 deletions
diff --git a/sonar-server/src/main/webapp/WEB-INF/app/helpers/roles_helper.rb b/sonar-server/src/main/webapp/WEB-INF/app/helpers/roles_helper.rb index 95bba72992a..0516fc3a801 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/helpers/roles_helper.rb +++ b/sonar-server/src/main/webapp/WEB-INF/app/helpers/roles_helper.rb @@ -47,13 +47,20 @@ module RolesHelper end def default_project_group_names(role, qualifier) - property_value=(controller.java_facade.getConfigurationValue("sonar.role.#{role}.#{qualifier}.defaultGroups")||'') - Api::Utils.insensitive_sort(property_value.split(',')) + group_names=(controller.java_facade.getConfigurationValue("sonar.role.#{role}.#{qualifier}.defaultGroups")||'').split(',') + + # verify that groups still exist + result = [] + if group_names.size>0 + groups = Group.find(:all, :conditions => ['name in (?)', group_names]) + result = Api::Utils.insensitive_sort(groups.map{|g| g.name}) + result = ['Anyone'].concat(result) if group_names.include? 'Anyone' + end + result end def default_project_users(role, qualifier) - property_value=(controller.java_facade.getConfigurationValue("sonar.role.#{role}.#{qualifier}.defaultUsers") || '') - logins=property_value.split(',') + logins=(controller.java_facade.getConfigurationValue("sonar.role.#{role}.#{qualifier}.defaultUsers") || '').split(',') users = User.find(:all, :conditions => ['login in (?) and active=?', logins, true]) Api::Utils.insensitive_sort(users) { |user| user.name } end diff --git a/sonar-server/src/main/webapp/WEB-INF/db/migrate/320_move_default_roles.rb b/sonar-server/src/main/webapp/WEB-INF/db/migrate/320_move_default_roles.rb index df56495a5f4..75ee2d51658 100644 --- a/sonar-server/src/main/webapp/WEB-INF/db/migrate/320_move_default_roles.rb +++ b/sonar-server/src/main/webapp/WEB-INF/db/migrate/320_move_default_roles.rb @@ -49,11 +49,28 @@ class MoveDefaultRoles < ActiveRecord::Migration # upgrade from version < 3.2. move_groups move_users + else + create_default_groups('admin', 'TRK', 'sonar-administrators') + create_default_groups('user', 'TRK', 'Anyone,sonar-users') + create_default_groups('codeviewer', 'TRK', 'Anyone,sonar-users') + + # Support old versions of Views plugin + create_default_groups('admin', 'VW', 'sonar-administrators') + create_default_groups('user', 'VW', 'Anyone,sonar-users') + create_default_groups('codeviewer', 'VW', 'Anyone,sonar-users') + create_default_groups('admin', 'SVW', 'sonar-administrators') + create_default_groups('user', 'SVW', 'Anyone,sonar-users') + create_default_groups('codeviewer', 'SVW', 'Anyone,sonar-users') end end private + def self.create_default_groups(role, qualifier, groups) + Property.create(:prop_key => "sonar.role.#{role}.#{qualifier}.defaultGroups", :text_value => groups) + Property.create(:prop_key => "sonar.role.#{role}.#{qualifier}.defaultUsers", :text_value => '') + end + def self.move_groups groups_per_role={} group_roles = GroupRole.find(:all, :conditions => ['resource_id is null and role like ?', 'default-%']) |