diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2014-01-16 19:03:42 +0200 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2014-01-16 19:03:42 +0200 |
commit | 1d2bdb4d5880bb1ad39b62c81ff2971aa0cb3798 (patch) | |
tree | 8ac3215b2c25cb57b5f2198fd4d85c7bad968c2b /app/contexts/projects/create_context.rb | |
parent | dba982403b7b894d2096ea61b89a247060eefe57 (diff) | |
download | gitlab-ce-1d2bdb4d5880bb1ad39b62c81ff2971aa0cb3798.tar.gz |
Move all Context classes into Services
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Diffstat (limited to 'app/contexts/projects/create_context.rb')
-rw-r--r-- | app/contexts/projects/create_context.rb | 80 |
1 files changed, 0 insertions, 80 deletions
diff --git a/app/contexts/projects/create_context.rb b/app/contexts/projects/create_context.rb deleted file mode 100644 index 2acb9fbfe14..00000000000 --- a/app/contexts/projects/create_context.rb +++ /dev/null @@ -1,80 +0,0 @@ -module Projects - class CreateContext < BaseContext - def initialize(user, params) - @current_user, @params = user, params.dup - end - - def execute - # get namespace id - namespace_id = params.delete(:namespace_id) - - # check that user is allowed to set specified visibility_level - unless Gitlab::VisibilityLevel.allowed_for?(current_user, params[:visibility_level]) - params.delete(:visibility_level) - end - - # Load default feature settings - default_features = Gitlab.config.gitlab.default_projects_features - - default_opts = { - issues_enabled: default_features.issues, - wiki_enabled: default_features.wiki, - wall_enabled: default_features.wall, - snippets_enabled: default_features.snippets, - merge_requests_enabled: default_features.merge_requests, - visibility_level: default_features.visibility_level - }.stringify_keys - - @project = Project.new(default_opts.merge(params)) - - # Parametrize path for project - # - # Ex. - # 'GitLab HQ'.parameterize => "gitlab-hq" - # - @project.path = @project.name.dup.parameterize unless @project.path.present? - - - if namespace_id - # Find matching namespace and check if it allowed - # for current user if namespace_id passed. - if allowed_namespace?(current_user, namespace_id) - @project.namespace_id = namespace_id - else - deny_namespace - return @project - end - else - # Set current user namespace if namespace_id is nil - @project.namespace_id = current_user.namespace_id - end - - @project.creator = current_user - - if @project.save - unless @project.group - @project.users_projects.create( - project_access: UsersProject::MASTER, - user: current_user - ) - end - end - - @project - rescue => ex - @project.errors.add(:base, "Can't save project. Please try again later") - @project - end - - protected - - def deny_namespace - @project.errors.add(:namespace, "is not valid") - end - - def allowed_namespace?(user, namespace_id) - namespace = Namespace.find_by_id(namespace_id) - current_user.can?(:manage_namespace, namespace) - end - end -end |