Skip to content
Snippets Groups Projects
Commit f9979476 authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets
Browse files

Project can be transfered to namespace and out now

parent d405c8fc
No related branches found
No related tags found
1 merge request!2051User/Group namespaces for projects
Loading
Loading
@@ -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.'
Loading
Loading
@@ -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
Loading
Loading
Loading
Loading
@@ -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
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
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment