summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorYorick Peterse <yorickpeterse@gmail.com>2015-11-18 12:30:24 +0100
committerYorick Peterse <yorickpeterse@gmail.com>2015-11-18 13:05:45 +0100
commite116a356b8ac07bd3a935c40ceb274d67d808c83 (patch)
treeec0efa2e61d9102be9ff7bff6ff3ba41d2a36c0f /spec
parenta4fc8112df3cf6cb344cfba65f5df46c7a99bef7 (diff)
downloadgitlab-ce-e116a356b8ac07bd3a935c40ceb274d67d808c83.tar.gz
Refactor User#authorized_groups/projects
These methods no longer include public groups/projects (that don't belong to the actual user) as this is handled by the various finder classes now. This also removes the need for passing extra arguments. Note that memoizing was removed _explicitly_. For whatever reason doing so messes up the users controller to a point where it claims a certain user does _not_ have access to certain groups/projects when it does have access. Existing code shouldn't be affected as these methods are only called in ways that they'd run queries anyway (e.g. a combination of "any?" and "each" which would run 2 queries regardless of memoizing).
Diffstat (limited to 'spec')
-rw-r--r--spec/models/user_spec.rb26
1 files changed, 4 insertions, 22 deletions
diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb
index 71160f8dfef..4631b12faf1 100644
--- a/spec/models/user_spec.rb
+++ b/spec/models/user_spec.rb
@@ -762,44 +762,26 @@ describe User do
describe '#authorized_groups' do
let!(:user) { create(:user) }
let!(:private_group) { create(:group) }
- let!(:public_group) { create(:group, public: true) }
before do
private_group.add_user(user, Gitlab::Access::MASTER)
end
- describe 'excluding public groups' do
- subject { user.authorized_groups }
+ subject { user.authorized_groups }
- it { is_expected.to eq([private_group]) }
- end
-
- describe 'including public groups' do
- subject { user.authorized_groups(true) }
-
- it { is_expected.to eq([public_group, private_group]) }
- end
+ it { is_expected.to eq([private_group]) }
end
describe '#authorized_projects' do
let!(:user) { create(:user) }
let!(:private_project) { create(:project, :private) }
- let!(:public_project) { create(:project, :public) }
before do
private_project.team << [user, Gitlab::Access::MASTER]
end
- describe 'excluding public projects' do
- subject { user.authorized_projects }
+ subject { user.authorized_projects }
- it { is_expected.to eq([private_project]) }
- end
-
- describe 'including public projects' do
- subject { user.authorized_projects(true) }
-
- it { is_expected.to eq([public_project, private_project]) }
- end
+ it { is_expected.to eq([private_project]) }
end
end