Commit e376f3150736e7936082529a3f6c92395f4c9720

Authored by Dmitriy Zaporozhets
1 parent 2a1c5cdf

Admin can move project to ANY namespace. Updated permissions page

app/contexts/project_update_context.rb
@@ -2,7 +2,9 @@ class ProjectUpdateContext < BaseContext @@ -2,7 +2,9 @@ class ProjectUpdateContext < BaseContext
2 def execute(role = :default) 2 def execute(role = :default)
3 namespace_id = params[:project].delete(:namespace_id) 3 namespace_id = params[:project].delete(:namespace_id)
4 4
5 - if can?(current_user, :change_namespace, project) && namespace_id.present? 5 + allowed_transfer = can?(current_user, :change_namespace, project) || role == :admin
  6 +
  7 + if allowed_transfer && namespace_id.present?
6 if namespace_id == Namespace.global_id 8 if namespace_id == Namespace.global_id
7 if project.namespace.present? 9 if project.namespace.present?
8 # Transfer to global namespace from anyone 10 # Transfer to global namespace from anyone
app/models/ability.rb
@@ -99,7 +99,8 @@ class Ability @@ -99,7 +99,8 @@ class Ability
99 def project_admin_rules 99 def project_admin_rules
100 project_master_rules + [ 100 project_master_rules + [
101 :change_namespace, 101 :change_namespace,
102 - :rename_project 102 + :rename_project,
  103 + :remove_project
103 ] 104 ]
104 end 105 end
105 106
app/views/admin/projects/_form.html.haml
@@ -23,7 +23,7 @@ @@ -23,7 +23,7 @@
23 .clearfix 23 .clearfix
24 = f.label :namespace_id 24 = f.label :namespace_id
25 .input 25 .input
26 - = f.select :namespace_id, namespaces_options(@project.namespace_id), {}, {class: 'chosen'} 26 + = f.select :namespace_id, namespaces_options(@project.namespace_id, :all), {}, {class: 'chosen'}
27   27  
28 %span.cred Be careful. Changing project namespace can have unintended side effects 28 %span.cred Be careful. Changing project namespace can have unintended side effects
29 29
app/views/help/permissions.html.haml
@@ -4,61 +4,65 @@ @@ -4,61 +4,65 @@
4 ← to index 4 ← to index
5 %hr 5 %hr
6 6
7 -.row  
8 - .ui-box.span2  
9 - %h5 Guest  
10 - %ul.unstyled  
11 - %li Create new issue  
12 - %li Leave comments  
13 - %li Write on project wall 7 +%fieldset
  8 + %legend Guest
  9 + %ul
  10 + %li Create new issue
  11 + %li Leave comments
  12 + %li Write on project wall
14 13
15 - .ui-box.span3  
16 - %h5 Reporter  
17 - %ul.unstyled  
18 - %li Create new issue  
19 - %li Leave comments  
20 - %li Write on project wall  
21 - %li Pull project code  
22 - %li Download project  
23 - %li Create new merge request  
24 - %li Create a code snippets 14 +%fieldset
  15 + %legend Reporter
  16 + %ul
  17 + %li Create new issue
  18 + %li Leave comments
  19 + %li Write on project wall
  20 + %li Pull project code
  21 + %li Download project
  22 + %li Create new merge request
  23 + %li Create a code snippets
25 24
26 25
27 - .ui-box.span3  
28 - %h5 Developer  
29 - %ul.unstyled  
30 - %li Create new issue  
31 - %li Leave comments  
32 - %li Write on project wall  
33 - %li Pull project code  
34 - %li Download project  
35 - %li Create new merge request  
36 - %li Create a code snippets  
37 - %li Create new branches  
38 - %li Push to non-protected branches  
39 - %li Remove non-protected branches  
40 - %li Add tags  
41 - %li Write a wiki 26 +%fieldset
  27 + %legend Developer
  28 + %ul
  29 + %li Create new issue
  30 + %li Leave comments
  31 + %li Write on project wall
  32 + %li Pull project code
  33 + %li Download project
  34 + %li Create new merge request
  35 + %li Create a code snippets
  36 + %li Create new branches
  37 + %li Push to non-protected branches
  38 + %li Remove non-protected branches
  39 + %li Add tags
  40 + %li Write a wiki
42 41
43 - .ui-box.span3  
44 - %h5 Master  
45 - %ul.unstyled  
46 - %li Create new issue  
47 - %li Leave comments  
48 - %li Write on project wall  
49 - %li Pull project code  
50 - %li Download project  
51 - %li Create new merge request  
52 - %li Create a code snippets  
53 - %li Create new branches  
54 - %li Push to non-protected branches  
55 - %li Remove non-protected branches  
56 - %li Add tags  
57 - %li Write a wiki  
58 - %li Add new team members  
59 - %li Push to protected branches  
60 - %li Remove protected branches  
61 - %li Push with force option  
62 - %li Edit project  
63 - %li Add Deploy Keys to project  
64 - %li Configure Project Hooks 42 +%fieldset
  43 + %legend Master
  44 + %ul
  45 + %li Create new issue
  46 + %li Leave comments
  47 + %li Write on project wall
  48 + %li Pull project code
  49 + %li Download project
  50 + %li Create new merge request
  51 + %li Create a code snippets
  52 + %li Create new branches
  53 + %li Push to non-protected branches
  54 + %li Remove non-protected branches
  55 + %li Add tags
  56 + %li Write a wiki
  57 + %li Add new team members
  58 + %li Push to protected branches
  59 + %li Remove protected branches
  60 + %li Push with force option
  61 + %li Edit project
  62 + %li Add Deploy Keys to project
  63 + %li Configure Project Hooks
  64 +
  65 +%fieldset
  66 + %legend Owner
  67 + %ul
  68 + %li Transfer project to another namespace