diff options
Diffstat (limited to 'app/controllers/concerns/membership_actions.rb')
-rw-r--r-- | app/controllers/concerns/membership_actions.rb | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/app/controllers/concerns/membership_actions.rb b/app/controllers/concerns/membership_actions.rb index 9e3625d1b36..7bbee8ba79e 100644 --- a/app/controllers/concerns/membership_actions.rb +++ b/app/controllers/concerns/membership_actions.rb @@ -6,7 +6,7 @@ module MembershipActions def create create_params = params.permit(:user_ids, :access_level, :expires_at) - result = Members::CreateService.new(current_user, create_params).execute(membershipable) + result = Members::CreateService.new(current_user, create_params.merge({ source: membershipable })).execute if result[:status] == :success redirect_to members_page_url, notice: _('Users were successfully added.') @@ -43,10 +43,11 @@ module MembershipActions def destroy member = membershipable.members_and_requesters.find(params[:id]) + skip_subresources = !ActiveRecord::Type::Boolean.new.cast(params.delete(:remove_sub_memberships)) # !! is used in case unassign_issuables contains empty string which would result in nil unassign_issuables = !!ActiveRecord::Type::Boolean.new.cast(params.delete(:unassign_issuables)) - Members::DestroyService.new(current_user).execute(member, unassign_issuables: unassign_issuables) + Members::DestroyService.new(current_user).execute(member, skip_subresources: skip_subresources, unassign_issuables: unassign_issuables) respond_to do |format| format.html do @@ -54,7 +55,11 @@ module MembershipActions begin case membershipable when Namespace - _("User was successfully removed from group and any subresources.") + if skip_subresources + _("User was successfully removed from group.") + else + _("User was successfully removed from group and any subgroups and projects.") + end else _("User was successfully removed from project.") end |