Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
heptapod
heptapod
Commits
b198b52e4223
Commit
5dcdf1d5
authored
Sep 09, 2016
by
Rémy Coutable
Browse files
Ensure Members::ApproveAccessRequestService can fin a requester by ID
Signed-off-by:
Rémy Coutable
<
remy@rymai.me
>
parent
cdce66d4d793
Changes
4
Hide whitespace changes
Inline
Side-by-side
app/controllers/concerns/membership_actions.rb
View file @
b198b52e
...
...
@@ -9,7 +9,7 @@ def request_access
end
def
approve_access_request
Members
::
ApproveAccessRequestService
.
new
(
membershipable
,
current_user
,
user_id:
params
[
:id
]
).
execute
Members
::
ApproveAccessRequestService
.
new
(
membershipable
,
current_user
,
params
).
execute
redirect_to
polymorphic_url
([
membershipable
,
:members
])
end
...
...
app/services/members/approve_access_request_service.rb
View file @
b198b52e
...
...
@@ -11,7 +11,8 @@ def initialize(source, current_user, params = {})
end
def
execute
access_requester
=
source
.
requesters
.
find_by!
(
user_id:
params
[
:user_id
])
condition
=
params
[
:user_id
]
?
{
user_id:
params
[
:user_id
]
}
:
{
id:
params
[
:id
]
}
access_requester
=
source
.
requesters
.
find_by!
(
condition
)
raise
Gitlab
::
Access
::
AccessDeniedError
if
cannot_update_access_requester?
(
access_requester
)
...
...
spec/controllers/groups/group_members_controller_spec.rb
View file @
b198b52e
...
...
@@ -2,9 +2,10 @@
describe
Groups
::
GroupMembersController
do
let
(
:user
)
{
create
(
:user
)
}
let
(
:group
)
{
create
(
:group
)
}
describe
'#index'
do
let
(
:group
)
{
create
(
:group
)
}
before
do
group
.
add_owner
(
user
)
stub_application_setting
(
restricted_visibility_levels:
[
Gitlab
::
VisibilityLevel
::
PUBLIC
])
...
...
spec/services/members/approve_access_request_service_spec.rb
View file @
b198b52e
...
...
@@ -83,6 +83,14 @@
it_behaves_like
'a service approving an access request'
do
let
(
:source
)
{
group
}
end
context
'when given a :id'
do
let
(
:params
)
{
{
id:
project
.
requesters
.
find_by!
(
user_id:
access_requester
.
id
).
id
}
}
it_behaves_like
'a service approving an access request'
do
let
(
:source
)
{
project
}
end
end
end
end
end
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment