Commit cf8b465cb96f5aa6e53fec60c0d6e62ad1ccbc5e

Authored by Dmitriy Zaporozhets
1 parent 6e35acef

Remove Global namespace from options. Prepared file for migration of global projects

app/contexts/projects/create_context.rb
@@ -33,7 +33,7 @@ module Projects @@ -33,7 +33,7 @@ module Projects
33 # Find matching namespace and check if it allowed 33 # Find matching namespace and check if it allowed
34 # for current user if namespace_id passed. 34 # for current user if namespace_id passed.
35 if allowed_namespace?(current_user, namespace_id) 35 if allowed_namespace?(current_user, namespace_id)
36 - @project.namespace_id = namespace_id unless namespace_id == Namespace.global_id 36 + @project.namespace_id = namespace_id
37 else 37 else
38 deny_namespace 38 deny_namespace
39 return @project 39 return @project
@@ -75,12 +75,8 @@ module Projects @@ -75,12 +75,8 @@ module Projects
75 end 75 end
76 76
77 def allowed_namespace?(user, namespace_id) 77 def allowed_namespace?(user, namespace_id)
78 - if namespace_id == Namespace.global_id  
79 - return user.admin  
80 - else  
81 - namespace = Namespace.find_by_id(namespace_id)  
82 - current_user.can?(:manage_namespace, namespace)  
83 - end 78 + namespace = Namespace.find_by_id(namespace_id)
  79 + current_user.can?(:manage_namespace, namespace)
84 end 80 end
85 end 81 end
86 end 82 end
app/contexts/projects/transfer_context.rb
@@ -5,12 +5,7 @@ module Projects @@ -5,12 +5,7 @@ module Projects
5 allowed_transfer = can?(current_user, :change_namespace, project) || role == :admin 5 allowed_transfer = can?(current_user, :change_namespace, project) || role == :admin
6 6
7 if allowed_transfer && namespace_id.present? 7 if allowed_transfer && namespace_id.present?
8 - if namespace_id == Namespace.global_id  
9 - if project.namespace.present?  
10 - # Transfer to global namespace from anyone  
11 - project.transfer(nil)  
12 - end  
13 - elsif namespace_id.to_i != project.namespace_id 8 + if namespace_id.to_i != project.namespace_id
14 # Transfer to someone namespace 9 # Transfer to someone namespace
15 namespace = Namespace.find(namespace_id) 10 namespace = Namespace.find(namespace_id)
16 project.transfer(namespace) 11 project.transfer(namespace)
app/controllers/admin/projects_controller.rb
@@ -9,7 +9,6 @@ class Admin::ProjectsController < Admin::ApplicationController @@ -9,7 +9,6 @@ class Admin::ProjectsController < Admin::ApplicationController
9 @projects = @projects.where(public: true) if params[:public_only].present? 9 @projects = @projects.where(public: true) if params[:public_only].present?
10 @projects = @projects.with_push if params[:with_push].present? 10 @projects = @projects.with_push if params[:with_push].present?
11 @projects = @projects.abandoned if params[:abandoned].present? 11 @projects = @projects.abandoned if params[:abandoned].present?
12 - @projects = @projects.where(namespace_id: nil) if params[:namespace_id] == Namespace.global_id  
13 @projects = @projects.search(params[:name]) if params[:name].present? 12 @projects = @projects.search(params[:name]) if params[:name].present?
14 @projects = @projects.includes(:namespace).order("namespaces.path, projects.name ASC").page(params[:page]).per(20) 13 @projects = @projects.includes(:namespace).order("namespaces.path, projects.name ASC").page(params[:page]).per(20)
15 end 14 end
app/helpers/namespaces_helper.rb
@@ -3,7 +3,6 @@ module NamespacesHelper @@ -3,7 +3,6 @@ module NamespacesHelper
3 groups = current_user.owned_groups.select {|n| n.type == 'Group'} 3 groups = current_user.owned_groups.select {|n| n.type == 'Group'}
4 users = current_user.namespaces.reject {|n| n.type == 'Group'} 4 users = current_user.namespaces.reject {|n| n.type == 'Group'}
5 5
6 - global_opts = ["Global", [['/', Namespace.global_id]] ]  
7 group_opts = ["Groups", groups.sort_by(&:human_name).map {|g| [g.human_name, g.id]} ] 6 group_opts = ["Groups", groups.sort_by(&:human_name).map {|g| [g.human_name, g.id]} ]
8 users_opts = [ "Users", users.sort_by(&:human_name).map {|u| [u.human_name, u.id]} ] 7 users_opts = [ "Users", users.sort_by(&:human_name).map {|u| [u.human_name, u.id]} ]
9 8
app/views/projects/edit.html.haml
@@ -129,7 +129,7 @@ @@ -129,7 +129,7 @@
129 %span Namespace 129 %span Namespace
130 .controls 130 .controls
131 .clearfix 131 .clearfix
132 - = f.select :namespace_id, namespaces_options(@project.namespace_id || Namespace::global_id), {prompt: 'Choose a project namespace'}, {class: 'chosen'} 132 + = f.select :namespace_id, namespaces_options(@project.namespace_id), {prompt: 'Choose a project namespace'}, {class: 'chosen'}
133 %ul 133 %ul
134 %li Be careful. Changing project namespace can have unintended side effects 134 %li Be careful. Changing project namespace can have unintended side effects
135 %li You can transfer project only to namespaces you can manage 135 %li You can transfer project only to namespaces you can manage
lib/tasks/migrate/migrate_global_projects.rake 0 → 100644
@@ -0,0 +1,12 @@ @@ -0,0 +1,12 @@
  1 +desc "GITLAB | Migrate Global Projects to Namespaces"
  2 +task migrate_global_projects: :environment do
  3 + puts "This will move all projects without namespace to owner namespace"
  4 + ask_to_continue
  5 +
  6 + Project.where(namespace_id: nil).find_each(batch_size: 20) do |project|
  7 +
  8 + # TODO: transfer code here
  9 + print '.'
  10 + end
  11 +end
  12 +