Project can be transfered to namespace and out now
This commit is contained in:
parent
d405c8fc60
commit
f997947664
3 changed files with 16 additions and 13 deletions
|
@ -50,8 +50,7 @@ class Admin::GroupsController < AdminController
|
|||
project_ids = params[:project_ids]
|
||||
|
||||
Project.where(id: project_ids).each do |project|
|
||||
project.namespace_id = @group.id
|
||||
project.save
|
||||
project.transfer(@group)
|
||||
end
|
||||
|
||||
redirect_to :back, notice: 'Group was successfully updated.'
|
||||
|
@ -59,8 +58,7 @@ class Admin::GroupsController < AdminController
|
|||
|
||||
def remove_project
|
||||
@project = Project.find(params[:project_id])
|
||||
@project.namespace_id = nil
|
||||
@project.save
|
||||
@project.transfer(nil)
|
||||
|
||||
redirect_to :back, notice: 'Group was successfully updated.'
|
||||
end
|
||||
|
|
|
@ -226,4 +226,18 @@ class Project < ActiveRecord::Base
|
|||
def code
|
||||
path
|
||||
end
|
||||
|
||||
def transfer(new_namespace)
|
||||
Project.transaction do
|
||||
old_namespace = namespace
|
||||
self.namespace = new_namespace
|
||||
|
||||
old_dir = old_namespace.try(:path) || ''
|
||||
new_dir = new_namespace.try(:path) || ''
|
||||
|
||||
Gitlab::ProjectMover.new(self, old_dir, new_dir).execute
|
||||
|
||||
save!
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,14 +1,5 @@
|
|||
class ProjectObserver < ActiveRecord::Observer
|
||||
def after_save(project)
|
||||
# Move repository if namespace changed
|
||||
if project.namespace_id_changed? and not project.new_record?
|
||||
old_dir = Namespace.find_by_id(project.namespace_id_was).try(:path) || ''
|
||||
new_dir = Namespace.find_by_id(project.namespace_id).try(:path) || ''
|
||||
|
||||
Gitlab::ProjectMover.new(project, old_dir, new_dir).execute
|
||||
end
|
||||
|
||||
# Update gitolite
|
||||
project.update_repository
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in a new issue