# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
class ProjectRolesController < ApplicationController
- helper RolesHelper
SECTION=Navigation::SECTION_RESOURCE
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
class RolesController < ApplicationController
- helper RolesHelper
SECTION=Navigation::SECTION_CONFIGURATION
+++ /dev/null
-#
-# SonarQube, open source software quality management tool.
-# Copyright (C) 2008-2014 SonarSource
-# mailto:contact AT sonarsource DOT com
-#
-# SonarQube 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.
-#
-# SonarQube 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.
-#
-module RolesHelper
-
- def users(role, resource_id=nil)
- resource_id=(resource_id.blank? ? nil : resource_id.to_i)
- user_roles=UserRole.all(:include => 'user', :conditions => {:role => role, :resource_id => resource_id, :users => {:active => true}})
- users = user_roles.map { |ur| ur.user }
- Api::Utils.insensitive_sort(users) { |user| user.name }
- end
-
- def all_users
- users = User.all(:conditions => ["active=?", true])
- Api::Utils.insensitive_sort(users) { |user| user.name }
- end
-
- def groups(role, resource_id=nil)
- resource_id=(resource_id.blank? ? nil : resource_id.to_i)
- group_roles=GroupRole.all(:include => 'group', :conditions => {:role => role, :resource_id => resource_id})
- groups = group_roles.map { |ur| ur.group }
- Api::Utils.insensitive_sort(groups) { |group| group ? group.name : '' }
- end
-
- def group_name(group)
- group ? group.name : 'Anyone'
- end
-
-end
#
class GroupRole < ActiveRecord::Base
- belongs_to :group
- belongs_to :resource, :class_name => 'Project', :foreign_key => "resource_id"
-
- def self.grant_groups(group_ids, role, resource_id=nil)
- resource_id=(resource_id.blank? ? nil : resource_id.to_i)
- if resource_id
- GroupRole.delete_all(["role=? and resource_id=?", role, resource_id])
- else
- GroupRole.delete_all(["role=? and resource_id is null", role])
- end
- if group_ids
- group_ids.compact.uniq.each do |group_id|
- GroupRole.create(:group_id => group_id, :role => role, :resource_id => resource_id)
- end
- end
- end
end
result.compact.uniq
end
- def self.ids_from_keys(keys_array)
- keys_array.collect{ |key| Metric.by_name(key).id if Metric.by_name(key) }
- end
-
- def self.delete_with_manual_measures(id)
- ManualMeasure.delete_all(["metric_id = ?", id])
- self.deactivate(id)
- end
-
- def self.deactivate(id)
- metric = by_id(id)
- metric.enabled = false
- metric.save!
- end
-
def to_hash_json(options={})
return {'key' => name, 'name' => short_name, 'description' => description, 'domain' => domain,
'qualitative' => qualitative, 'user_managed' => self.user_managed,
has_many :events, :foreign_key => 'component_uuid', :primary_key => 'uuid', :order => 'event_date DESC'
has_many :project_links, :foreign_key => 'component_uuid', :primary_key => 'uuid', :dependent => :delete_all, :order => 'link_type'
- has_many :user_roles, :foreign_key => 'resource_id'
- has_many :group_roles, :foreign_key => 'resource_id'
has_many :manual_measures, :foreign_key => 'component_uuid', :primary_key => 'uuid'
belongs_to :root, :class_name => 'Project', :foreign_key => 'root_uuid', :primary_key => 'uuid'
belongs_to :copy_resource, :class_name => 'Project', :foreign_key => 'copy_component_uuid', :primary_key => 'uuid'
end
end
- def self.delete_resource_tree(project)
- java_facade = Java::OrgSonarServerUi::JRubyFacade.getInstance()
- if project && java_facade.getResourceTypeBooleanProperty(project.qualifier, 'deletable')
- java_facade.deleteResourceTree(project.key)
- end
- end
-
def self.root_qualifiers()
@root_types ||=
begin
has_and_belongs_to_many :groups
- has_many :user_roles, :dependent => :delete_all
has_many :properties, :foreign_key => 'user_id', :dependent => :delete_all
has_many :active_dashboards, :dependent => :destroy, :order => 'order_index'
has_many :dashboards, :dependent => :destroy
write_attribute :email, (value && value.downcase)
end
- # SCM accounts should also contain login and email
- def full_scm_accounts
- new_scm_accounts = self.scm_accounts.split(/\r?\n/).reject { |c| c.empty? } if self.scm_accounts
- new_scm_accounts = [] unless new_scm_accounts
- new_scm_accounts << self.login
- new_scm_accounts << self.email
- new_scm_accounts
- end
-
def <=>(other)
return -1 if name.nil?
return 1 if other.name.nil?
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
class UserRole < ActiveRecord::Base
- belongs_to :user
- belongs_to :resource, :class_name => 'Project', :foreign_key => "resource_id"
- def self.grant_users(user_ids, role, resource_id)
- resource_id=(resource_id.blank? ? nil : resource_id.to_i)
- if resource_id
- UserRole.delete_all(["role=? and resource_id=?", role, resource_id])
- else
- UserRole.delete_all(["role=? and resource_id is null", role])
- end
-
- if user_ids
- user_ids.compact.uniq.each do |user_id|
- UserRole.create(:user_id => user_id, :role=> role, :resource_id => resource_id)
- end
- end
- end
end
)
end
end
- global_user_roles=user.user_roles.select{|ur| ur.resource_id.nil?}.map{|ur| ur.role.to_sym}
+ global_user_roles=UserRole.all(:select => 'role', :conditions => ["user_id=? and resource_id is null", user.id]).map{|ur| ur.role.to_sym}
global_roles=(global_group_roles.concat(global_user_roles))
global_roles