diff --git a/app/controllers/main_controller.rb b/app/controllers/main_controller.rb --- a/app/controllers/main_controller.rb +++ b/app/controllers/main_controller.rb @@ -13,6 +13,8 @@ prepend_before_filter :reject_announcement_refresh_when_logged_out, :only => [:announcements] + before_filter :authenticate_by_ip_address, :only => [:list] + # COMMENTED OUT: filter in each action instead # before_filter :verify_time_limit, :only => [:submit] @@ -43,7 +45,7 @@ # @hidelogin = true # end - @announcements = Announcement.find_for_frontpage + @announcements = Announcement.frontpage render :action => 'login', :layout => 'empty' end @@ -67,6 +69,14 @@ @submission.source.encode!('UTF-8','UTF-8',invalid: :replace, replace: '') @submission.source_filename = params['file'].original_filename end + + if (params[:editor_text]) + language = Language.find_by_id(params[:language_id]) + @submission.source = params[:editor_text] + @submission.source_filename = "live_edit.#{language.ext}" + @submission.language = language + end + @submission.submitted_at = Time.new.gmtime @submission.ip_address = request.remote_ip @@ -78,10 +88,10 @@ if @submission.valid? if @submission.save == false - flash[:notice] = 'Error saving your submission' + flash[:notice] = 'Error saving your submission' elsif Task.create(:submission_id => @submission.id, :status => Task::STATUS_INQUEUE) == false - flash[:notice] = 'Error adding your submission to task queue' + flash[:notice] = 'Error adding your submission to task queue' end else prepare_list_information @@ -96,7 +106,7 @@ (submission.problem != nil) and (submission.problem.available)) send_data(submission.source, - {:filename => submission.download_filename, + {:filename => submission.download_filename, :type => 'text/plain'}) else flash[:notice] = 'Error viewing source' @@ -114,23 +124,6 @@ end end - def submission - @user = User.find(session[:user_id]) - @problems = @user.available_problems - if params[:id]==nil - @problem = nil - @submissions = nil - else - @problem = Problem.find_by_name(params[:id]) - if not @problem.available - redirect_to :action => 'list' - flash[:notice] = 'Error: submissions for that problem are not viewable.' - return - end - @submissions = Submission.find_all_by_user_problem(@user.id, @problem.id) - end - end - def result if !GraderConfiguration.show_grading_result redirect_to :action => 'list' and return @@ -207,9 +200,9 @@ def prepare_announcements(recent=nil) if GraderConfiguration.show_tasks_to?(@user) - @announcements = Announcement.find_published(true) + @announcements = Announcement.published(true) else - @announcements = Announcement.find_published + @announcements = Announcement.published end if recent!=nil recent_id = recent.to_i