Commit cf8b465cb96f5aa6e53fec60c0d6e62ad1ccbc5e
1 parent
6e35acef
Exists in
master
and in
4 other branches
Remove Global namespace from options. Prepared file for migration of global projects
Showing
6 changed files
with
17 additions
and
16 deletions
Show diff stats
app/contexts/projects/create_context.rb
... | ... | @@ -33,7 +33,7 @@ module Projects |
33 | 33 | # Find matching namespace and check if it allowed |
34 | 34 | # for current user if namespace_id passed. |
35 | 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 | 37 | else |
38 | 38 | deny_namespace |
39 | 39 | return @project |
... | ... | @@ -75,12 +75,8 @@ module Projects |
75 | 75 | end |
76 | 76 | |
77 | 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 | 80 | end |
85 | 81 | end |
86 | 82 | end | ... | ... |
app/contexts/projects/transfer_context.rb
... | ... | @@ -5,12 +5,7 @@ module Projects |
5 | 5 | allowed_transfer = can?(current_user, :change_namespace, project) || role == :admin |
6 | 6 | |
7 | 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 | 9 | # Transfer to someone namespace |
15 | 10 | namespace = Namespace.find(namespace_id) |
16 | 11 | project.transfer(namespace) | ... | ... |
app/controllers/admin/projects_controller.rb
... | ... | @@ -9,7 +9,6 @@ class Admin::ProjectsController < Admin::ApplicationController |
9 | 9 | @projects = @projects.where(public: true) if params[:public_only].present? |
10 | 10 | @projects = @projects.with_push if params[:with_push].present? |
11 | 11 | @projects = @projects.abandoned if params[:abandoned].present? |
12 | - @projects = @projects.where(namespace_id: nil) if params[:namespace_id] == Namespace.global_id | |
13 | 12 | @projects = @projects.search(params[:name]) if params[:name].present? |
14 | 13 | @projects = @projects.includes(:namespace).order("namespaces.path, projects.name ASC").page(params[:page]).per(20) |
15 | 14 | end | ... | ... |
app/helpers/namespaces_helper.rb
... | ... | @@ -3,7 +3,6 @@ module NamespacesHelper |
3 | 3 | groups = current_user.owned_groups.select {|n| n.type == 'Group'} |
4 | 4 | users = current_user.namespaces.reject {|n| n.type == 'Group'} |
5 | 5 | |
6 | - global_opts = ["Global", [['/', Namespace.global_id]] ] | |
7 | 6 | group_opts = ["Groups", groups.sort_by(&:human_name).map {|g| [g.human_name, g.id]} ] |
8 | 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 | 129 | %span Namespace |
130 | 130 | .controls |
131 | 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 | 133 | %ul |
134 | 134 | %li Be careful. Changing project namespace can have unintended side effects |
135 | 135 | %li You can transfer project only to namespaces you can manage | ... | ... |
... | ... | @@ -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 | + | ... | ... |