summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2013-06-19 18:32:08 +0300
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2013-06-19 18:32:08 +0300
commitcf8b465cb96f5aa6e53fec60c0d6e62ad1ccbc5e (patch)
treed714e0bae682113f15cc5092ae7c7e45b39581c0
parent6e35aceff29ddeae6282de31e81e48446ab927fa (diff)
downloadgitlab-ce-cf8b465cb96f5aa6e53fec60c0d6e62ad1ccbc5e.tar.gz
Remove Global namespace from options. Prepared file for migration of global projects
-rw-r--r--app/contexts/projects/create_context.rb10
-rw-r--r--app/contexts/projects/transfer_context.rb7
-rw-r--r--app/controllers/admin/projects_controller.rb1
-rw-r--r--app/helpers/namespaces_helper.rb1
-rw-r--r--app/views/projects/edit.html.haml2
-rw-r--r--lib/tasks/migrate/migrate_global_projects.rake12
6 files changed, 17 insertions, 16 deletions
diff --git a/app/contexts/projects/create_context.rb b/app/contexts/projects/create_context.rb
index d3b8dee3948..4045fe15a1d 100644
--- a/app/contexts/projects/create_context.rb
+++ b/app/contexts/projects/create_context.rb
@@ -33,7 +33,7 @@ module Projects
# Find matching namespace and check if it allowed
# for current user if namespace_id passed.
if allowed_namespace?(current_user, namespace_id)
- @project.namespace_id = namespace_id unless namespace_id == Namespace.global_id
+ @project.namespace_id = namespace_id
else
deny_namespace
return @project
@@ -75,12 +75,8 @@ module Projects
end
def allowed_namespace?(user, namespace_id)
- if namespace_id == Namespace.global_id
- return user.admin
- else
- namespace = Namespace.find_by_id(namespace_id)
- current_user.can?(:manage_namespace, namespace)
- end
+ namespace = Namespace.find_by_id(namespace_id)
+ current_user.can?(:manage_namespace, namespace)
end
end
end
diff --git a/app/contexts/projects/transfer_context.rb b/app/contexts/projects/transfer_context.rb
index aed396a5da5..3011984e3f8 100644
--- a/app/contexts/projects/transfer_context.rb
+++ b/app/contexts/projects/transfer_context.rb
@@ -5,12 +5,7 @@ module Projects
allowed_transfer = can?(current_user, :change_namespace, project) || role == :admin
if allowed_transfer && namespace_id.present?
- if namespace_id == Namespace.global_id
- if project.namespace.present?
- # Transfer to global namespace from anyone
- project.transfer(nil)
- end
- elsif namespace_id.to_i != project.namespace_id
+ if namespace_id.to_i != project.namespace_id
# Transfer to someone namespace
namespace = Namespace.find(namespace_id)
project.transfer(namespace)
diff --git a/app/controllers/admin/projects_controller.rb b/app/controllers/admin/projects_controller.rb
index a63c4694a81..e73a54dd1a5 100644
--- a/app/controllers/admin/projects_controller.rb
+++ b/app/controllers/admin/projects_controller.rb
@@ -9,7 +9,6 @@ class Admin::ProjectsController < Admin::ApplicationController
@projects = @projects.where(public: true) if params[:public_only].present?
@projects = @projects.with_push if params[:with_push].present?
@projects = @projects.abandoned if params[:abandoned].present?
- @projects = @projects.where(namespace_id: nil) if params[:namespace_id] == Namespace.global_id
@projects = @projects.search(params[:name]) if params[:name].present?
@projects = @projects.includes(:namespace).order("namespaces.path, projects.name ASC").page(params[:page]).per(20)
end
diff --git a/app/helpers/namespaces_helper.rb b/app/helpers/namespaces_helper.rb
index 69ad3de5031..a6fcf8d8cf2 100644
--- a/app/helpers/namespaces_helper.rb
+++ b/app/helpers/namespaces_helper.rb
@@ -3,7 +3,6 @@ module NamespacesHelper
groups = current_user.owned_groups.select {|n| n.type == 'Group'}
users = current_user.namespaces.reject {|n| n.type == 'Group'}
- global_opts = ["Global", [['/', Namespace.global_id]] ]
group_opts = ["Groups", groups.sort_by(&:human_name).map {|g| [g.human_name, g.id]} ]
users_opts = [ "Users", users.sort_by(&:human_name).map {|u| [u.human_name, u.id]} ]
diff --git a/app/views/projects/edit.html.haml b/app/views/projects/edit.html.haml
index bec64bf6c58..43199bc3dd9 100644
--- a/app/views/projects/edit.html.haml
+++ b/app/views/projects/edit.html.haml
@@ -129,7 +129,7 @@
%span Namespace
.controls
.clearfix
- = f.select :namespace_id, namespaces_options(@project.namespace_id || Namespace::global_id), {prompt: 'Choose a project namespace'}, {class: 'chosen'}
+ = f.select :namespace_id, namespaces_options(@project.namespace_id), {prompt: 'Choose a project namespace'}, {class: 'chosen'}
%ul
%li Be careful. Changing project namespace can have unintended side effects
%li You can transfer project only to namespaces you can manage
diff --git a/lib/tasks/migrate/migrate_global_projects.rake b/lib/tasks/migrate/migrate_global_projects.rake
new file mode 100644
index 00000000000..f2f74723c3b
--- /dev/null
+++ b/lib/tasks/migrate/migrate_global_projects.rake
@@ -0,0 +1,12 @@
+desc "GITLAB | Migrate Global Projects to Namespaces"
+task migrate_global_projects: :environment do
+ puts "This will move all projects without namespace to owner namespace"
+ ask_to_continue
+
+ Project.where(namespace_id: nil).find_each(batch_size: 20) do |project|
+
+ # TODO: transfer code here
+ print '.'
+ end
+end
+