Add ability to leave project
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
This commit is contained in:
parent
907bbb2b05
commit
2afa5fcb52
3 changed files with 29 additions and 1 deletions
|
@ -73,10 +73,14 @@ class Projects::ProjectMembersController < Projects::ApplicationController
|
|||
end
|
||||
|
||||
def leave
|
||||
if @project.namespace == current_user.namespace
|
||||
return redirect_to(:back, alert: 'You can not leave your own project. Transfer or delete the project.')
|
||||
end
|
||||
|
||||
@project.project_members.find_by(user_id: current_user).destroy
|
||||
|
||||
respond_to do |format|
|
||||
format.html { redirect_to :back }
|
||||
format.html { redirect_to dashboard_path }
|
||||
format.js { render nothing: true }
|
||||
end
|
||||
end
|
||||
|
|
|
@ -294,4 +294,16 @@ module ProjectsHelper
|
|||
nil
|
||||
end
|
||||
end
|
||||
|
||||
def user_max_access_in_project(user, project)
|
||||
level = project.team.max_member_access(user)
|
||||
|
||||
if level
|
||||
Gitlab::Access.options_with_owner.key(level)
|
||||
end
|
||||
end
|
||||
|
||||
def leave_project_message(project)
|
||||
"Are you sure you want to leave \"#{project.name}\" project?"
|
||||
end
|
||||
end
|
||||
|
|
|
@ -94,3 +94,15 @@
|
|||
= icon("exclamation-triangle fw")
|
||||
Archived project!
|
||||
%p Repository is read-only
|
||||
|
||||
- if current_user
|
||||
- access = user_max_access_in_project(current_user, @project)
|
||||
- if access
|
||||
.light-well.light.prepend-top-20
|
||||
%small
|
||||
You have #{access} access to this project.
|
||||
- if @project.project_member_by_id(current_user)
|
||||
%br
|
||||
= link_to leave_namespace_project_project_members_path(@project.namespace, @project),
|
||||
data: { confirm: leave_project_message(@project) }, method: :delete, title: 'Leave project' do
|
||||
Leave this project
|
||||
|
|
Loading…
Reference in a new issue