Admin can move project to ANY namespace. Updated permissions page

This commit is contained in:
Dmitriy Zaporozhets 2012-12-04 22:48:24 +02:00
parent 2a1c5cdf99
commit e376f31507
4 changed files with 64 additions and 57 deletions

View file

@ -2,7 +2,9 @@ class ProjectUpdateContext < BaseContext
def execute(role = :default)
namespace_id = params[:project].delete(:namespace_id)
if can?(current_user, :change_namespace, project) && namespace_id.present?
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

View file

@ -99,7 +99,8 @@ class Ability
def project_admin_rules
project_master_rules + [
:change_namespace,
:rename_project
:rename_project,
:remove_project
]
end

View file

@ -23,7 +23,7 @@
.clearfix
= f.label :namespace_id
.input
= f.select :namespace_id, namespaces_options(@project.namespace_id), {}, {class: 'chosen'}
= f.select :namespace_id, namespaces_options(@project.namespace_id, :all), {}, {class: 'chosen'}
&nbsp;
%span.cred Be careful. Changing project namespace can have unintended side effects

View file

@ -4,61 +4,65 @@
&larr; to index
%hr
.row
.ui-box.span2
%h5 Guest
%ul.unstyled
%li Create new issue
%li Leave comments
%li Write on project wall
%fieldset
%legend Guest
%ul
%li Create new issue
%li Leave comments
%li Write on project wall
.ui-box.span3
%h5 Reporter
%ul.unstyled
%li Create new issue
%li Leave comments
%li Write on project wall
%li Pull project code
%li Download project
%li Create new merge request
%li Create a code snippets
%fieldset
%legend Reporter
%ul
%li Create new issue
%li Leave comments
%li Write on project wall
%li Pull project code
%li Download project
%li Create new merge request
%li Create a code snippets
.ui-box.span3
%h5 Developer
%ul.unstyled
%li Create new issue
%li Leave comments
%li Write on project wall
%li Pull project code
%li Download project
%li Create new merge request
%li Create a code snippets
%li Create new branches
%li Push to non-protected branches
%li Remove non-protected branches
%li Add tags
%li Write a wiki
%fieldset
%legend Developer
%ul
%li Create new issue
%li Leave comments
%li Write on project wall
%li Pull project code
%li Download project
%li Create new merge request
%li Create a code snippets
%li Create new branches
%li Push to non-protected branches
%li Remove non-protected branches
%li Add tags
%li Write a wiki
.ui-box.span3
%h5 Master
%ul.unstyled
%li Create new issue
%li Leave comments
%li Write on project wall
%li Pull project code
%li Download project
%li Create new merge request
%li Create a code snippets
%li Create new branches
%li Push to non-protected branches
%li Remove non-protected branches
%li Add tags
%li Write a wiki
%li Add new team members
%li Push to protected branches
%li Remove protected branches
%li Push with force option
%li Edit project
%li Add Deploy Keys to project
%li Configure Project Hooks
%fieldset
%legend Master
%ul
%li Create new issue
%li Leave comments
%li Write on project wall
%li Pull project code
%li Download project
%li Create new merge request
%li Create a code snippets
%li Create new branches
%li Push to non-protected branches
%li Remove non-protected branches
%li Add tags
%li Write a wiki
%li Add new team members
%li Push to protected branches
%li Remove protected branches
%li Push with force option
%li Edit project
%li Add Deploy Keys to project
%li Configure Project Hooks
%fieldset
%legend Owner
%ul
%li Transfer project to another namespace