Show More
Commit Description:
update max_score / current_score to property use group filter
Commit Description:
update max_score / current_score to property use group filter
File last commit:
Show/Diff file:
Action:
app/controllers/submissions_controller.rb | 111 lines | 3.0 KiB | text/x-ruby | RubyLexer |
- refactor into submission controller
r596 class SubmissionsController < ApplicationController
more test and clean up authorization
r756 before_action :check_valid_login
fix access right control bugs
r683 before_action :submission_authorization, only: [:show, :download, :edit]
add rejudge button
r645 before_action :admin_authorization, only: [:rejudge]
- refactor into submission controller
r596
# GET /submissions
# GET /submissions.json
- refactor direct_edit into submissions/edit...
r597 # Show problem selection and user's submission of that problem
- refactor into submission controller
r596 def index
@user = @current_user
@problems = @user.available_problems
if params[:problem_id]==nil
@problem = nil
@submissions = nil
else
@problem = Problem.find_by_id(params[:problem_id])
if (@problem == nil) or (not @problem.available)
fix error message when submission to closed problem
r797 redirect_to list_main_path
flash[:error] = 'Authorization error: You have no right to view submissions for this problem'
- refactor into submission controller
r596 return
end
reorder submission and remove duplicate code for submission
r644 @submissions = Submission.find_all_by_user_problem(@user.id, @problem.id).order(id: :desc)
- refactor into submission controller
r596 end
end
# 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?
add rejudge button
r645
@task = @submission.task
- refactor into submission controller
r596 end
fix compiler message...
r621 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
end
- refactor direct_edit into submissions/edit...
r597 #on-site new submission on specific problem
def direct_edit_problem
@problem = Problem.find(params[:problem_id])
fix access right control bugs
r683 unless @current_user.can_view_problem?(@problem)
unauthorized_redirect
return
end
- refactor direct_edit into submissions/edit...
r597 @source = ''
fix access right control bugs
r683 if (params[:view_latest])
sub = Submission.find_last_by_user_and_problem(@current_user.id,@problem.id)
fix allow admin to submit to any problem
r682 @source = @submission.source.to_s if @submission and @submission.source
end
- refactor direct_edit into submissions/edit...
r597 render 'edit'
- refactor into submission controller
r596 end
# GET /submissions/1/edit
def edit
@submission = Submission.find(params[:id])
- refactor direct_edit into submissions/edit...
r597 @source = @submission.source.to_s
@problem = @submission.problem
@lang_id = @submission.language.id
- refactor into submission controller
r596 end
- refactor direct_edit into submissions/edit...
r597 def get_latest_submission_status
@problem = Problem.find(params[:pid])
@submission = Submission.find_last_by_user_and_problem(params[:uid],params[:pid])
- refactor into submission controller
r596 respond_to do |format|
- refactor direct_edit into submissions/edit...
r597 format.js
- refactor into submission controller
r596 end
end
add rejudge button
r645 # GET /submissions/:id/rejudge
def rejudge
@submission = Submission.find(params[:id])
@task = @submission.task
@task.status_inqueue! if @task
respond_to do |format|
format.js
end
end
- refactor direct_edit into submissions/edit...
r597 protected
fix compiler message...
r621
- refactor direct_edit into submissions/edit...
r597 def submission_authorization
#admin always has privileged
add TA roles
r799 return true if @current_user.admin?
update max_score / current_score to property use group filter
r802 return true if @current_user.has_role?('ta') && (['show','download'].include? action_name)
- refactor direct_edit into submissions/edit...
r597
sub = Submission.find(params[:id])
fix access right control bugs
r683 if @current_user.available_problems.include? sub.problem
- refactor direct_edit into submissions/edit...
r597 return true if GraderConfiguration["right.user_view_submission"] or sub.user == @current_user
end
- refactor into submission controller
r596
- refactor direct_edit into submissions/edit...
r597 #default to NO
unauthorized_redirect
return false
- refactor into submission controller
r596 end
switch to strong parameter for mass update (have not finished the problem controller yet)
r617
- refactor direct_edit into submissions/edit...
r597
- refactor into submission controller
r596 end