diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-06-16 18:08:32 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-06-16 18:08:32 +0300 |
commit | 10fd79745df7b572fc79fd84b58e818e64bf2571 (patch) | |
tree | a89151d08c7a13334843b3a6f9010c00acabcb2b /app/controllers/projects/snippets_controller.rb | |
parent | 9bfdb5cf67ca45ac6d354e18168f5df12b60ccd2 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/controllers/projects/snippets_controller.rb')
-rw-r--r-- | app/controllers/projects/snippets_controller.rb | 86 |
1 files changed, 3 insertions, 83 deletions
diff --git a/app/controllers/projects/snippets_controller.rb b/app/controllers/projects/snippets_controller.rb index 9233f063f55..5ee6abef804 100644 --- a/app/controllers/projects/snippets_controller.rb +++ b/app/controllers/projects/snippets_controller.rb @@ -1,34 +1,19 @@ # frozen_string_literal: true -class Projects::SnippetsController < Projects::ApplicationController - include RendersNotes +class Projects::SnippetsController < Projects::Snippets::ApplicationController + include SnippetsActions include ToggleAwardEmoji include SpammableActions - include SnippetsActions - include RendersBlob - include PaginatedCollection - include Gitlab::NoteableMetadata - - skip_before_action :verify_authenticity_token, - if: -> { action_name == 'show' && js_request? } before_action :check_snippets_available! + before_action :snippet, only: [:show, :edit, :destroy, :update, :raw, :toggle_award_emoji, :mark_as_spam] - # Allow create snippet before_action :authorize_create_snippet!, only: [:new, :create] - - # Allow read any snippet before_action :authorize_read_snippet!, except: [:new, :create, :index] - - # Allow modify snippet before_action :authorize_update_snippet!, only: [:edit, :update] - - # Allow destroy snippet before_action :authorize_admin_snippet!, only: [:destroy] - respond_to :html - def index @snippet_counts = Snippets::CountService .new(current_user, project: @project) @@ -56,61 +41,8 @@ class Projects::SnippetsController < Projects::ApplicationController handle_repository_error(:new) end - def update - update_params = snippet_params.merge(spammable_params) - - service_response = Snippets::UpdateService.new(project, current_user, update_params).execute(@snippet) - @snippet = service_response.payload[:snippet] - - handle_repository_error(:edit) - end - - def show - conditionally_expand_blob(blob) - - respond_to do |format| - format.html do - @note = @project.notes.new(noteable: @snippet) - @noteable = @snippet - - @discussions = @snippet.discussions - @notes = prepare_notes_for_rendering(@discussions.flat_map(&:notes), @noteable) - render 'show' - end - - format.json do - render_blob_json(blob) - end - - format.js do - if @snippet.embeddable? - render 'shared/snippets/show' - else - head :not_found - end - end - end - end - - def destroy - service_response = Snippets::DestroyService.new(current_user, @snippet).execute - - if service_response.success? - redirect_to project_snippets_path(project), status: :found - elsif service_response.http_status == 403 - access_denied! - else - redirect_to project_snippet_path(project, @snippet), - status: :found, - alert: service_response.message - end - end - protected - def snippet - @snippet ||= @project.snippets.inc_relations_for_view.find(params[:id]) - end alias_method :awardable, :snippet alias_method :spammable, :snippet @@ -118,18 +50,6 @@ class Projects::SnippetsController < Projects::ApplicationController project_snippet_path(@project, @snippet) end - def authorize_read_snippet! - return render_404 unless can?(current_user, :read_snippet, @snippet) - end - - def authorize_update_snippet! - return render_404 unless can?(current_user, :update_snippet, @snippet) - end - - def authorize_admin_snippet! - return render_404 unless can?(current_user, :admin_snippet, @snippet) - end - def snippet_params params.require(:project_snippet).permit(:title, :content, :file_name, :private, :visibility_level, :description) end |