From 6b02127f03b1f8e1dbbecccfc2ba16e62aadcbed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Coutable?= Date: Thu, 28 Jul 2016 19:28:56 +0200 Subject: New Members::RequestAccessService MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Rémy Coutable --- app/services/members/request_access_service.rb | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 app/services/members/request_access_service.rb (limited to 'app/services') diff --git a/app/services/members/request_access_service.rb b/app/services/members/request_access_service.rb new file mode 100644 index 00000000000..5c0d2d83445 --- /dev/null +++ b/app/services/members/request_access_service.rb @@ -0,0 +1,25 @@ +module Members + class RequestAccessService < BaseService + attr_accessor :source + + def initialize(source, current_user) + @source = source + @current_user = current_user + end + + def execute + raise Gitlab::Access::AccessDeniedError if cannot_request_access?(source) + + source.members.create( + access_level: Gitlab::Access::DEVELOPER, + user: current_user, + requested_at: Time.now.utc) + end + + private + + def cannot_request_access?(source) + !source || !can?(current_user, :request_access, source) + end + end +end -- cgit v1.2.1 From 94edafdf09fdc36054dcc3a71b34649a48c2a357 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Coutable?= Date: Thu, 22 Sep 2016 11:11:33 +0200 Subject: Inverse condition in Members::RequestAccessService MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Rémy Coutable --- app/services/members/request_access_service.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'app/services') diff --git a/app/services/members/request_access_service.rb b/app/services/members/request_access_service.rb index 5c0d2d83445..2614153d900 100644 --- a/app/services/members/request_access_service.rb +++ b/app/services/members/request_access_service.rb @@ -8,7 +8,7 @@ module Members end def execute - raise Gitlab::Access::AccessDeniedError if cannot_request_access?(source) + raise Gitlab::Access::AccessDeniedError unless can_request_access?(source) source.members.create( access_level: Gitlab::Access::DEVELOPER, @@ -18,8 +18,8 @@ module Members private - def cannot_request_access?(source) - !source || !can?(current_user, :request_access, source) + def can_request_access?(source) + source && can?(current_user, :request_access, source) end end end -- cgit v1.2.1