diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2014-11-13 19:40:47 +0200 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2014-11-13 19:40:47 +0200 |
commit | 18c8226566edb1c7fa43ccc1bf7a1db33f91489f (patch) | |
tree | b69b5717d39d49ce49125e316f4fddd352d28b32 /app/services/projects/fork_service.rb | |
parent | 58011d61c35beb4b55440caefcac6caa1905d891 (diff) | |
download | gitlab-ce-18c8226566edb1c7fa43ccc1bf7a1db33f91489f.tar.gz |
Refactor project fork service
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Diffstat (limited to 'app/services/projects/fork_service.rb')
-rw-r--r-- | app/services/projects/fork_service.rb | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/app/services/projects/fork_service.rb b/app/services/projects/fork_service.rb index c4f2d08efe9..4930660055a 100644 --- a/app/services/projects/fork_service.rb +++ b/app/services/projects/fork_service.rb @@ -13,11 +13,14 @@ module Projects project = Project.new(project_params) project.name = @from_project.name project.path = @from_project.path - project.namespace = @current_user.namespace + project.creator = @current_user + if namespace = @params[:namespace] project.namespace = namespace + else + project.namespace = @current_user.namespace end - project.creator = @current_user + unless @current_user.can?(:create_projects, project.namespace) project.errors.add(:namespace, 'insufficient access rights') return project @@ -47,8 +50,8 @@ module Projects else project.errors.add(:base, "Invalid fork destination") end - project + project end end end |