Skip to content

Commit

Permalink
exclude wp members from Principal.memberships
Browse files Browse the repository at this point in the history
That way, they no longer show up on the administration page of user`s projects
  • Loading branch information
ulferts committed Nov 6, 2023
1 parent e8433e4 commit 2d8e7f1
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 1 deletion.
3 changes: 2 additions & 1 deletion app/models/principal.rb
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,8 @@ class Principal < ApplicationRecord
has_many :memberships,
-> {
includes(:project, :roles)
.where(["projects.active = ? OR project_id IS NULL", true])
.where(entity: nil)
.where(["projects.active = ? OR members.project_id IS NULL", true])
.order(Arel.sql('projects.name ASC'))
# haven't been able to produce the order using hashes
},
Expand Down
37 changes: 37 additions & 0 deletions spec/models/principal_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -91,4 +91,41 @@ def self.should_return_groups_and_users_if_active(method, *)
expect(described_class.not_locked.where(id: user.id)).to eq([user])
end
end

describe '.memberships' do
let(:project_role) { create(:project_role) }
let(:global_role) { create(:global_role) }
let(:work_package_role) { create(:view_work_package_role) }
let(:user) { create(:user) }
let!(:active_project_member) do
create(:member,
principal: user,
project: create(:project),
roles: [project_role])
end
let!(:inactive_project_member) do
create(:member,
principal: user,
project: create(:project, active: false),
roles: [project_role])
end
let!(:global_member) do
create(:member,
principal: user,
project: nil,
roles: [global_role])
end
let!(:work_package_member) do
create(:work_package_member,
principal: user,
project: create(:project),
entity: create(:work_package),
roles: [work_package_role])
end

it 'returns all active projects and global members' do
expect(user.memberships)
.to contain_exactly(active_project_member, global_member)
end
end
end

0 comments on commit 2d8e7f1

Please sign in to comment.