diff --git a/app/controllers/my_profile/profile_members_controller.rb b/app/controllers/my_profile/profile_members_controller.rb index 370bd07..ff84cdb 100644 --- a/app/controllers/my_profile/profile_members_controller.rb +++ b/app/controllers/my_profile/profile_members_controller.rb @@ -3,14 +3,15 @@ class ProfileMembersController < MyProfileController def index @filters = params[:filters] || {:roles => []} - @filters[:roles] = [] unless @filters[:roles] + all_roles = Profile::Roles.organization_member_roles(environment.id) | Profile::Roles.organization_custom_roles(environment.id, profile.id) + @filters[:roles] = all_roles unless @filters[:roles].present? @data = {} field = 'name' field = 'email' if @filters[:name] =~ /\@/ @data[:members] = profile.members_by(field,@filters[:name]).by_role(@filters[:roles]) session[:members_filtered] = @data[:members].map{|m|m.id} if request.post? - @data[:roles] = Profile::Roles.organization_member_roles(environment.id) | Profile::Roles.organization_custom_roles(environment.id, profile.id) + @data[:roles] = all_roles end diff --git a/app/models/person.rb b/app/models/person.rb index 0671773..2df291f 100644 --- a/app/models/person.rb +++ b/app/models/person.rb @@ -22,7 +22,7 @@ class Person < Profile joins << :user if User.attribute_names.include? field conditions = resources.map {|resource| "role_assignments.resource_type = '#{resource.class.base_class.name}' AND role_assignments.resource_id = #{resource.id || -1}"}.join(' OR ') - select('DISTINCT profiles.*').joins(joins).where([conditions]) + distinct.select('profiles.*').joins(joins).where([conditions]) } scope :not_members_of, -> resources { @@ -52,15 +52,6 @@ class Person < Profile ( ( friendships.person_id = ? ) OR (profiles.public_profile = ?)) AND (profiles.visible = ?) )', 'environment_administrator', Profile.name, person.id, person.id, true, true] ).uniq } - scope :by_role, lambda { |roles| - - roles = [roles] unless roles.kind_of?(Array) - - if roles.length > 0 - {:select => 'DISTINCT profiles.*', :joins => :role_assignments, :conditions => ['role_assignments.role_id IN (?)', roles] } - end - } - def has_permission_with_admin?(permission, resource) return true if resource.blank? || resource.admins.include?(self) -- libgit2 0.21.2