summaryrefslogtreecommitdiff
path: root/app/contexts/projects/create_context.rb
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2014-01-16 19:03:42 +0200
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2014-01-16 19:03:42 +0200
commit1d2bdb4d5880bb1ad39b62c81ff2971aa0cb3798 (patch)
tree8ac3215b2c25cb57b5f2198fd4d85c7bad968c2b /app/contexts/projects/create_context.rb
parentdba982403b7b894d2096ea61b89a247060eefe57 (diff)
downloadgitlab-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.rb80
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