aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-server
diff options
context:
space:
mode:
authorSimon Brandhof <simon.brandhof@gmail.com>2012-07-06 18:14:14 +0200
committerSimon Brandhof <simon.brandhof@gmail.com>2012-07-06 18:14:32 +0200
commit4925839fd7c126f25c6352d6688b8fafd5cd81f0 (patch)
treef24e09117e6901660fd721bf1b3f59eba3a089f7 /sonar-server
parentb3ca2478b4cb39787d1be6e2e91463b9869b8908 (diff)
downloadsonarqube-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.rb15
-rw-r--r--sonar-server/src/main/webapp/WEB-INF/db/migrate/320_move_default_roles.rb17
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-%'])