Description:
prevents user from viewing own sources submitted to unavailable problems
Commit status:
[Not Reviewed]
References:
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r305:a5e98b239050 - - 1 file changed: 3 inserted, 1 deleted

@@ -68,49 +68,51
68 @submission.submitted_at = Time.new.gmtime
68 @submission.submitted_at = Time.new.gmtime
69
69
70 if Configuration.time_limit_mode? and user.contest_finished?
70 if Configuration.time_limit_mode? and user.contest_finished?
71 @submission.errors.add_to_base "The contest is over."
71 @submission.errors.add_to_base "The contest is over."
72 prepare_list_information
72 prepare_list_information
73 render :action => 'list' and return
73 render :action => 'list' and return
74 end
74 end
75
75
76 if @submission.valid?
76 if @submission.valid?
77 if @submission.save == false
77 if @submission.save == false
78 flash[:notice] = 'Error saving your submission'
78 flash[:notice] = 'Error saving your submission'
79 elsif Task.create(:submission_id => @submission.id,
79 elsif Task.create(:submission_id => @submission.id,
80 :status => Task::STATUS_INQUEUE) == false
80 :status => Task::STATUS_INQUEUE) == false
81 flash[:notice] = 'Error adding your submission to task queue'
81 flash[:notice] = 'Error adding your submission to task queue'
82 end
82 end
83 else
83 else
84 prepare_list_information
84 prepare_list_information
85 render :action => 'list' and return
85 render :action => 'list' and return
86 end
86 end
87 redirect_to :action => 'list'
87 redirect_to :action => 'list'
88 end
88 end
89
89
90 def source
90 def source
91 submission = Submission.find(params[:id])
91 submission = Submission.find(params[:id])
92 - if submission.user_id == session[:user_id]
92 + if ((submission.user_id == session[:user_id]) and
93 + (submission.problem != nil) and
94 + (submission.problem.available))
93 send_data(submission.source,
95 send_data(submission.source,
94 {:filename => submission.download_filename,
96 {:filename => submission.download_filename,
95 :type => 'text/plain'})
97 :type => 'text/plain'})
96 else
98 else
97 flash[:notice] = 'Error viewing source'
99 flash[:notice] = 'Error viewing source'
98 redirect_to :action => 'list'
100 redirect_to :action => 'list'
99 end
101 end
100 end
102 end
101
103
102 def compiler_msg
104 def compiler_msg
103 @submission = Submission.find(params[:id])
105 @submission = Submission.find(params[:id])
104 if @submission.user_id == session[:user_id]
106 if @submission.user_id == session[:user_id]
105 render :action => 'compiler_msg', :layout => 'empty'
107 render :action => 'compiler_msg', :layout => 'empty'
106 else
108 else
107 flash[:notice] = 'Error viewing source'
109 flash[:notice] = 'Error viewing source'
108 redirect_to :action => 'list'
110 redirect_to :action => 'list'
109 end
111 end
110 end
112 end
111
113
112 def submission
114 def submission
113 @user = User.find(session[:user_id])
115 @user = User.find(session[:user_id])
114 @problems = @user.available_problems
116 @problems = @user.available_problems
115 if params[:id]==nil
117 if params[:id]==nil
116 @problem = nil
118 @problem = nil
You need to be logged in to leave comments. Login now