Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Kozono <mkozono@gmail.com>2017-07-20 22:16:38 +0300
committerMichael Kozono <mkozono@gmail.com>2017-08-15 19:05:31 +0300
commitdab1c7e61d8e020b4e57ca6cca887edf355c1026 (patch)
treebcfe6c83d81a547452273141015a75209b716ee5
parent8a8c47f781b1c2a6865bb1e88212b7e99bb84e19 (diff)
Replace requester with access_request
Refactoring. More accurate naming, and this will be especially the case after splitting access requests out of members.
-rw-r--r--app/services/members/approve_access_request_service.rb20
-rw-r--r--lib/api/access_requests.rb12
-rw-r--r--lib/api/entities.rb4
-rw-r--r--spec/helpers/members_helper_spec.rb20
-rw-r--r--spec/models/member_spec.rb40
5 files changed, 49 insertions, 47 deletions
diff --git a/app/services/members/approve_access_request_service.rb b/app/services/members/approve_access_request_service.rb
index 4c935d28ad4..e923286a088 100644
--- a/app/services/members/approve_access_request_service.rb
+++ b/app/services/members/approve_access_request_service.rb
@@ -7,8 +7,8 @@ module Members
# source - The source object that respond to `#access_requests` (i.g. project or group)
# current_user - The user that performs the access request approval
# params - A hash of parameters
- # :user_id - User ID used to retrieve the access requester
- # :id - Member ID used to retrieve the access requester
+ # :user_id - User ID used to retrieve the access request
+ # :id - Member ID used to retrieve the access request
# :access_level - Optional access level set when the request is accepted
def initialize(source, current_user, params = {})
@source = source
@@ -20,22 +20,22 @@ module Members
# :force - Bypass permission check: current_user can be nil in that case
def execute(opts = {})
condition = params[:user_id] ? { user_id: params[:user_id] } : { id: params[:id] }
- access_requester = source.access_requests.find_by!(condition)
+ access_request = source.access_requests.find_by!(condition)
- raise Gitlab::Access::AccessDeniedError unless can_update_access_requester?(access_requester, opts)
+ raise Gitlab::Access::AccessDeniedError unless can_update_access_request?(access_request, opts)
- access_requester.access_level = params[:access_level] if params[:access_level]
- access_requester.accept_request
+ access_request.access_level = params[:access_level] if params[:access_level]
+ access_request.accept_request
- access_requester
+ access_request
end
private
- def can_update_access_requester?(access_requester, opts = {})
- access_requester && (
+ def can_update_access_request?(access_request, opts = {})
+ access_request && (
opts[:force] ||
- can?(current_user, action_member_permission(:update, access_requester), access_requester)
+ can?(current_user, action_member_permission(:update, access_request), access_request)
)
end
end
diff --git a/lib/api/access_requests.rb b/lib/api/access_requests.rb
index cc9bec12354..4ef8fc408a4 100644
--- a/lib/api/access_requests.rb
+++ b/lib/api/access_requests.rb
@@ -33,12 +33,12 @@ module API
end
post ":id/access_requests" do
source = find_source(source_type, params[:id])
- access_requester = source.request_access(current_user)
+ access_request = source.request_access(current_user)
- if access_requester.persisted?
- present access_requester.user, with: Entities::AccessRequester, access_requester: access_requester
+ if access_request.persisted?
+ present access_request.user, with: Entities::AccessRequester, access_request: access_request
else
- render_validation_error!(access_requester)
+ render_validation_error!(access_request)
end
end
@@ -47,7 +47,7 @@ module API
success Entities::Member
end
params do
- requires :user_id, type: Integer, desc: 'The user ID of the access requester'
+ requires :user_id, type: Integer, desc: 'The user ID of the access request'
optional :access_level, type: Integer, desc: 'A valid access level (defaults: `30`, developer access level)'
end
put ':id/access_requests/:user_id/approve' do
@@ -63,7 +63,7 @@ module API
detail 'This feature was introduced in GitLab 8.11.'
end
params do
- requires :user_id, type: Integer, desc: 'The user ID of the access requester'
+ requires :user_id, type: Integer, desc: 'The user ID of the access request'
end
delete ":id/access_requests/:user_id" do
source = find_source(source_type, params[:id])
diff --git a/lib/api/entities.rb b/lib/api/entities.rb
index dc2cacb6a4e..0ba04bd2c94 100644
--- a/lib/api/entities.rb
+++ b/lib/api/entities.rb
@@ -174,8 +174,8 @@ module API
class AccessRequester < UserBasic
expose :requested_at do |user, options|
- access_requester = options[:access_requester] || options[:source].access_requests.find_by(user_id: user.id)
- access_requester.requested_at
+ access_request = options[:access_request] || options[:source].access_requests.find_by(user_id: user.id)
+ access_request.requested_at
end
end
diff --git a/spec/helpers/members_helper_spec.rb b/spec/helpers/members_helper_spec.rb
index 33186cf50d5..1e6675b6843 100644
--- a/spec/helpers/members_helper_spec.rb
+++ b/spec/helpers/members_helper_spec.rb
@@ -14,35 +14,35 @@ describe MembersHelper do
let(:project) { create(:project, :public, :access_requestable) }
let(:project_member) { build(:project_member, project: project) }
let(:project_member_invite) { build(:project_member, project: project).tap { |m| m.generate_invite_token! } }
- let(:project_member_request) { project.request_access(requester) }
+ let(:project_access_request) { project.request_access(requester) }
let(:group) { create(:group, :access_requestable) }
let(:group_member) { build(:group_member, group: group) }
let(:group_member_invite) { build(:group_member, group: group).tap { |m| m.generate_invite_token! } }
- let(:group_member_request) { group.request_access(requester) }
+ let(:group_access_request) { group.request_access(requester) }
it { expect(remove_member_message(project_member)).to eq "Are you sure you want to remove #{project_member.user.name} from the #{project.name_with_namespace} project?" }
it { expect(remove_member_message(project_member_invite)).to eq "Are you sure you want to revoke the invitation for #{project_member_invite.invite_email} to join the #{project.name_with_namespace} project?" }
- it { expect(remove_member_message(project_member_request)).to eq "Are you sure you want to deny #{requester.name}'s request to join the #{project.name_with_namespace} project?" }
- it { expect(remove_member_message(project_member_request, user: requester)).to eq "Are you sure you want to withdraw your access request for the #{project.name_with_namespace} project?" }
+ it { expect(remove_member_message(project_access_request)).to eq "Are you sure you want to deny #{requester.name}'s request to join the #{project.name_with_namespace} project?" }
+ it { expect(remove_member_message(project_access_request, user: requester)).to eq "Are you sure you want to withdraw your access request for the #{project.name_with_namespace} project?" }
it { expect(remove_member_message(group_member)).to eq "Are you sure you want to remove #{group_member.user.name} from the #{group.name} group?" }
it { expect(remove_member_message(group_member_invite)).to eq "Are you sure you want to revoke the invitation for #{group_member_invite.invite_email} to join the #{group.name} group?" }
- it { expect(remove_member_message(group_member_request)).to eq "Are you sure you want to deny #{requester.name}'s request to join the #{group.name} group?" }
- it { expect(remove_member_message(group_member_request, user: requester)).to eq "Are you sure you want to withdraw your access request for the #{group.name} group?" }
+ it { expect(remove_member_message(group_access_request)).to eq "Are you sure you want to deny #{requester.name}'s request to join the #{group.name} group?" }
+ it { expect(remove_member_message(group_access_request, user: requester)).to eq "Are you sure you want to withdraw your access request for the #{group.name} group?" }
end
describe '#remove_member_title' do
let(:requester) { create(:user) }
let(:project) { create(:project, :public, :access_requestable) }
let(:project_member) { build(:project_member, project: project) }
- let(:project_member_request) { project.request_access(requester) }
+ let(:project_access_request) { project.request_access(requester) }
let(:group) { create(:group, :access_requestable) }
let(:group_member) { build(:group_member, group: group) }
- let(:group_member_request) { group.request_access(requester) }
+ let(:group_access_request) { group.request_access(requester) }
it { expect(remove_member_title(project_member)).to eq 'Remove user from project' }
- it { expect(remove_member_title(project_member_request)).to eq 'Deny access request from project' }
+ it { expect(remove_member_title(project_access_request)).to eq 'Deny access request from project' }
it { expect(remove_member_title(group_member)).to eq 'Remove user from group' }
- it { expect(remove_member_title(group_member_request)).to eq 'Deny access request from group' }
+ it { expect(remove_member_title(group_access_request)).to eq 'Deny access request from group' }
end
describe '#leave_confirmation_message' do
diff --git a/spec/models/member_spec.rb b/spec/models/member_spec.rb
index a94e6c67d13..b7d3f3f5df5 100644
--- a/spec/models/member_spec.rb
+++ b/spec/models/member_spec.rb
@@ -247,29 +247,31 @@ describe Member do
end
context 'when called with a user object' do
- it 'adds the user as a member' do
- expect(source.users).not_to include(user)
+ context 'when the user is not a requester' do
+ it 'adds the user as a member' do
+ expect(source.users).not_to include(user)
- described_class.add_user(source, user, :master)
+ described_class.add_user(source, user, :master)
- expect(source.users.reload).to include(user)
+ expect(source.users.reload).to include(user)
+ end
end
- end
- context 'when called with a requester user object' do
- before do
- source.request_access(user)
- end
+ context 'when the user is a requester' do
+ before do
+ source.request_access(user)
+ end
- it 'adds the requester as a member' do
- expect(source.users).not_to include(user)
- expect(source.access_requests.exists?(user_id: user)).to be_truthy
+ it 'does not add the user as a member' do
+ expect(source.users).not_to include(user)
+ expect(source.access_requests.exists?(user_id: user)).to be_truthy
- expect { described_class.add_user(source, user, :master) }
- .to raise_error(Gitlab::Access::AccessDeniedError)
+ expect { described_class.add_user(source, user, :master) }
+ .to raise_error(Gitlab::Access::AccessDeniedError)
- expect(source.users.reload).not_to include(user)
- expect(source.access_requests.reload.exists?(user_id: user)).to be_truthy
+ expect(source.users.reload).not_to include(user)
+ expect(source.access_requests.reload.exists?(user_id: user)).to be_truthy
+ end
end
end
@@ -335,7 +337,7 @@ describe Member do
source.request_access(user)
end
- it 'does not destroy the requester' do
+ it 'does not destroy the request' do
expect(source.users).not_to include(user)
expect(source.access_requests.exists?(user_id: user)).to be_truthy
@@ -445,10 +447,10 @@ describe Member do
describe '#pending?' do
let(:invited_member) { create(:project_member, invite_email: "user@example.com", user: nil) }
- let(:requester) { create(:project_member, requested_at: Time.now.utc) }
+ let(:request) { create(:project_member, requested_at: Time.now.utc) }
it { expect(invited_member).to be_invite }
- it { expect(requester).to be_pending }
+ it { expect(request).to be_pending }
end
describe "#accept_invite!" do