Merge branch 'feature/leave_project' of /home/git/repositories/gitlab/gitlabhq
This commit is contained in:
commit
94f8b51cb3
|
@ -1,6 +1,6 @@
|
|||
class Projects::TeamMembersController < Projects::ApplicationController
|
||||
# Authorize
|
||||
before_filter :authorize_admin_project!
|
||||
before_filter :authorize_admin_project!, except: :leave
|
||||
|
||||
layout "project_settings"
|
||||
|
||||
|
@ -45,6 +45,15 @@ class Projects::TeamMembersController < Projects::ApplicationController
|
|||
end
|
||||
end
|
||||
|
||||
def leave
|
||||
project.users_projects.find_by_user_id(current_user).destroy
|
||||
|
||||
respond_to do |format|
|
||||
format.html { redirect_to :back }
|
||||
format.js { render nothing: true }
|
||||
end
|
||||
end
|
||||
|
||||
def apply_import
|
||||
giver = Project.find(params[:source_project_id])
|
||||
status = @project.team.import(giver)
|
||||
|
|
|
@ -317,7 +317,7 @@ class Project < ActiveRecord::Base
|
|||
mrs = self.merge_requests.opened.by_branch(branch_name).all
|
||||
# Update code for merge requests between project and project fork
|
||||
mrs += self.fork_merge_requests.opened.by_branch(branch_name).all
|
||||
|
||||
|
||||
mrs.each { |merge_request| merge_request.reload_code; merge_request.mark_as_unchecked }
|
||||
|
||||
# Close merge requests
|
||||
|
@ -447,4 +447,8 @@ class Project < ActiveRecord::Base
|
|||
order('id DESC').limit(100).
|
||||
update_all(updated_at: Time.now)
|
||||
end
|
||||
|
||||
def project_member(user)
|
||||
users_projects.where(user_id: user).first
|
||||
end
|
||||
end
|
||||
|
|
|
@ -395,4 +395,9 @@ class User < ActiveRecord::Base
|
|||
|
||||
self
|
||||
end
|
||||
|
||||
def can_leave_project?(project)
|
||||
project.namespace != namespace &&
|
||||
project.project_member(self)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -54,7 +54,7 @@
|
|||
.span9
|
||||
%ul.bordered-list.my-projects.top-list
|
||||
- @projects.each do |project|
|
||||
%li
|
||||
%li.my-project-row
|
||||
%h4.project-title
|
||||
= link_to project_path(project), class: dom_class(project) do
|
||||
= project.name_with_namespace
|
||||
|
@ -63,6 +63,12 @@
|
|||
= public_icon
|
||||
Public
|
||||
|
||||
- if current_user.can_leave_project?(project)
|
||||
.pull-right
|
||||
= link_to leave_project_team_members_path(project), confirm: "Leave project?", method: :delete, remote: true, class: "btn-tiny btn remove-row", title: 'Leave project' do
|
||||
%i.icon-signout
|
||||
Leave
|
||||
|
||||
- if project.forked_from_project
|
||||
%small.pull-right
|
||||
%i.icon-code-fork
|
||||
|
@ -80,6 +86,7 @@
|
|||
%span.light Last activity:
|
||||
%span.date= project_last_activity(project)
|
||||
|
||||
|
||||
- if @projects.blank?
|
||||
%li
|
||||
%h3.nothing_here_message There are no projects here.
|
||||
|
|
|
@ -288,6 +288,7 @@ Gitlab::Application.routes.draw do
|
|||
|
||||
resources :team_members, except: [:index, :edit], constraints: { id: /[a-zA-Z.\/0-9_\-#%+]+/ } do
|
||||
collection do
|
||||
delete :leave
|
||||
|
||||
# Used for import team
|
||||
# from another project
|
||||
|
|
Loading…
Reference in New Issue