Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/controllers/projects')
-rw-r--r--app/controllers/projects/application_controller.rb36
-rw-r--r--app/controllers/projects/avatars_controller.rb29
-rw-r--r--app/controllers/projects/blame_controller.rb13
-rw-r--r--app/controllers/projects/blob_controller.rb163
-rw-r--r--app/controllers/projects/branches_controller.rb46
-rw-r--r--app/controllers/projects/commit_controller.rb41
-rw-r--r--app/controllers/projects/commits_controller.rb24
-rw-r--r--app/controllers/projects/compare_controller.rb31
-rw-r--r--app/controllers/projects/deploy_keys_controller.rb65
-rw-r--r--app/controllers/projects/forks_controller.rb25
-rw-r--r--app/controllers/projects/graphs_controller.rb39
-rw-r--r--app/controllers/projects/hooks_controller.rb58
-rw-r--r--app/controllers/projects/imports_controller.rb51
-rw-r--r--app/controllers/projects/issues_controller.rb159
-rw-r--r--app/controllers/projects/labels_controller.rb82
-rw-r--r--app/controllers/projects/merge_requests_controller.rb270
-rw-r--r--app/controllers/projects/milestones_controller.rb116
-rw-r--r--app/controllers/projects/network_controller.rb18
-rw-r--r--app/controllers/projects/notes_controller.rb125
-rw-r--r--app/controllers/projects/project_members_controller.rb98
-rw-r--r--app/controllers/projects/protected_branches_controller.rb51
-rw-r--r--app/controllers/projects/raw_controller.rb37
-rw-r--r--app/controllers/projects/refs_controller.rb64
-rw-r--r--app/controllers/projects/repositories_controller.rb28
-rw-r--r--app/controllers/projects/services_controller.rb59
-rw-r--r--app/controllers/projects/snippets_controller.rb93
-rw-r--r--app/controllers/projects/tags_controller.rb37
-rw-r--r--app/controllers/projects/tree_controller.rb27
-rw-r--r--app/controllers/projects/wikis_controller.rb123
29 files changed, 0 insertions, 2008 deletions
diff --git a/app/controllers/projects/application_controller.rb b/app/controllers/projects/application_controller.rb
deleted file mode 100644
index 4719933394f..00000000000
--- a/app/controllers/projects/application_controller.rb
+++ /dev/null
@@ -1,36 +0,0 @@
-class Projects::ApplicationController < ApplicationController
- before_filter :project
- before_filter :repository
- layout :determine_layout
-
- def authenticate_user!
- # Restrict access to Projects area only
- # for non-signed users
- if !current_user
- id = params[:project_id] || params[:id]
- project_with_namespace = "#{params[:namespace_id]}/#{id}"
- @project = Project.find_with_namespace(project_with_namespace)
-
- return if @project && @project.public?
- end
-
- super
- end
-
- def determine_layout
- if current_user
- 'projects'
- else
- 'public_projects'
- end
- end
-
- def require_branch_head
- unless @repository.branch_names.include?(@ref)
- redirect_to(
- namespace_project_tree_path(@project.namespace, @project, @ref),
- notice: "This action is not allowed unless you are on top of a branch"
- )
- end
- end
-end
diff --git a/app/controllers/projects/avatars_controller.rb b/app/controllers/projects/avatars_controller.rb
deleted file mode 100644
index a482b90880d..00000000000
--- a/app/controllers/projects/avatars_controller.rb
+++ /dev/null
@@ -1,29 +0,0 @@
-class Projects::AvatarsController < Projects::ApplicationController
- layout 'project'
-
- before_filter :project
-
- def show
- @blob = @project.repository.blob_at_branch('master', @project.avatar_in_git)
- if @blob
- headers['X-Content-Type-Options'] = 'nosniff'
- send_data(
- @blob.data,
- type: @blob.mime_type,
- disposition: 'inline',
- filename: @blob.name
- )
- else
- not_found!
- end
- end
-
- def destroy
- @project.remove_avatar!
-
- @project.save
- @project.reset_events_cache
-
- redirect_to edit_project_path(@project)
- end
-end
diff --git a/app/controllers/projects/blame_controller.rb b/app/controllers/projects/blame_controller.rb
deleted file mode 100644
index a87b8270a22..00000000000
--- a/app/controllers/projects/blame_controller.rb
+++ /dev/null
@@ -1,13 +0,0 @@
-# Controller for viewing a file's blame
-class Projects::BlameController < Projects::ApplicationController
- include ExtractsPath
-
- before_filter :require_non_empty_project
- before_filter :assign_ref_vars
- before_filter :authorize_download_code!
-
- def show
- @blame = Gitlab::Git::Blame.new(@repository, @commit.id, @path)
- @blob = @blame.blob
- end
-end
diff --git a/app/controllers/projects/blob_controller.rb b/app/controllers/projects/blob_controller.rb
deleted file mode 100644
index 4b7eb4df298..00000000000
--- a/app/controllers/projects/blob_controller.rb
+++ /dev/null
@@ -1,163 +0,0 @@
-# Controller for viewing a file's blame
-class Projects::BlobController < Projects::ApplicationController
- include ExtractsPath
- include ActionView::Helpers::SanitizeHelper
-
- # Raised when given an invalid file path
- class InvalidPathError < StandardError; end
-
- before_filter :require_non_empty_project, except: [:new, :create]
- before_filter :authorize_download_code!
- before_filter :authorize_push_code!, only: [:destroy]
- before_filter :assign_blob_vars
- before_filter :commit, except: [:new, :create]
- before_filter :blob, except: [:new, :create]
- before_filter :from_merge_request, only: [:edit, :update]
- before_filter :after_edit_path, only: [:edit, :update]
- before_filter :require_branch_head, only: [:edit, :update]
-
- def new
- commit unless @repository.empty?
- end
-
- def create
- file_path = File.join(@path, File.basename(params[:file_name]))
- result = Files::CreateService.new(
- @project,
- current_user,
- params.merge(new_branch: sanitized_new_branch_name),
- @ref,
- file_path
- ).execute
-
- if result[:status] == :success
- flash[:notice] = "Your changes have been successfully committed"
- ref = sanitized_new_branch_name.presence || @ref
- redirect_to namespace_project_blob_path(@project.namespace, @project, File.join(ref, file_path))
- else
- flash[:alert] = result[:message]
- render :new
- end
- end
-
- def show
- end
-
- def edit
- @last_commit = Gitlab::Git::Commit.last_for_path(@repository, @ref, @path).sha
- end
-
- def update
- result = Files::UpdateService.
- new(
- @project,
- current_user,
- params.merge(new_branch: sanitized_new_branch_name),
- @ref,
- @path
- ).execute
-
- if result[:status] == :success
- flash[:notice] = "Your changes have been successfully committed"
-
- if from_merge_request
- from_merge_request.reload_code
- end
-
- redirect_to after_edit_path
- else
- flash[:alert] = result[:message]
- render :edit
- end
- end
-
- def preview
- @content = params[:content]
- diffy = Diffy::Diff.new(@blob.data, @content, diff: '-U 3', include_diff_info: true)
- @diff_lines = Gitlab::Diff::Parser.new.parse(diffy.diff.scan(/.*\n/))
-
- render layout: false
- end
-
- def destroy
- result = Files::DeleteService.new(@project, current_user, params, @ref, @path).execute
-
- if result[:status] == :success
- flash[:notice] = "Your changes have been successfully committed"
- redirect_to namespace_project_tree_path(@project.namespace, @project,
- @ref)
- else
- flash[:alert] = result[:message]
- render :show
- end
- end
-
- def diff
- @form = UnfoldForm.new(params)
- @lines = @blob.data.lines[@form.since - 1..@form.to - 1]
-
- if @form.bottom?
- @match_line = ''
- else
- lines_length = @lines.length - 1
- line = [@form.since, lines_length].join(',')
- @match_line = "@@ -#{line}+#{line} @@"
- end
-
- render layout: false
- end
-
- private
-
- def blob
- @blob ||= @repository.blob_at(@commit.id, @path)
-
- if @blob
- @blob
- else
- if tree = @repository.tree(@commit.id, @path)
- if tree.entries.any?
- redirect_to namespace_project_tree_path(@project.namespace, @project, File.join(@ref, @path)) and return
- end
- end
-
- return not_found!
- end
- end
-
- def commit
- @commit = @repository.commit(@ref)
-
- return not_found! unless @commit
- end
-
- def assign_blob_vars
- @id = params[:id]
- @ref, @path = extract_ref(@id)
-
-
- rescue InvalidPathError
- not_found!
- end
-
- def after_edit_path
- @after_edit_path ||=
- if from_merge_request
- diffs_namespace_project_merge_request_path(from_merge_request.target_project.namespace, from_merge_request.target_project, from_merge_request) +
- "#file-path-#{hexdigest(@path)}"
- elsif sanitized_new_branch_name.present?
- namespace_project_blob_path(@project.namespace, @project, File.join(sanitized_new_branch_name, @path))
- else
- namespace_project_blob_path(@project.namespace, @project, @id)
- end
- end
-
- def from_merge_request
- # If blob edit was initiated from merge request page
- @from_merge_request ||= MergeRequest.find_by(id: params[:from_merge_request_id])
- end
-
- def sanitized_new_branch_name
- @new_branch ||= sanitize(strip_tags(params[:new_branch]))
- end
-end
diff --git a/app/controllers/projects/branches_controller.rb b/app/controllers/projects/branches_controller.rb
deleted file mode 100644
index f049e96e61d..00000000000
--- a/app/controllers/projects/branches_controller.rb
+++ /dev/null
@@ -1,46 +0,0 @@
-class Projects::BranchesController < Projects::ApplicationController
- include ActionView::Helpers::SanitizeHelper
- # Authorize
- before_filter :require_non_empty_project
- before_filter :authorize_download_code!
- before_filter :authorize_push_code!, only: [:create, :destroy]
-
- def index
- @sort = params[:sort] || 'name'
- @branches = @repository.branches_sorted_by(@sort)
- @branches = Kaminari.paginate_array(@branches).page(params[:page]).per(PER_PAGE)
- end
-
- def recent
- @branches = @repository.recent_branches
- end
-
- def create
- branch_name = sanitize(strip_tags(params[:branch_name]))
- ref = sanitize(strip_tags(params[:ref]))
- result = CreateBranchService.new(project, current_user).
- execute(branch_name, ref)
-
- if result[:status] == :success
- @branch = result[:branch]
- redirect_to namespace_project_tree_path(@project.namespace, @project,
- @branch.name)
- else
- @error = result[:message]
- render action: 'new'
- end
- end
-
- def destroy
- DeleteBranchService.new(project, current_user).execute(params[:id])
- @branch_name = params[:id]
-
- respond_to do |format|
- format.html do
- redirect_to namespace_project_branches_path(@project.namespace,
- @project)
- end
- format.js
- end
- end
-end
diff --git a/app/controllers/projects/commit_controller.rb b/app/controllers/projects/commit_controller.rb
deleted file mode 100644
index 87e39f1363a..00000000000
--- a/app/controllers/projects/commit_controller.rb
+++ /dev/null
@@ -1,41 +0,0 @@
-# Controller for a specific Commit
-#
-# Not to be confused with CommitsController, plural.
-class Projects::CommitController < Projects::ApplicationController
- # Authorize
- before_filter :require_non_empty_project
- before_filter :authorize_download_code!
- before_filter :commit
-
- def show
- return git_not_found! unless @commit
-
- @line_notes = @project.notes.for_commit_id(commit.id).inline
- @diffs = @commit.diffs
- @note = @project.build_commit_note(commit)
- @notes_count = @project.notes.for_commit_id(commit.id).count
- @notes = @project.notes.for_commit_id(@commit.id).not_inline.fresh
- @noteable = @commit
- @comments_allowed = @reply_allowed = true
- @comments_target = {
- noteable_type: 'Commit',
- commit_id: @commit.id
- }
-
- respond_to do |format|
- format.html
- format.diff { render text: @commit.to_diff }
- format.patch { render text: @commit.to_patch }
- end
- end
-
- def branches
- @branches = @project.repository.branch_names_contains(commit.id)
- @tags = @project.repository.tag_names_contains(commit.id)
- render layout: false
- end
-
- def commit
- @commit ||= @project.repository.commit(params[:id])
- end
-end
diff --git a/app/controllers/projects/commits_controller.rb b/app/controllers/projects/commits_controller.rb
deleted file mode 100644
index 4b6ab437476..00000000000
--- a/app/controllers/projects/commits_controller.rb
+++ /dev/null
@@ -1,24 +0,0 @@
-require "base64"
-
-class Projects::CommitsController < Projects::ApplicationController
- include ExtractsPath
-
- before_filter :require_non_empty_project
- before_filter :assign_ref_vars
- before_filter :authorize_download_code!
-
- def show
- @repo = @project.repository
- @limit, @offset = (params[:limit] || 40), (params[:offset] || 0)
-
- @commits = @repo.commits(@ref, @path, @limit, @offset)
- @note_counts = Note.where(commit_id: @commits.map(&:id)).
- group(:commit_id).count
-
- respond_to do |format|
- format.html
- format.json { pager_json("projects/commits/_commits", @commits.size) }
- format.atom { render layout: false }
- end
- end
-end
diff --git a/app/controllers/projects/compare_controller.rb b/app/controllers/projects/compare_controller.rb
deleted file mode 100644
index 146808fa562..00000000000
--- a/app/controllers/projects/compare_controller.rb
+++ /dev/null
@@ -1,31 +0,0 @@
-class Projects::CompareController < Projects::ApplicationController
- # Authorize
- before_filter :require_non_empty_project
- before_filter :authorize_download_code!
-
- def index
- end
-
- def show
- base_ref = params[:from]
- head_ref = params[:to]
-
- compare_result = CompareService.new.execute(
- current_user,
- @project,
- head_ref,
- @project,
- base_ref
- )
-
- @commits = compare_result.commits
- @diffs = compare_result.diffs
- @commit = @commits.last
- @line_notes = []
- end
-
- def create
- redirect_to namespace_project_compare_path(@project.namespace, @project,
- params[:from], params[:to])
- end
-end
diff --git a/app/controllers/projects/deploy_keys_controller.rb b/app/controllers/projects/deploy_keys_controller.rb
deleted file mode 100644
index 6fba3ce299b..00000000000
--- a/app/controllers/projects/deploy_keys_controller.rb
+++ /dev/null
@@ -1,65 +0,0 @@
-class Projects::DeployKeysController < Projects::ApplicationController
- respond_to :html
-
- # Authorize
- before_filter :authorize_admin_project!
-
- layout "project_settings"
-
- def index
- @enabled_keys = @project.deploy_keys
-
- @available_keys = accessible_keys - @enabled_keys
- @available_project_keys = current_user.project_deploy_keys - @enabled_keys
- @available_public_keys = DeployKey.are_public - @enabled_keys
-
- # Public keys that are already used by another accessible project are already
- # in @available_project_keys.
- @available_public_keys -= @available_project_keys
- end
-
- def show
- @key = @project.deploy_keys.find(params[:id])
- end
-
- def new
- @key = @project.deploy_keys.new
-
- respond_with(@key)
- end
-
- def create
- @key = DeployKey.new(deploy_key_params)
-
- if @key.valid? && @project.deploy_keys << @key
- redirect_to namespace_project_deploy_keys_path(@project.namespace,
- @project)
- else
- render "new"
- end
- end
-
- def enable
- @key = accessible_keys.find(params[:id])
- @project.deploy_keys << @key
-
- redirect_to namespace_project_deploy_keys_path(@project.namespace,
- @project)
- end
-
- def disable
- @project.deploy_keys_projects.find_by(deploy_key_id: params[:id]).destroy
-
- redirect_to :back
- end
-
- protected
-
- def accessible_keys
- @accessible_keys ||= current_user.accessible_deploy_keys
- end
-
- def deploy_key_params
- params.require(:deploy_key).permit(:key, :title)
- end
-end
diff --git a/app/controllers/projects/forks_controller.rb b/app/controllers/projects/forks_controller.rb
deleted file mode 100644
index 21a151a426e..00000000000
--- a/app/controllers/projects/forks_controller.rb
+++ /dev/null
@@ -1,25 +0,0 @@
-class Projects::ForksController < Projects::ApplicationController
- # Authorize
- before_filter :require_non_empty_project
- before_filter :authorize_download_code!
-
- def new
- @namespaces = current_user.manageable_namespaces
- @namespaces.delete(@project.namespace)
- end
-
- def create
- namespace = Namespace.find(params[:namespace_key])
- @forked_project = ::Projects::ForkService.new(project, current_user, namespace: namespace).execute
-
- if @forked_project.saved? && @forked_project.forked?
- redirect_to(
- namespace_project_path(@forked_project.namespace, @forked_project),
- notice: 'Project was successfully forked.'
- )
- else
- @title = 'Fork project'
- render :error
- end
- end
-end
diff --git a/app/controllers/projects/graphs_controller.rb b/app/controllers/projects/graphs_controller.rb
deleted file mode 100644
index 6e54af356e0..00000000000
--- a/app/controllers/projects/graphs_controller.rb
+++ /dev/null
@@ -1,39 +0,0 @@
-class Projects::GraphsController < Projects::ApplicationController
- # Authorize
- before_filter :require_non_empty_project
- before_filter :authorize_download_code!
-
- def show
- respond_to do |format|
- format.html
- format.json do
- fetch_graph
- end
- end
- end
-
- def commits
- @commits = @project.repository.commits(nil, nil, 2000, 0, true)
- @commits_graph = Gitlab::Graphs::Commits.new(@commits)
- @commits_per_week_days = @commits_graph.commits_per_week_days
- @commits_per_time = @commits_graph.commits_per_time
- @commits_per_month = @commits_graph.commits_per_month
- end
-
- private
-
- def fetch_graph
- @commits = @project.repository.commits(nil, nil, 6000, 0, true)
- @log = []
-
- @commits.each do |commit|
- @log << {
- author_name: commit.author_name,
- author_email: commit.author_email,
- date: commit.committed_date.strftime("%Y-%m-%d")
- }
- end
-
- render json: @log.to_json
- end
-end
diff --git a/app/controllers/projects/hooks_controller.rb b/app/controllers/projects/hooks_controller.rb
deleted file mode 100644
index ba95bb13e1f..00000000000
--- a/app/controllers/projects/hooks_controller.rb
+++ /dev/null
@@ -1,58 +0,0 @@
-class Projects::HooksController < Projects::ApplicationController
- # Authorize
- before_filter :authorize_admin_project!
-
- respond_to :html
-
- layout "project_settings"
-
- def index
- @hooks = @project.hooks
- @hook = ProjectHook.new
- end
-
- def create
- @hook = @project.hooks.new(hook_params)
- @hook.save
-
- if @hook.valid?
- redirect_to namespace_project_hooks_path(@project.namespace, @project)
- else
- @hooks = @project.hooks.select(&:persisted?)
- render :index
- end
- end
-
- def test
- if !@project.empty_repo?
- status = TestHookService.new.execute(hook, current_user)
-
- if status
- flash[:notice] = 'Hook successfully executed.'
- else
- flash[:alert] = 'Hook execution failed. '\
- 'Ensure hook URL is correct and service is up.'
- end
- else
- flash[:alert] = 'Hook execution failed. Ensure the project has commits.'
- end
-
- redirect_to :back
- end
-
- def destroy
- hook.destroy
-
- redirect_to namespace_project_hooks_path(@project.namespace, @project)
- end
-
- private
-
- def hook
- @hook ||= @project.hooks.find(params[:id])
- end
-
- def hook_params
- params.require(:hook).permit(:url, :push_events, :issues_events, :merge_requests_events, :tag_push_events)
- end
-end
diff --git a/app/controllers/projects/imports_controller.rb b/app/controllers/projects/imports_controller.rb
deleted file mode 100644
index b64491b4666..00000000000
--- a/app/controllers/projects/imports_controller.rb
+++ /dev/null
@@ -1,51 +0,0 @@
-class Projects::ImportsController < Projects::ApplicationController
- # Authorize
- before_filter :authorize_admin_project!
- before_filter :require_no_repo
- before_filter :redirect_if_progress, except: :show
-
- def new
- end
-
- def create
- @project.import_url = params[:project][:import_url]
-
- if @project.save
- @project.reload
-
- if @project.import_failed?
- @project.import_retry
- else
- @project.import_start
- end
- end
-
- redirect_to namespace_project_import_path(@project.namespace, @project)
- end
-
- def show
- unless @project.import_in_progress?
- if @project.import_finished?
- redirect_to(project_path(@project)) and return
- else
- redirect_to new_namespace_project_import_path(@project.namespace,
- @project) && return
- end
- end
- end
-
- private
-
- def require_no_repo
- if @project.repository_exists? && !@project.import_in_progress?
- redirect_to(namespace_project_path(@project.namespace, @project)) and return
- end
- end
-
- def redirect_if_progress
- if @project.import_in_progress?
- redirect_to namespace_project_import_path(@project.namespace, @project) &&
- return
- end
- end
-end
diff --git a/app/controllers/projects/issues_controller.rb b/app/controllers/projects/issues_controller.rb
deleted file mode 100644
index 88302276b5e..00000000000
--- a/app/controllers/projects/issues_controller.rb
+++ /dev/null
@@ -1,159 +0,0 @@
-class Projects::IssuesController < Projects::ApplicationController
- before_filter :module_enabled
- before_filter :issue, only: [:edit, :update, :show, :toggle_subscription]
-
- # Allow read any issue
- before_filter :authorize_read_issue!
-
- # Allow write(create) issue
- before_filter :authorize_write_issue!, only: [:new, :create]
-
- # Allow modify issue
- before_filter :authorize_modify_issue!, only: [:edit, :update]
-
- # Allow issues bulk update
- before_filter :authorize_admin_issues!, only: [:bulk_update]
-
- respond_to :html
-
- def index
- terms = params['issue_search']
- @issues = get_issues_collection
- @issues = @issues.full_search(terms) if terms.present?
- @issues = @issues.page(params[:page]).per(PER_PAGE)
-
- respond_to do |format|
- format.html
- format.atom { render layout: false }
- format.json do
- render json: {
- html: view_to_html_string("projects/issues/_issues")
- }
- end
- end
- end
-
- def new
- params[:issue] ||= ActionController::Parameters.new(
- assignee_id: ""
- )
-
- @issue = @project.issues.new(issue_params)
- respond_with(@issue)
- end
-
- def edit
- respond_with(@issue)
- end
-
- def show
- @note = @project.notes.new(noteable: @issue)
- @notes = @issue.notes.inc_author.fresh
- @noteable = @issue
-
- respond_with(@issue)
- end
-
- def create
- @issue = Issues::CreateService.new(project, current_user, issue_params).execute
-
- respond_to do |format|
- format.html do
- if @issue.valid?
- redirect_to issue_path(@issue)
- else
- render :new
- end
- end
- format.js do |format|
- @link = @issue.attachment.url.to_js
- end
- end
- end
-
- def update
- @issue = Issues::UpdateService.new(project, current_user, issue_params).execute(issue)
-
- respond_to do |format|
- format.js
- format.html do
- if @issue.valid?
- redirect_to issue_path(@issue)
- else
- render :edit
- end
- end
- format.json do
- render json: {
- saved: @issue.valid?,
- assignee_avatar_url: @issue.assignee.try(:avatar_url)
- }
- end
- end
- end
-
- def bulk_update
- result = Issues::BulkUpdateService.new(project, current_user, bulk_update_params).execute
- redirect_to :back, notice: "#{result[:count]} issues updated"
- end
-
- def toggle_subscription
- @issue.toggle_subscription(current_user)
-
- render nothing: true
- end
-
- protected
-
- def issue
- @issue ||= begin
- @project.issues.find_by!(iid: params[:id])
- rescue ActiveRecord::RecordNotFound
- redirect_old
- end
- end
-
- def authorize_modify_issue!
- return render_404 unless can?(current_user, :modify_issue, @issue)
- end
-
- def authorize_admin_issues!
- return render_404 unless can?(current_user, :admin_issue, @project)
- end
-
- def module_enabled
- return render_404 unless @project.issues_enabled
- end
-
- # Since iids are implemented only in 6.1
- # user may navigate to issue page using old global ids.
- #
- # To prevent 404 errors we provide a redirect to correct iids until 7.0 release
- #
- def redirect_old
- issue = @project.issues.find_by(id: params[:id])
-
- if issue
- redirect_to issue_path(issue)
- return
- else
- raise ActiveRecord::RecordNotFound.new
- end
- end
-
- def issue_params
- params.require(:issue).permit(
- :title, :assignee_id, :position, :description,
- :milestone_id, :state_event, :task_num, label_ids: []
- )
- end
-
- def bulk_update_params
- params.require(:update).permit(
- :issues_ids,
- :assignee_id,
- :milestone_id,
- :state_event
- )
- end
-end
diff --git a/app/controllers/projects/labels_controller.rb b/app/controllers/projects/labels_controller.rb
deleted file mode 100644
index 207a01ed3b0..00000000000
--- a/app/controllers/projects/labels_controller.rb
+++ /dev/null
@@ -1,82 +0,0 @@
-class Projects::LabelsController < Projects::ApplicationController
- before_filter :module_enabled
- before_filter :label, only: [:edit, :update, :destroy]
- before_filter :authorize_labels!
- before_filter :authorize_admin_labels!, except: [:index]
-
- respond_to :js, :html
-
- def index
- @labels = @project.labels.page(params[:page]).per(PER_PAGE)
- end
-
- def new
- @label = @project.labels.new
- end
-
- def create
- @label = @project.labels.create(label_params)
-
- if @label.valid?
- redirect_to namespace_project_labels_path(@project.namespace, @project)
- else
- render 'new'
- end
- end
-
- def edit
- end
-
- def update
- if @label.update_attributes(label_params)
- redirect_to namespace_project_labels_path(@project.namespace, @project)
- else
- render 'edit'
- end
- end
-
- def generate
- Gitlab::IssuesLabels.generate(@project)
-
- if params[:redirect] == 'issues'
- redirect_to namespace_project_issues_path(@project.namespace, @project)
- elsif params[:redirect] == 'merge_requests'
- redirect_to namespace_project_merge_requests_path(@project.namespace,
- @project)
- else
- redirect_to namespace_project_labels_path(@project.namespace, @project)
- end
- end
-
- def destroy
- @label.destroy
-
- respond_to do |format|
- format.html do
- redirect_to(namespace_project_labels_path(@project.namespace, @project),
- notice: 'Label was removed')
- end
- format.js
- end
- end
-
- protected
-
- def module_enabled
- unless @project.issues_enabled || @project.merge_requests_enabled
- return render_404
- end
- end
-
- def label_params
- params.require(:label).permit(:title, :color)
- end
-
- def label
- @label = @project.labels.find(params[:id])
- end
-
- def authorize_admin_labels!
- return render_404 unless can?(current_user, :admin_label, @project)
- end
-end
diff --git a/app/controllers/projects/merge_requests_controller.rb b/app/controllers/projects/merge_requests_controller.rb
deleted file mode 100644
index 47ce8467358..00000000000
--- a/app/controllers/projects/merge_requests_controller.rb
+++ /dev/null
@@ -1,270 +0,0 @@
-require 'gitlab/satellite/satellite'
-
-class Projects::MergeRequestsController < Projects::ApplicationController
- before_filter :module_enabled
- before_filter :merge_request, only: [:edit, :update, :show, :diffs, :automerge, :automerge_check, :ci_status, :toggle_subscription]
- before_filter :closes_issues, only: [:edit, :update, :show, :diffs]
- before_filter :validates_merge_request, only: [:show, :diffs]
- before_filter :define_show_vars, only: [:show, :diffs]
-
- # Allow read any merge_request
- before_filter :authorize_read_merge_request!
-
- # Allow write(create) merge_request
- before_filter :authorize_write_merge_request!, only: [:new, :create]
-
- # Allow modify merge_request
- before_filter :authorize_modify_merge_request!, only: [:close, :edit, :update, :sort]
-
- def index
- terms = params['issue_search']
- @merge_requests = get_merge_requests_collection
- @merge_requests = @merge_requests.full_search(terms) if terms.present?
- @merge_requests = @merge_requests.page(params[:page]).per(PER_PAGE)
-
- respond_to do |format|
- format.html
- format.json do
- render json: {
- html: view_to_html_string("projects/merge_requests/_merge_requests")
- }
- end
- end
- end
-
- def show
- @note_counts = Note.where(commit_id: @merge_request.commits.map(&:id)).
- group(:commit_id).count
-
- respond_to do |format|
- format.html
- format.json { render json: @merge_request }
- format.diff { render text: @merge_request.to_diff(current_user) }
- format.patch { render text: @merge_request.to_patch(current_user) }
- end
- end
-
- def diffs
- @commit = @merge_request.last_commit
- @comments_allowed = @reply_allowed = true
- @comments_target = {
- noteable_type: 'MergeRequest',
- noteable_id: @merge_request.id
- }
- @line_notes = @merge_request.notes.where("line_code is not null")
-
- respond_to do |format|
- format.html
- format.json { render json: { html: view_to_html_string("projects/merge_requests/show/_diffs") } }
- end
- end
-
- def new
- params[:merge_request] ||= ActionController::Parameters.new(source_project: @project)
- @merge_request = MergeRequests::BuildService.new(project, current_user, merge_request_params).execute
-
- @target_branches = if @merge_request.target_project
- @merge_request.target_project.repository.branch_names
- else
- []
- end
-
- @target_project = merge_request.target_project
- @source_project = merge_request.source_project
- @commits = @merge_request.compare_commits
- @commit = @merge_request.compare_commits.last
- @diffs = @merge_request.compare_diffs
- @note_counts = Note.where(commit_id: @commits.map(&:id)).
- group(:commit_id).count
- end
-
- def edit
- @source_project = @merge_request.source_project
- @target_project = @merge_request.target_project
- @target_branches = @merge_request.target_project.repository.branch_names
- end
-
- def create
- @target_branches ||= []
- @merge_request = MergeRequests::CreateService.new(project, current_user, merge_request_params).execute
-
- if @merge_request.valid?
- redirect_to(merge_request_path(@merge_request))
- else
- @source_project = @merge_request.source_project
- @target_project = @merge_request.target_project
- render action: "new"
- end
- end
-
- def update
- @merge_request = MergeRequests::UpdateService.new(project, current_user, merge_request_params).execute(@merge_request)
-
- if @merge_request.valid?
- respond_to do |format|
- format.js
- format.html do
- redirect_to([@merge_request.target_project.namespace.becomes(Namespace),
- @merge_request.target_project, @merge_request])
- end
- format.json do
- render json: {
- saved: @merge_request.valid?,
- assignee_avatar_url: @merge_request.assignee.try(:avatar_url)
- }
- end
- end
- else
- render "edit"
- end
- end
-
- def automerge_check
- if @merge_request.unchecked?
- @merge_request.check_if_can_be_merged
- end
-
- render json: { merge_status: @merge_request.merge_status_name }
- end
-
- def automerge
- return access_denied! unless allowed_to_merge?
-
- if @merge_request.open? && @merge_request.can_be_merged?
- AutoMergeWorker.perform_async(@merge_request.id, current_user.id, params)
- @status = true
- else
- @status = false
- end
- end
-
- def branch_from
- #This is always source
- @source_project = @merge_request.nil? ? @project : @merge_request.source_project
- @commit = @repository.commit(params[:ref]) if params[:ref].present?
- end
-
- def branch_to
- @target_project = selected_target_project
- @commit = @target_project.repository.commit(params[:ref]) if params[:ref].present?
- end
-
- def update_branches
- @target_project = selected_target_project
- @target_branches = @target_project.repository.branch_names
-
- respond_to do |format|
- format.js
- end
- end
-
- def ci_status
- ci_service = @merge_request.source_project.ci_service
- status = ci_service.commit_status(merge_request.last_commit.sha, merge_request.source_branch)
-
- if ci_service.respond_to?(:commit_coverage)
- coverage = ci_service.commit_coverage(merge_request.last_commit.sha, merge_request.source_branch)
- end
-
- response = {
- status: status,
- coverage: coverage
- }
-
- render json: response
- end
-
- def toggle_subscription
- @merge_request.toggle_subscription(current_user)
-
- render nothing: true
- end
-
- protected
-
- def selected_target_project
- if @project.id.to_s == params[:target_project_id] || @project.forked_project_link.nil?
- @project
- else
- @project.forked_project_link.forked_from_project
- end
- end
-
- def merge_request
- @merge_request ||= @project.merge_requests.find_by!(iid: params[:id])
- end
-
- def closes_issues
- @closes_issues ||= @merge_request.closes_issues
- end
-
- def authorize_modify_merge_request!
- return render_404 unless can?(current_user, :modify_merge_request, @merge_request)
- end
-
- def authorize_admin_merge_request!
- return render_404 unless can?(current_user, :admin_merge_request, @merge_request)
- end
-
- def module_enabled
- return render_404 unless @project.merge_requests_enabled
- end
-
- def validates_merge_request
- # If source project was removed (Ex. mr from fork to origin)
- return invalid_mr unless @merge_request.source_project
-
- # Show git not found page
- # if there is no saved commits between source & target branch
- if @merge_request.commits.blank?
- # and if target branch doesn't exist
- return invalid_mr unless @merge_request.target_branch_exists?
-
- # or if source branch doesn't exist
- return invalid_mr unless @merge_request.source_branch_exists?
- end
- end
-
- def define_show_vars
- # Build a note object for comment form
- @note = @project.notes.new(noteable: @merge_request)
- @notes = @merge_request.mr_and_commit_notes.inc_author.fresh
- @discussions = Note.discussions_from_notes(@notes)
- @noteable = @merge_request
-
- # Get commits from repository
- # or from cache if already merged
- @commits = @merge_request.commits
-
- @merge_request_diff = @merge_request.merge_request_diff
- @allowed_to_merge = allowed_to_merge?
- @show_merge_controls = @merge_request.open? && @commits.any? && @allowed_to_merge
- @source_branch = @merge_request.source_project.repository.find_branch(@merge_request.source_branch).try(:name)
-
- if @merge_request.locked_long_ago?
- @merge_request.unlock_mr
- @merge_request.close
- end
- end
-
- def allowed_to_merge?
- allowed_to_push_code?(project, @merge_request.target_branch)
- end
-
- def invalid_mr
- # Render special view for MR with removed source or target branch
- render 'invalid'
- end
-
- def allowed_to_push_code?(project, branch)
- ::Gitlab::GitAccess.new(current_user, project).can_push_to_branch?(branch)
- end
-
- def merge_request_params
- params.require(:merge_request).permit(
- :title, :assignee_id, :source_project_id, :source_branch,
- :target_project_id, :target_branch, :milestone_id,
- :state_event, :description, :task_num, label_ids: []
- )
- end
-end
diff --git a/app/controllers/projects/milestones_controller.rb b/app/controllers/projects/milestones_controller.rb
deleted file mode 100644
index b49b549547a..00000000000
--- a/app/controllers/projects/milestones_controller.rb
+++ /dev/null
@@ -1,116 +0,0 @@
-class Projects::MilestonesController < Projects::ApplicationController
- before_filter :module_enabled
- before_filter :milestone, only: [:edit, :update, :destroy, :show, :sort_issues, :sort_merge_requests]
-
- # Allow read any milestone
- before_filter :authorize_read_milestone!
-
- # Allow admin milestone
- before_filter :authorize_admin_milestone!, except: [:index, :show]
-
- respond_to :html
-
- def index
- @milestones = case params[:state]
- when 'all'; @project.milestones.order("state, due_date DESC")
- when 'closed'; @project.milestones.closed.order("due_date DESC")
- else @project.milestones.active.order("due_date ASC")
- end
-
- @milestones = @milestones.includes(:project)
- @milestones = @milestones.page(params[:page]).per(PER_PAGE)
- end
-
- def new
- @milestone = @project.milestones.new
- respond_with(@milestone)
- end
-
- def edit
- respond_with(@milestone)
- end
-
- def show
- @issues = @milestone.issues
- @users = @milestone.participants.uniq
- @merge_requests = @milestone.merge_requests
- end
-
- def create
- @milestone = Milestones::CreateService.new(project, current_user, milestone_params).execute
-
- if @milestone.save
- redirect_to namespace_project_milestone_path(@project.namespace,
- @project, @milestone)
- else
- render "new"
- end
- end
-
- def update
- @milestone = Milestones::UpdateService.new(project, current_user, milestone_params).execute(milestone)
-
- respond_to do |format|
- format.js
- format.html do
- if @milestone.valid?
- redirect_to namespace_project_milestone_path(@project.namespace,
- @project, @milestone)
- else
- render :edit
- end
- end
- end
- end
-
- def destroy
- return access_denied! unless can?(current_user, :admin_milestone, @milestone)
-
- @milestone.destroy
-
- respond_to do |format|
- format.html { redirect_to namespace_project_milestones_path }
- format.js { render nothing: true }
- end
- end
-
- def sort_issues
- @issues = @milestone.issues.where(id: params['sortable_issue'])
- @issues.each do |issue|
- issue.position = params['sortable_issue'].index(issue.id.to_s) + 1
- issue.save
- end
-
- render json: { saved: true }
- end
-
- def sort_merge_requests
- @merge_requests = @milestone.merge_requests.where(id: params['sortable_merge_request'])
- @merge_requests.each do |merge_request|
- merge_request.position = params['sortable_merge_request'].index(merge_request.id.to_s) + 1
- merge_request.save
- end
-
- render json: { saved: true }
- end
-
- protected
-
- def milestone
- @milestone ||= @project.milestones.find_by!(iid: params[:id])
- end
-
- def authorize_admin_milestone!
- return render_404 unless can?(current_user, :admin_milestone, @project)
- end
-
- def module_enabled
- unless @project.issues_enabled || @project.merge_requests_enabled
- return render_404
- end
- end
-
- def milestone_params
- params.require(:milestone).permit(:title, :description, :due_date, :state_event)
- end
-end
diff --git a/app/controllers/projects/network_controller.rb b/app/controllers/projects/network_controller.rb
deleted file mode 100644
index 83d1c1dacae..00000000000
--- a/app/controllers/projects/network_controller.rb
+++ /dev/null
@@ -1,18 +0,0 @@
-class Projects::NetworkController < Projects::ApplicationController
- include ExtractsPath
- include ApplicationHelper
-
- before_filter :require_non_empty_project
- before_filter :assign_ref_vars
- before_filter :authorize_download_code!
-
- def show
- respond_to do |format|
- format.html
-
- format.json do
- @graph = Network::Graph.new(project, @ref, @commit, @options[:filter_ref])
- end
- end
- end
-end
diff --git a/app/controllers/projects/notes_controller.rb b/app/controllers/projects/notes_controller.rb
deleted file mode 100644
index 868629a0bc4..00000000000
--- a/app/controllers/projects/notes_controller.rb
+++ /dev/null
@@ -1,125 +0,0 @@
-class Projects::NotesController < Projects::ApplicationController
- # Authorize
- before_filter :authorize_read_note!
- before_filter :authorize_write_note!, only: [:create]
- before_filter :authorize_admin_note!, only: [:update, :destroy]
- before_filter :find_current_user_notes, except: [:destroy, :delete_attachment]
-
- def index
- current_fetched_at = Time.now.to_i
-
- notes_json = { notes: [], last_fetched_at: current_fetched_at }
-
- @notes.each do |note|
- notes_json[:notes] << {
- id: note.id,
- html: note_to_html(note)
- }
- end
-
- render json: notes_json
- end
-
- def create
- @note = Notes::CreateService.new(project, current_user, note_params).execute
-
- respond_to do |format|
- format.json { render_note_json(@note) }
- format.html { redirect_to :back }
- end
- end
-
- def update
- if note.editable?
- note.update_attributes(note_params)
- note.reset_events_cache
- end
-
- respond_to do |format|
- format.json { render_note_json(note) }
- format.html { redirect_to :back }
- end
- end
-
- def destroy
- if note.editable?
- note.destroy
- note.reset_events_cache
- end
-
- respond_to do |format|
- format.js { render nothing: true }
- end
- end
-
- def delete_attachment
- note.remove_attachment!
- note.update_attribute(:attachment, nil)
-
- respond_to do |format|
- format.js { render nothing: true }
- end
- end
-
- private
-
- def note
- @note ||= @project.notes.find(params[:id])
- end
-
- def note_to_html(note)
- render_to_string(
- "projects/notes/_note",
- layout: false,
- formats: [:html],
- locals: { note: note }
- )
- end
-
- def note_to_discussion_html(note)
- render_to_string(
- "projects/notes/_diff_notes_with_reply",
- layout: false,
- formats: [:html],
- locals: { notes: [note] }
- )
- end
-
- def note_to_discussion_with_diff_html(note)
- return unless note.for_diff_line?
-
- render_to_string(
- "projects/notes/_discussion",
- layout: false,
- formats: [:html],
- locals: { discussion_notes: [note] }
- )
- end
-
- def render_note_json(note)
- render json: {
- id: note.id,
- discussion_id: note.discussion_id,
- html: note_to_html(note),
- discussion_html: note_to_discussion_html(note),
- discussion_with_diff_html: note_to_discussion_with_diff_html(note)
- }
- end
-
- def authorize_admin_note!
- return access_denied! unless can?(current_user, :admin_note, note)
- end
-
- def note_params
- params.require(:note).permit(
- :note, :noteable, :noteable_id, :noteable_type, :project_id,
- :attachment, :line_code, :commit_id
- )
- end
-
- private
-
- def find_current_user_notes
- @notes = NotesFinder.new.execute(project, current_user, params)
- end
-end
diff --git a/app/controllers/projects/project_members_controller.rb b/app/controllers/projects/project_members_controller.rb
deleted file mode 100644
index 72967a26ff1..00000000000
--- a/app/controllers/projects/project_members_controller.rb
+++ /dev/null
@@ -1,98 +0,0 @@
-class Projects::ProjectMembersController < Projects::ApplicationController
- # Authorize
- before_filter :authorize_admin_project!, except: :leave
-
- layout "project_settings"
-
- def index
- @project_members = @project.project_members
- @project_members = @project_members.non_invite unless can?(current_user, :admin_project, @project)
-
- if params[:search].present?
- users = @project.users.search(params[:search]).to_a
- @project_members = @project_members.where(user_id: users)
- end
-
- @project_members = @project_members.order('access_level DESC')
-
- @group = @project.group
- if @group
- @group_members = @group.group_members
- @group_members = @group_members.non_invite unless can?(current_user, :admin_group, @group)
-
- if params[:search].present?
- users = @group.users.search(params[:search]).to_a
- @group_members = @group_members.where(user_id: users)
- end
-
- @group_members = @group_members.order('access_level DESC').limit(20)
- end
-
- @project_member = @project.project_members.new
- end
-
- def new
- @project_member = @project.project_members.new
- end
-
- def create
- @project.team.add_users(params[:user_ids].split(','), params[:access_level], current_user)
-
- redirect_to namespace_project_project_members_path(@project.namespace, @project)
- end
-
- def update
- @project_member = @project.project_members.find(params[:id])
- @project_member.update_attributes(member_params)
- end
-
- def destroy
- @project_member = @project.project_members.find(params[:id])
- @project_member.destroy
-
- respond_to do |format|
- format.html do
- redirect_to namespace_project_project_members_path(@project.namespace, @project)
- end
- format.js { render nothing: true }
- end
- end
-
- def resend_invite
- redirect_path = namespace_project_project_members_path(@project.namespace, @project)
-
- @project_member = @project.project_members.find(params[:id])
-
- if @project_member.invite?
- @project_member.resend_invite
-
- redirect_to redirect_path, notice: 'The invitation was successfully resent.'
- else
- redirect_to redirect_path, alert: 'The invitation has already been accepted.'
- end
- end
-
- def leave
- @project.project_members.find_by(user_id: current_user).destroy
-
- respond_to do |format|
- format.html { redirect_to :back }
- format.js { render nothing: true }
- end
- end
-
- def apply_import
- giver = Project.find(params[:source_project_id])
- status = @project.team.import(giver, current_user)
- notice = status ? "Successfully imported" : "Import failed"
-
- redirect_to(namespace_project_project_members_path(project.namespace, project),
- notice: notice)
- end
-
- protected
-
- def member_params
- params.require(:project_member).permit(:user_id, :access_level)
- end
-end
diff --git a/app/controllers/projects/protected_branches_controller.rb b/app/controllers/projects/protected_branches_controller.rb
deleted file mode 100644
index ac36ac6fcd3..00000000000
--- a/app/controllers/projects/protected_branches_controller.rb
+++ /dev/null
@@ -1,51 +0,0 @@
-class Projects::ProtectedBranchesController < Projects::ApplicationController
- # Authorize
- before_filter :require_non_empty_project
- before_filter :authorize_admin_project!
-
- layout "project_settings"
-
- def index
- @branches = @project.protected_branches.to_a
- @protected_branch = @project.protected_branches.new
- end
-
- def create
- @project.protected_branches.create(protected_branch_params)
- redirect_to namespace_project_protected_branches_path(@project.namespace,
- @project)
- end
-
- def update
- protected_branch = @project.protected_branches.find(params[:id])
-
- if protected_branch &&
- protected_branch.update_attributes(
- developers_can_push: params[:developers_can_push]
- )
-
- respond_to do |format|
- format.json { render json: protected_branch, status: :ok }
- end
- else
- respond_to do |format|
- format.json { render json: protected_branch.errors, status: :unprocessable_entity }
- end
- end
- end
-
- def destroy
- @project.protected_branches.find(params[:id]).destroy
-
- respond_to do |format|
- format.html { redirect_to namespace_project_protected_branches_path }
- format.js { render nothing: true }
- end
- end
-
- private
-
- def protected_branch_params
- params.require(:protected_branch).permit(:name, :developers_can_push)
- end
-end
diff --git a/app/controllers/projects/raw_controller.rb b/app/controllers/projects/raw_controller.rb
deleted file mode 100644
index b1a029ce696..00000000000
--- a/app/controllers/projects/raw_controller.rb
+++ /dev/null
@@ -1,37 +0,0 @@
-# Controller for viewing a file's raw
-class Projects::RawController < Projects::ApplicationController
- include ExtractsPath
-
- before_filter :require_non_empty_project
- before_filter :assign_ref_vars
- before_filter :authorize_download_code!
-
- def show
- @blob = @repository.blob_at(@commit.id, @path)
-
- if @blob
- type = get_blob_type
-
- headers['X-Content-Type-Options'] = 'nosniff'
-
- send_data(
- @blob.data,
- type: type,
- disposition: 'inline',
- filename: @blob.name
- )
- else
- not_found!
- end
- end
-
- private
-
- def get_blob_type
- if @blob.text?
- 'text/plain; charset=utf-8'
- else
- 'application/octet-stream'
- end
- end
-end
diff --git a/app/controllers/projects/refs_controller.rb b/app/controllers/projects/refs_controller.rb
deleted file mode 100644
index ec3b2b8d75a..00000000000
--- a/app/controllers/projects/refs_controller.rb
+++ /dev/null
@@ -1,64 +0,0 @@
-class Projects::RefsController < Projects::ApplicationController
- include ExtractsPath
-
- before_filter :require_non_empty_project
- before_filter :assign_ref_vars
- before_filter :authorize_download_code!
-
- def switch
- respond_to do |format|
- format.html do
- new_path = if params[:destination] == "tree"
- namespace_project_tree_path(@project.namespace, @project,
- (@id))
- elsif params[:destination] == "blob"
- namespace_project_blob_path(@project.namespace, @project,
- (@id))
- elsif params[:destination] == "graph"
- namespace_project_network_path(@project.namespace, @project, @id, @options)
- else
- namespace_project_commits_path(@project.namespace, @project, @id)
- end
-
- redirect_to new_path
- end
- format.js do
- @ref = params[:ref]
- define_tree_vars
- tree
- render "tree"
- end
- end
- end
-
- def logs_tree
- @offset = if params[:offset].present?
- params[:offset].to_i
- else
- 0
- end
-
- @limit = 25
-
- @path = params[:path]
-
- contents = []
- contents.push(*tree.trees)
- contents.push(*tree.blobs)
- contents.push(*tree.submodules)
-
- @logs = contents[@offset, @limit].to_a.map do |content|
- file = @path ? File.join(@path, content.name) : content.name
- last_commit = @repo.last_commit_for_path(@commit.id, file)
- {
- file_name: content.name,
- commit: last_commit
- }
- end
-
- respond_to do |format|
- format.html { render_404 }
- format.js
- end
- end
-end
diff --git a/app/controllers/projects/repositories_controller.rb b/app/controllers/projects/repositories_controller.rb
deleted file mode 100644
index 96defb0c721..00000000000
--- a/app/controllers/projects/repositories_controller.rb
+++ /dev/null
@@ -1,28 +0,0 @@
-class Projects::RepositoriesController < Projects::ApplicationController
- # Authorize
- before_filter :require_non_empty_project, except: :create
- before_filter :authorize_download_code!
- before_filter :authorize_admin_project!, only: :create
-
- def create
- @project.create_repository
-
- redirect_to project_path(@project)
- end
-
- def archive
- begin
- file_path = ArchiveRepositoryService.new(@project, params[:ref], params[:format]).execute
- rescue
- return head :not_found
- end
-
- if file_path
- # Send file to user
- response.headers["Content-Length"] = File.open(file_path).size.to_s
- send_file file_path
- else
- redirect_to request.fullpath
- end
- end
-end
diff --git a/app/controllers/projects/services_controller.rb b/app/controllers/projects/services_controller.rb
deleted file mode 100644
index 9a484c109ba..00000000000
--- a/app/controllers/projects/services_controller.rb
+++ /dev/null
@@ -1,59 +0,0 @@
-class Projects::ServicesController < Projects::ApplicationController
- # Authorize
- before_filter :authorize_admin_project!
- before_filter :service, only: [:edit, :update, :test]
-
- respond_to :html
-
- layout "project_settings"
-
- def index
- @project.build_missing_services
- @services = @project.services.visible.reload
- end
-
- def edit
- end
-
- def update
- if @service.update_attributes(service_params)
- redirect_to(
- edit_namespace_project_service_path(@project.namespace, @project,
- @service.to_param, notice:
- 'Successfully updated.')
- )
- else
- render 'edit'
- end
- end
-
- def test
- data = Gitlab::PushDataBuilder.build_sample(project, current_user)
- if @service.execute(data)
- message = { notice: 'We sent a request to the provided URL' }
- else
- message = { alert: 'We tried to send a request to the provided URL but an error occured' }
- end
-
- redirect_to :back, message
- end
-
- private
-
- def service
- @service ||= @project.services.find { |service| service.to_param == params[:id] }
- end
-
- def service_params
- params.require(:service).permit(
- :title, :token, :type, :active, :api_key, :subdomain,
- :room, :recipients, :project_url, :webhook,
- :user_key, :device, :priority, :sound, :bamboo_url, :username, :password,
- :build_key, :server, :teamcity_url, :build_type,
- :description, :issues_url, :new_issue_url, :restrict_to_branch, :channel,
- :colorize_messages, :channels,
- :push_events, :issues_events, :merge_requests_events, :tag_push_events,
- :note_events, :send_from_committer_email, :disable_diffs, :external_wiki_url
- )
- end
-end
diff --git a/app/controllers/projects/snippets_controller.rb b/app/controllers/projects/snippets_controller.rb
deleted file mode 100644
index ed268400373..00000000000
--- a/app/controllers/projects/snippets_controller.rb
+++ /dev/null
@@ -1,93 +0,0 @@
-class Projects::SnippetsController < Projects::ApplicationController
- before_filter :module_enabled
- before_filter :snippet, only: [:show, :edit, :destroy, :update, :raw]
-
- # Allow read any snippet
- before_filter :authorize_read_project_snippet!
-
- # Allow write(create) snippet
- before_filter :authorize_write_project_snippet!, only: [:new, :create]
-
- # Allow modify snippet
- before_filter :authorize_modify_project_snippet!, only: [:edit, :update]
-
- # Allow destroy snippet
- before_filter :authorize_admin_project_snippet!, only: [:destroy]
-
- respond_to :html
-
- def index
- @snippets = SnippetsFinder.new.execute(current_user, {
- filter: :by_project,
- project: @project
- })
- end
-
- def new
- @snippet = @project.snippets.build
- end
-
- def create
- @snippet = CreateSnippetService.new(@project, current_user,
- snippet_params).execute
- respond_with(@snippet,
- location: namespace_project_snippet_path(@project.namespace,
- @project, @snippet))
- end
-
- def edit
- end
-
- def update
- UpdateSnippetService.new(project, current_user, @snippet,
- snippet_params).execute
- respond_with(@snippet,
- location: namespace_project_snippet_path(@project.namespace,
- @project, @snippet))
- end
-
- def show
- @note = @project.notes.new(noteable: @snippet)
- @notes = @snippet.notes.fresh
- @noteable = @snippet
- end
-
- def destroy
- return access_denied! unless can?(current_user, :admin_project_snippet, @snippet)
-
- @snippet.destroy
-
- redirect_to namespace_project_snippets_path(@project.namespace, @project)
- end
-
- def raw
- send_data(
- @snippet.content,
- type: 'text/plain; charset=utf-8',
- disposition: 'inline',
- filename: @snippet.sanitized_file_name
- )
- end
-
- protected
-
- def snippet
- @snippet ||= @project.snippets.find(params[:id])
- end
-
- def authorize_modify_project_snippet!
- return render_404 unless can?(current_user, :modify_project_snippet, @snippet)
- end
-
- def authorize_admin_project_snippet!
- return render_404 unless can?(current_user, :admin_project_snippet, @snippet)
- end
-
- def module_enabled
- return render_404 unless @project.snippets_enabled
- end
-
- def snippet_params
- params.require(:project_snippet).permit(:title, :content, :file_name, :private, :visibility_level)
- end
-end
diff --git a/app/controllers/projects/tags_controller.rb b/app/controllers/projects/tags_controller.rb
deleted file mode 100644
index 83f4937bce3..00000000000
--- a/app/controllers/projects/tags_controller.rb
+++ /dev/null
@@ -1,37 +0,0 @@
-class Projects::TagsController < Projects::ApplicationController
- # Authorize
- before_filter :require_non_empty_project
- before_filter :authorize_download_code!
- before_filter :authorize_push_code!, only: [:create]
- before_filter :authorize_admin_project!, only: [:destroy]
-
- def index
- sorted = VersionSorter.rsort(@repository.tag_names)
- @tags = Kaminari.paginate_array(sorted).page(params[:page]).per(PER_PAGE)
- end
-
- def create
- result = CreateTagService.new(@project, current_user).
- execute(params[:tag_name], params[:ref], params[:message])
-
- if result[:status] == :success
- @tag = result[:tag]
- redirect_to namespace_project_tags_path(@project.namespace, @project)
- else
- @error = result[:message]
- render action: 'new'
- end
- end
-
- def destroy
- DeleteTagService.new(project, current_user).execute(params[:id])
-
- respond_to do |format|
- format.html do
- redirect_to namespace_project_tags_path(@project.namespace,
- @project)
- end
- format.js
- end
- end
-end
diff --git a/app/controllers/projects/tree_controller.rb b/app/controllers/projects/tree_controller.rb
deleted file mode 100644
index b23010bf595..00000000000
--- a/app/controllers/projects/tree_controller.rb
+++ /dev/null
@@ -1,27 +0,0 @@
-# Controller for viewing a repository's file structure
-class Projects::TreeController < Projects::ApplicationController
- include ExtractsPath
-
- before_filter :require_non_empty_project, except: [:new, :create]
- before_filter :assign_ref_vars
- before_filter :authorize_download_code!
-
- def show
- if tree.entries.empty?
- if @repository.blob_at(@commit.id, @path)
- redirect_to(
- namespace_project_blob_path(@project.namespace, @project,
- File.join(@ref, @path))
- ) and return
- else
- return not_found!
- end
- end
-
- respond_to do |format|
- format.html
- # Disable cache so browser history works
- format.js { no_cache_headers }
- end
- end
-end
diff --git a/app/controllers/projects/wikis_controller.rb b/app/controllers/projects/wikis_controller.rb
deleted file mode 100644
index aeb7f0699f5..00000000000
--- a/app/controllers/projects/wikis_controller.rb
+++ /dev/null
@@ -1,123 +0,0 @@
-require 'project_wiki'
-
-class Projects::WikisController < Projects::ApplicationController
- before_filter :authorize_read_wiki!
- before_filter :authorize_write_wiki!, only: [:edit, :create, :history]
- before_filter :authorize_admin_wiki!, only: :destroy
- before_filter :load_project_wiki
- include WikiHelper
-
- def pages
- @wiki_pages = Kaminari.paginate_array(@project_wiki.pages).page(params[:page]).per(PER_PAGE)
- end
-
- def show
- @page = @project_wiki.find_page(params[:id], params[:version_id])
-
- if @page
- render 'show'
- elsif file = @project_wiki.find_file(params[:id], params[:version_id])
- if file.on_disk?
- send_file file.on_disk_path, disposition: 'inline'
- else
- send_data(
- file.raw_data,
- type: file.mime_type,
- disposition: 'inline',
- filename: file.name
- )
- end
- else
- return render('empty') unless can?(current_user, :write_wiki, @project)
- @page = WikiPage.new(@project_wiki)
- @page.title = params[:id]
-
- render 'edit'
- end
- end
-
- def edit
- @page = @project_wiki.find_page(params[:id])
- end
-
- def update
- @page = @project_wiki.find_page(params[:id])
-
- return render('empty') unless can?(current_user, :write_wiki, @project)
-
- if @page.update(content, format, message)
- redirect_to(
- namespace_project_wiki_path(@project.namespace, @project, @page),
- notice: 'Wiki was successfully updated.'
- )
- else
- render 'edit'
- end
- end
-
- def create
- @page = WikiPage.new(@project_wiki)
-
- if @page.create(wiki_params)
- redirect_to(
- namespace_project_wiki_path(@project.namespace, @project, @page),
- notice: 'Wiki was successfully updated.'
- )
- else
- render action: "edit"
- end
- end
-
- def history
- @page = @project_wiki.find_page(params[:id])
-
- unless @page
- redirect_to(
- namespace_project_wiki_path(@project.namespace, @project, :home),
- notice: "Page not found"
- )
- end
- end
-
- def destroy
- @page = @project_wiki.find_page(params[:id])
- @page.delete if @page
-
- redirect_to(
- namespace_project_wiki_path(@project.namespace, @project, :home),
- notice: "Page was successfully deleted"
- )
- end
-
- def git_access
- end
-
- private
-
- def load_project_wiki
- @project_wiki = ProjectWiki.new(@project, current_user)
-
- # Call #wiki to make sure the Wiki Repo is initialized
- @project_wiki.wiki
- rescue ProjectWiki::CouldNotCreateWikiError => ex
- flash[:notice] = "Could not create Wiki Repository at this time. Please try again later."
- redirect_to project_path(@project)
- return false
- end
-
- def wiki_params
- params[:wiki].slice(:title, :content, :format, :message)
- end
-
- def content
- params[:wiki][:content]
- end
-
- def format
- params[:wiki][:format]
- end
-
- def message
- params[:wiki][:message]
- end
-end