diff --git a/app/controllers/submissions_controller.rb b/app/controllers/submissions_controller.rb --- a/app/controllers/submissions_controller.rb +++ b/app/controllers/submissions_controller.rb @@ -1,7 +1,8 @@ class SubmissionsController < ApplicationController + before_action :set_submission, only: [:show,:download,:compiler_msg,:rejudge,:set_tag, :edit] before_action :check_valid_login before_action :submission_authorization, only: [:show, :download, :edit] - before_action :admin_authorization, only: [:rejudge] + before_action only: [:rejudge, :set_tag] do role_authorization([:ta]) end # GET /submissions # GET /submissions.json @@ -27,8 +28,6 @@ # GET /submissions/1 # GET /submissions/1.json def show - @submission = Submission.find(params[:id]) - #log the viewing user = User.find(session[:user_id]) SubmissionViewLog.create(user_id: session[:user_id],submission_id: @submission.id) unless user.admin? @@ -37,12 +36,10 @@ end def download - @submission = Submission.find(params[:id]) send_data(@submission.source, {:filename => @submission.download_filename, :type => 'text/plain'}) end def compiler_msg - @submission = Submission.find(params[:id]) respond_to do |format| format.js end @@ -65,7 +62,6 @@ # GET /submissions/1/edit def edit - @submission = Submission.find(params[:id]) @source = @submission.source.to_s @problem = @submission.problem @lang_id = @submission.language.id @@ -82,7 +78,6 @@ # GET /submissions/:id/rejudge def rejudge - @submission = Submission.find(params[:id]) @task = @submission.task @task.status_inqueue! if @task respond_to do |format| @@ -90,6 +85,11 @@ end end + def set_tag + @submission.update(tag: params[:tag]) + redirect_to @submission + end + protected def submission_authorization @@ -106,6 +106,10 @@ unauthorized_redirect return false end + + def set_submission + @submission = Submission.find(params[:id]) + end end