diff options
| author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2012-11-29 07:29:11 +0300 |
|---|---|---|
| committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2012-11-29 12:39:03 +0200 |
| commit | eb1004f7890d25a86beb0ca0a7eca802d9fce665 (patch) | |
| tree | 94cb713c0628542e646aad323be4d88fb1c356e3 /app/contexts | |
| parent | a1ffc673b95f4d0e2316d461f1364fa1ee08e9d2 (diff) | |
| download | gitlab-ce-eb1004f7890d25a86beb0ca0a7eca802d9fce665.tar.gz | |
Refactor abilities. Added ProjectUpdate context. Fixed few bugs with namespaces
Diffstat (limited to 'app/contexts')
| -rw-r--r-- | app/contexts/project_update_context.rb | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/app/contexts/project_update_context.rb b/app/contexts/project_update_context.rb new file mode 100644 index 00000000000..e28d43d0e81 --- /dev/null +++ b/app/contexts/project_update_context.rb @@ -0,0 +1,21 @@ +class ProjectUpdateContext < BaseContext + def execute(role = :default) + namespace_id = params[:project].delete(:namespace_id) + + if 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 + # Transfer to someone namespace + namespace = Namespace.find(namespace_id) + project.transfer(namespace) + end + end + + project.update_attributes(params[:project], as: role) + end +end + |
