diff options
author | Rémy Coutable <remy@rymai.me> | 2017-07-25 09:41:51 +0000 |
---|---|---|
committer | Simon Knox <psimyn@gmail.com> | 2017-07-27 11:12:39 +1000 |
commit | d22d058f2f8068d772991ad8287bcf3a2a991711 (patch) | |
tree | 937bd191b94ac805d9cebe0b0a5d9f8d445dc46a /spec | |
parent | 764688c216e6b0ac7036109640cf22c6f74e5b92 (diff) | |
download | gitlab-ce-d22d058f2f8068d772991ad8287bcf3a2a991711.tar.gz |
Merge branch '35478-allow-admin-to-read-user-list' into 'master'
Allow admin to read_users_list even if it's restricted
Closes #35478
See merge request !13066
Diffstat (limited to 'spec')
-rw-r--r-- | spec/policies/global_policy_spec.rb | 20 | ||||
-rw-r--r-- | spec/requests/api/users_spec.rb | 19 |
2 files changed, 32 insertions, 7 deletions
diff --git a/spec/policies/global_policy_spec.rb b/spec/policies/global_policy_spec.rb index bb0fa0c0e9c..c3e2b603c4b 100644 --- a/spec/policies/global_policy_spec.rb +++ b/spec/policies/global_policy_spec.rb @@ -30,5 +30,25 @@ describe GlobalPolicy, models: true do it { is_expected.to be_allowed(:read_users_list) } end end + + context "for an admin" do + let(:current_user) { create(:admin) } + + context "when the public level is restricted" do + before do + stub_application_setting(restricted_visibility_levels: [Gitlab::VisibilityLevel::PUBLIC]) + end + + it { is_expected.to be_allowed(:read_users_list) } + end + + context "when the public level is not restricted" do + before do + stub_application_setting(restricted_visibility_levels: []) + end + + it { is_expected.to be_allowed(:read_users_list) } + end + end end end diff --git a/spec/requests/api/users_spec.rb b/spec/requests/api/users_spec.rb index d799ff679f9..50a2521bafb 100644 --- a/spec/requests/api/users_spec.rb +++ b/spec/requests/api/users_spec.rb @@ -55,17 +55,22 @@ describe API::Users do context "when public level is restricted" do before do stub_application_setting(restricted_visibility_levels: [Gitlab::VisibilityLevel::PUBLIC]) - allow_any_instance_of(API::Helpers).to receive(:authenticate!).and_return(true) end - it "renders 403" do - get api("/users") - expect(response).to have_http_status(403) + context 'when authenticate as a regular user' do + it "renders 403" do + get api("/users", user) + + expect(response).to have_gitlab_http_status(403) + end end - it "renders 404" do - get api("/users/#{user.id}") - expect(response).to have_http_status(404) + context 'when authenticate as an admin' do + it "renders 200" do + get api("/users", admin) + + expect(response).to have_gitlab_http_status(200) + end end end |