Description:
fixed form_tag/form_for, disabled attributes whitelist
Commit status:
[Not Reviewed]
References:
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r321:6490fd9a1f54 - - 17 files changed: 23 inserted, 22 deleted

@@ -1,157 +1,158
1 1 class MainController < ApplicationController
2 2
3 3 before_filter :authenticate, :except => [:index, :login]
4 4 before_filter :check_viewability, :except => [:index, :login]
5 5
6 6 append_before_filter :confirm_and_update_start_time,
7 7 :except => [:index,
8 8 :login,
9 9 :confirm_contest_start]
10 10
11 11 # to prevent log in box to be shown when user logged out of the
12 12 # system only in some tab
13 13 prepend_before_filter :reject_announcement_refresh_when_logged_out,
14 14 :only => [:announcements]
15 15
16 16 # COMMENTED OUT: filter in each action instead
17 17 # before_filter :verify_time_limit, :only => [:submit]
18 18
19 19 verify :method => :post, :only => [:submit],
20 20 :redirect_to => { :action => :index }
21 21
22 22 # COMMENT OUT: only need when having high load
23 23 # caches_action :index, :login
24 24
25 25 # NOTE: This method is not actually needed, 'config/routes.rb' has
26 26 # assigned action login as a default action.
27 27 def index
28 28 redirect_to :action => 'login'
29 29 end
30 30
31 31 def login
32 32 saved_notice = flash[:notice]
33 33 reset_session
34 34 flash.now[:notice] = saved_notice
35 35
36 36 # EXPERIMENT:
37 37 # Hide login if in single user mode and the url does not
38 38 # explicitly specify /login
39 39 #
40 40 # logger.info "PATH: #{request.path}"
41 41 # if GraderConfiguration['system.single_user_mode'] and
42 42 # request.path!='/main/login'
43 43 # @hidelogin = true
44 44 # end
45 45
46 46 @announcements = Announcement.find_for_frontpage
47 47 render :action => 'login', :layout => 'empty'
48 48 end
49 49
50 50 def list
51 51 prepare_list_information
52 52 end
53 53
54 54 def help
55 55 @user = User.find(session[:user_id])
56 56 end
57 57
58 58 def submit
59 59 user = User.find(session[:user_id])
60 60
61 - @submission = Submission.new(params[:submission])
61 + @submission = Submission.new
62 + @submission.problem_id = params[:submission][:problem_id]
62 63 @submission.user = user
63 64 @submission.language_id = 0
64 65 if (params['file']) and (params['file']!='')
65 66 @submission.source = params['file'].read
66 67 @submission.source_filename = params['file'].original_filename
67 68 end
68 69 @submission.submitted_at = Time.new.gmtime
69 70
70 71 if GraderConfiguration.time_limit_mode? and user.contest_finished?
71 72 @submission.errors.add_to_base "The contest is over."
72 73 prepare_list_information
73 74 render :action => 'list' and return
74 75 end
75 76
76 77 if @submission.valid?
77 78 if @submission.save == false
78 79 flash[:notice] = 'Error saving your submission'
79 80 elsif Task.create(:submission_id => @submission.id,
80 81 :status => Task::STATUS_INQUEUE) == false
81 82 flash[:notice] = 'Error adding your submission to task queue'
82 83 end
83 84 else
84 85 prepare_list_information
85 86 render :action => 'list' and return
86 87 end
87 88 redirect_to :action => 'list'
88 89 end
89 90
90 91 def source
91 92 submission = Submission.find(params[:id])
92 93 if ((submission.user_id == session[:user_id]) and
93 94 (submission.problem != nil) and
94 95 (submission.problem.available))
95 96 send_data(submission.source,
96 97 {:filename => submission.download_filename,
97 98 :type => 'text/plain'})
98 99 else
99 100 flash[:notice] = 'Error viewing source'
100 101 redirect_to :action => 'list'
101 102 end
102 103 end
103 104
104 105 def compiler_msg
105 106 @submission = Submission.find(params[:id])
106 107 if @submission.user_id == session[:user_id]
107 108 render :action => 'compiler_msg', :layout => 'empty'
108 109 else
109 110 flash[:notice] = 'Error viewing source'
110 111 redirect_to :action => 'list'
111 112 end
112 113 end
113 114
114 115 def submission
115 116 @user = User.find(session[:user_id])
116 117 @problems = @user.available_problems
117 118 if params[:id]==nil
118 119 @problem = nil
119 120 @submissions = nil
120 121 else
121 122 @problem = Problem.find_by_name(params[:id])
122 123 if not @problem.available
123 124 redirect_to :action => 'list'
124 125 flash[:notice] = 'Error: submissions for that problem are not viewable.'
125 126 return
126 127 end
127 128 @submissions = Submission.find_all_by_user_problem(@user.id, @problem.id)
128 129 end
129 130 end
130 131
131 132 def result
132 133 if !GraderConfiguration.show_grading_result
133 134 redirect_to :action => 'list' and return
134 135 end
135 136 @user = User.find(session[:user_id])
136 137 @submission = Submission.find(params[:id])
137 138 if @submission.user!=@user
138 139 flash[:notice] = 'You are not allowed to view result of other users.'
139 140 redirect_to :action => 'list' and return
140 141 end
141 142 prepare_grading_result(@submission)
142 143 end
143 144
144 145 def load_output
145 146 if !GraderConfiguration.show_grading_result or params[:num]==nil
146 147 redirect_to :action => 'list' and return
147 148 end
148 149 @user = User.find(session[:user_id])
149 150 @submission = Submission.find(params[:id])
150 151 if @submission.user!=@user
151 152 flash[:notice] = 'You are not allowed to view result of other users.'
152 153 redirect_to :action => 'list' and return
153 154 end
154 155 case_num = params[:num].to_i
155 156 out_filename = output_filename(@user.login,
156 157 @submission.problem.name,
157 158 @submission.id,
@@ -1,51 +1,51
1 1 - content_for :head do
2 2 = stylesheet_link_tag 'graders'
3 3 <meta http-equiv ="refresh" content="60"/>
4 4
5 5 %h1 Grader information
6 6
7 7 = link_to '[Refresh]', :action => 'list'
8 8 %br/
9 9
10 10 .submitbox
11 11 .item
12 12 Grader control:
13 13 .item
14 - - form_for :clear, nil, :url => {:action => 'start_grading'} do |f|
14 + = form_for :clear, nil, :url => {:action => 'start_grading'} do |f|
15 15 = submit_tag 'Start graders in grading env'
16 16 .item
17 - - form_for :clear, nil, :url => {:action => 'start_exam'} do |f|
17 + = form_for :clear, nil, :url => {:action => 'start_exam'} do |f|
18 18 = submit_tag 'Start graders in exam env'
19 19 .item
20 - - form_for :clear, nil, :url => {:action => 'stop_all'} do |f|
20 + = form_for :clear, nil, :url => {:action => 'stop_all'} do |f|
21 21 = submit_tag 'Stop all running graders'
22 22 .item
23 - - form_for :clear, nil, :url => {:action => 'clear_all'} do |f|
23 + = form_for :clear, nil, :url => {:action => 'clear_all'} do |f|
24 24 = submit_tag 'Clear all data'
25 25 %br{:style => 'clear:both'}/
26 26
27 27 - if @last_task
28 28 Last task:
29 29 = link_to "#{@last_task.id}", :action => 'view', :id => @last_task.id, :type => 'Task'
30 30
31 31 %br/
32 32
33 33 - if @last_test_request
34 34 Last test_request:
35 35 = link_to "#{@last_test_request.id}", :action => 'view', :id => @last_test_request.id, :type => 'TestRequest'
36 36
37 37
38 38 %h2 Current graders
39 39
40 40 = render :partial => 'grader_list', :locals => {:grader_list => @grader_processes}
41 41
42 42 %h2 Stalled graders
43 43
44 44 = render :partial => 'grader_list', :locals => {:grader_list => @stalled_processes}
45 45
46 46 %h2 Terminated graders
47 47
48 - - form_for :clear, nil, :url => {:action => 'clear_terminated'} do |f|
48 + = form_for :clear, nil, :url => {:action => 'clear_terminated'} do |f|
49 49 = submit_tag 'Clear data for terminated graders'
50 50
51 51 = render :partial => 'grader_list', :locals => {:grader_list => @terminated_processes}
@@ -1,16 +1,16
1 1 = user_title_bar(@user)
2 2
3 3 .announcementbox
4 4 %span{:class => 'title'}
5 5 =t 'main.confirm_contest_start.box_title'
6 6 .announcement
7 7 %center
8 8 =t 'main.confirm_contest_start.contest_list'
9 9 - @contests.each do |contest|
10 10 = contest.title
11 11 %br
12 12
13 13 =t 'main.confirm_contest_start.timer_starts_after_click'
14 14
15 - - form_tag :action => 'confirm_contest_start', :method => 'post' do
15 + = form_tag :action => 'confirm_contest_start', :method => 'post' do
16 16 = submit_tag t('main.confirm_contest_start.start_button'), :confirm => t('main.confirm_contest_start.start_button_confirm')
@@ -1,26 +1,26
1 1 = user_title_bar(@user)
2 2
3 3 .announcementbox
4 4 %span{:class => 'title'}
5 5 How to submit clarification requests
6 6 .announcement
7 7 %p
8 8 :markdown
9 9 The clarification requests should be phrased as yes/no questions.
10 10 The answers will be one of the following:
11 11 (1) **YES**,
12 12 (2) <b>NO</b>,
13 13 (3) **ANSWERED IN TASK DESCRIPTION (EXPLICITLY OR IMPLICITLY)**,
14 14 (4) **INVALID QUESTION**, and
15 15 (5) **NO COMMENT**.
16 16
17 - - form_for 'message', nil, :url => { :action => 'create'} do |f|
17 + = form_for 'message', nil, :url => { :action => 'create'} do |f|
18 18 %p
19 19 %b New clarification request
20 20 = submit_tag "Post"
21 21 %br/
22 22 = f.text_area :body, :rows => 5, :cols => 100
23 23
24 24 %hr/
25 25
26 26 = render :partial => 'message', :collection => @messages, :locals => {:reply => false}
@@ -1,20 +1,20
1 1 %h3 Message
2 2
3 3 .message
4 4 .stat
5 5 = "#{@message.sender.full_name} at #{@message.created_at}"
6 6 .body= simple_format(@message.body)
7 7
8 8 %h3 Your reply:
9 - - form_for 'r_message', nil, :url => { :action => 'reply'} do |f|
9 + = form_for 'r_message', nil, :url => { :action => 'reply'} do |f|
10 10 = f.text_area :body, :rows => 5, :cols => 100
11 11 = f.hidden_field :receiver_id, {:value => @message.sender_id }
12 12 = f.hidden_field :replying_message_id, {:value => @message.id }
13 13 = submit_tag "Post"
14 14
15 15 %p
16 16 If you do not want to reply, but want to hide this message from
17 17 console, you can
18 18 = link_to "[hide]", :action => 'hide', :id => @message.id
19 19 this message. (This message will be marked as replied.)
20 20
@@ -1,59 +1,59
1 1 - content_for :head do
2 2 = stylesheet_link_tag 'problems'
3 3 = javascript_include_tag :defaults
4 4
5 5 %h1 Import problems
6 6
7 7 %p= link_to '[Back to problem list]', :action => 'list'
8 8
9 9 - if @problem and @problem.errors
10 10 =error_messages_for 'problem'
11 11
12 - - form_tag({:action => 'do_import'}, :multipart => true) do
12 + = form_tag({:action => 'do_import'}, :multipart => true) do
13 13 .submitbox
14 14 %table
15 15 %tr
16 16 %td Name:
17 17 %td= text_field_tag 'name'
18 18 %tr
19 19 %td Full name:
20 20 %td
21 21 = text_field_tag 'full_name'
22 22 %span{:class => 'help'} Leave blank to use the same value as the name above.
23 23 %tr
24 24 %td Testdata file:
25 25 %td= file_field_tag 'file'
26 26 %tr
27 27 %td
28 28 %td
29 29 %span{:class => 'help'}
30 30 In .zip, .tgz, tar.gz, .tar format.
31 31 It should includes inputs (e.g., 1.in, 2a.in, 2b.in)
32 32 and solutions (e.g., 1.sol, 2a.sol, 2b.sol).
33 33 %br/
34 34 You may put task description in *.html for raw html
35 35 and *.md or *.markdown for markdown.
36 36 - if @allow_test_pair_import
37 37 %tr
38 38 %td
39 39 %td
40 40 = check_box_tag 'import_to_db'
41 41 Import test data to database (for a test-pair task)
42 42 %tr
43 43 %td Time limit:
44 44 %td
45 45 = text_field_tag 'time_limit'
46 46 %span{:class => 'help'} In seconds. Leave blank to use 1 sec.
47 47 %tr
48 48 %td Memory limit:
49 49 %td
50 50 = text_field_tag 'memory_limit'
51 51 %span{:class => 'help'} In MB. Leave blank to use 32MB.
52 52 %tr
53 53 %td
54 54 %td= submit_tag 'Import problem'
55 55
56 56 - if @log
57 57 %h3 Import log
58 58 %pre.import-log
59 59 = @log
@@ -1,44 +1,44
1 1 - content_for :head do
2 2 = stylesheet_link_tag 'problems'
3 3 = javascript_include_tag :defaults
4 4
5 5 %h1 Manage problems
6 6
7 7 %p= link_to '[Back to problem list]', :action => 'list'
8 8
9 - - form_tag :action=>'do_manage' do
9 + = form_tag :action=>'do_manage' do
10 10 .submitbox
11 11 What do you want to do?
12 12 %br/
13 13 %ul
14 14 %li
15 15 Change date added to
16 16 = select_date Date.current, :prefix => 'date_added'
17 17 &nbsp;&nbsp;&nbsp;
18 18 = submit_tag 'Change', :name => 'change_date_added'
19 19
20 20 - if GraderConfiguration.multicontests?
21 21 %li
22 22 Add to
23 23 = select("contest","id",Contest.all.collect {|c| [c.title, c.id]})
24 24 = submit_tag 'Add', :name => 'add_to_contest'
25 25
26 26 %table
27 27 %tr
28 28 %th/
29 29 %th Name
30 30 %th Full name
31 31 %th Date added
32 32 - if GraderConfiguration.multicontests?
33 33 %th Contests
34 34
35 35 - for problem in @problems
36 36 %tr{:id => "row-prob-#{problem.id}", :name=> "prob-#{problem.id}"}
37 37 %td= check_box_tag "prob-#{problem.id}"
38 38 %td= problem.name
39 39 %td= problem.full_name
40 40 %td= problem.date_added
41 41 - if GraderConfiguration.multicontests?
42 42 %td
43 43 - problem.contests.each do |contest|
44 44 = "(#{contest.name} [#{link_to 'x', :action => 'remove_contest', :id => problem.id, :contest_id => contest.id }])"
@@ -1,39 +1,39
1 1 %script{:type => 'text/javascript'}
2 2 var siteList = new Array();
3 3 - @countries.each do |country|
4 4 = "siteList[#{country.id}] = new Array();"
5 5 - country.sites.each do |site|
6 6 = "siteList[#{country.id}][#{site.id}] = \"#{site.name}\";"
7 7
8 8 var allSiteList = new Array();
9 9 - @site_select.each do |sel|
10 10 = "allSiteList[#{sel[1]}]=\"#{sel[0]}\";"
11 11
12 12 %script{:type => 'text/javascript', :src => '/javascripts/site_update.js'}
13 13
14 14 %div{ :style => "border: solid 1px gray; padding: 2px; background: #f0f0f0;"}
15 15 %h2 For Site Administrator.
16 16
17 17 - if @default_site
18 - - form_for :login, nil, :url => {:controller => 'login', :action => 'site_login'} do |f|
18 + = form_for :login, nil, :url => {:controller => 'login', :action => 'site_login'} do |f|
19 19 %b Log in for default site.
20 20 = f.hidden_field :site_id, :value => @default_site.id
21 21 %br/
22 22 Password:
23 23 = f.password_field :password
24 24 = submit_tag "Site Administrator Login"
25 25
26 26 - else
27 27 Please select your country and site and login.
28 - - form_for :login, nil, :url => {:controller => 'login', :action => 'site_login'} do |f|
28 + = form_for :login, nil, :url => {:controller => 'login', :action => 'site_login'} do |f|
29 29 Country:
30 30 = select :site_country, :id, @country_select_with_all, {}, {:onchange => "updateSiteList();", :onclick => "updateSiteList();" }
31 31 Site:
32 32 = select :login, :site_id, @site_select
33 33 %br/
34 34 Password:
35 35 = f.password_field :password
36 36 = submit_tag "Site Administrator Login"
37 37
38 38 %script{:type => 'text/javascript'}
39 39 updateSiteList();
@@ -1,24 +1,24
1 1 %h2
2 2 Contest Administration for site:
3 3 = "#{@site.name}, #{@site.country.name if @site.country}"
4 4
5 5
6 6 Current time at the server is
7 7 = "#{format_short_time(Time.new.gmtime)} UTC"
8 8 (please
9 9 = link_to 'refresh', :action => 'index'
10 10 to update)
11 11 %br/
12 12 %br/
13 13
14 - - form_tag :action => 'start' do
14 + = form_tag :action => 'start' do
15 15 When you're ready, you can click the button below to start the contest.
16 16 %br/
17 17 Please make sure that the contestants are ready.
18 18 After the contest is started, it <b>cannot</b> be paused or stopped.
19 19 %br/
20 20 = submit_tag 'Start the Contest.', :onclick => "return confirm('Are you sure?');"
21 21
22 22 %br/
23 23 %br/
24 24 = link_to '[log out]', :action => 'logout'
@@ -1,99 +1,99
1 1 <%= user_title_bar(@user) %>
2 2
3 3 <h2><%=t 'test.title' %></h2>
4 4
5 5 <div class="test-desc">
6 6 <%=t 'test.intro' %><br/>
7 7 <% if GraderConfiguration['contest.test_request.early_timeout'] %>
8 8 <%=t 'test.disabled_at_end_announcement' %>
9 9 <% end %>
10 10 </div>
11 11
12 12 <% if @problems.length==0 %>
13 13 There is no submission
14 14 <% else %>
15 15
16 16 <script type="text/javascript">
17 17 var submissionCount = new Array();
18 18 <% @submissions.each do |submission| %>
19 19 submissionCount[<%= submission.problem_id %>]=<%= submission.number %>;
20 20 <% end %>
21 21
22 22 function updateSubmissionList() {
23 23 currentProb = document.getElementById("test_request_problem_id").value;
24 24 count = submissionCount[currentProb];
25 25 submissionSelect = document.getElementById("test_request_submission_number");
26 26 old_len = submissionSelect.length;
27 27 // clear the box
28 28 for(i=0; i<old_len; i++)
29 29 submissionSelect.remove(0);
30 30 for(i=count; i>=1; i--) {
31 31 try {
32 32 submissionSelect.add(new Option(""+i,""+i,false,false),null);
33 33 } catch(ex) {
34 34 submissionSelect.add(new Option(""+i,""+i,false,false));
35 35 }
36 36 }
37 37 }
38 38 </script>
39 39
40 40 <% if GraderConfiguration.show_submitbox_to?(@user) and GraderConfiguration.allow_test_request(@user) %>
41 41 <div class="submitbox">
42 42 <%= error_messages_for 'submitted_test_request' %>
43 - <% form_for :test_request, nil,
43 + <%= form_for :test_request, nil,
44 44 :url => { :action => 'submit'},
45 45 :html => { :multipart => true } do |f| %>
46 46 <table>
47 47 <tr>
48 48 <td>Task:</td>
49 49 <td>
50 50 <%= select(:test_request,
51 51 :problem_id,
52 52 @problems.collect {|p| [p.name, p.id]}, {},
53 53 { :onclick => "updateSubmissionList();" }) %>
54 54 </td>
55 55 </tr>
56 56 <tr>
57 57 <td>Submission:</td>
58 58 <td>
59 59 <%= select(:test_request,
60 60 :submission_number,
61 61 ((1..@submissions[0].number).collect {|n| [n,n]}).reverse) %>
62 62 </td>
63 63 </tr>
64 64 <tr>
65 65 <td>Input data:</td>
66 66 <td>
67 67 <%= f.file_field :input_file %>
68 68 </td>
69 69 <td>
70 70 (combined size should not exceed 2MB)
71 71 </td>
72 72 </tr>
73 73 <tr>
74 74 <td colspan="2">
75 75 <%= submit_tag 'submit' %>
76 76 </td>
77 77 </tr>
78 78 </table>
79 79 <% end %>
80 80 </div>
81 81 <% end %>
82 82
83 83 <h3>Previous requests</h3>
84 84
85 85 <table class="info">
86 86 <tr class="info-head">
87 87 <th>at</th>
88 88 <th>problem</th>
89 89 <th>sub #</th>
90 90 <th>status</th>
91 91 <th>output (first 2kb)</th>
92 92 <th>compiler message</th>
93 93 <th>detail</th>
94 94 </tr>
95 95 <%= render :partial => 'test_request', :collection => @test_requests %>
96 96 </table>
97 97
98 98 <% end %>
99 99
@@ -1,25 +1,25
1 1 %h1 Administrators
2 2
3 3 %table{:class => 'info'}
4 4 %tr{:class => 'info-head'}
5 5 %th #
6 6 %th Login
7 7 %th Full name
8 8 %th
9 9 - @admins.each_with_index do |user, i|
10 10 %tr
11 11 %td= i+1
12 12 %td= user.login
13 13 %td= user.full_name
14 14 %td
15 15 - if user.login!='root'
16 16 = link_to '[revoke]', :action => 'revoke_admin', :id => user.id
17 17 %hr
18 18
19 - - form_tag :action => 'grant_admin' do
19 + = form_tag :action => 'grant_admin' do
20 20 Grant admin permission to:
21 21 = text_field_tag 'login'
22 22 = submit_tag 'Grant'
23 23
24 24 %hr/
25 25 = link_to '[go back to index]', :action => 'index'
@@ -1,26 +1,26
1 1 %h1 Bulk edit users in contests
2 2
3 - - form_tag :action => 'manage_contest' do
3 + = form_tag :action => 'manage_contest' do
4 4 List users' login below; one per line.
5 5 %br/
6 6 = text_area_tag 'login_list', nil, :rows => 23, :cols => 80
7 7 %br/
8 8 %table
9 9 %tr
10 10 %td{:valign => 'top'}
11 11 You want to
12 12 = select(nil,"operation",[['assign users to','assign'],['add users to','add'],['remove users from','remove']])
13 13 contest
14 14 = select("contest","id",Contest.all.collect {|c| [c.title, c.id]})
15 15 and also
16 16 %td
17 17 = check_box_tag 'reset_timer'
18 18 Auto-reset current contest timer.
19 19 %br/
20 20 = check_box_tag 'notification_emails'
21 21 Send notification email(s).
22 22
23 23 = submit_tag "Perform action!", :confirm => 'Are you sure?'
24 24
25 25 %hr/
26 26 = link_to '[go back to index]', :action => 'index'
@@ -1,19 +1,19
1 1 %h1 Send mass e-mails
2 2
3 - - form_tag :action => 'bulk_mail' do
3 + = form_tag :action => 'bulk_mail' do
4 4 %b List recipients' login below; one per line.
5 5 %br/
6 6 = text_area_tag 'login_list', nil, :rows => 7, :cols => 80
7 7 %br/
8 8 %b Subject:
9 9 = text_field_tag 'subject', '', :size => 60
10 10 %br/
11 11 %b Email body:
12 12 %br/
13 13 = text_area_tag 'email_body', nil, :rows => 11, :cols => 80
14 14 %br/
15 15
16 16 = submit_tag "Send mails", :confirm => 'Are you sure?'
17 17
18 18 %hr/
19 19 = link_to '[go back to index]', :action => 'index'
@@ -1,18 +1,18
1 1 .contest-title
2 2 %h1
3 3 = "#{GraderConfiguration['contest.name']}: #{t 'registration.password_retrieval.header'}"
4 4
5 5 - if flash[:notice]
6 6 %hr/
7 7 %b= flash[:notice]
8 8 %hr/
9 9
10 10 %br/
11 11
12 - - form_tag :action => 'retrieve_password' do
12 + = form_tag :action => 'retrieve_password' do
13 13 =t 'registration.password_retrieval.instructions'
14 14 = text_field 'email', nil, :size => 20
15 15 %br/
16 16 = submit_tag(t 'registration.password_retrieval.button_label')
17 17
18 18 = link_to "#{t 'go_back_to'}#{t 'home_page'}", :controller => 'main', :action => 'index'
@@ -1,38 +1,38
1 1 - content_for :head do
2 2 = javascript_include_tag :defaults
3 3
4 4 = user_title_bar(@user)
5 5
6 6 %h1 Your account settings
7 7
8 8 -#%p
9 9 -#You can edit your alias and e-mails. Just click on the text and edit it.
10 10
11 11 %table.uinfo
12 12 %tr
13 13 %th.uinfo Login
14 14 %td.uinfo= @user.login
15 15 %tr
16 16 %th.uinfo Full name
17 17 %td.uinfo= @user.full_name
18 18 -#%tr
19 19 -#%th.uinfo Alias
20 20 -#%td.uinfo= in_place_editor_field :user, 'alias_for_editing', {}, :rows => 1
21 21 -#%tr
22 22 -#%th.uinfo E-mail
23 23 -#%td.uinfo= in_place_editor_field :user, 'email_for_editing', {}, :rows => 1
24 24 %tr
25 25 %th.uinfo Password
26 26 %td.uinfo
27 - - form_tag :action => 'chg_passwd', :method => 'post' do
27 + = form_tag :action => 'chg_passwd', :method => 'post' do
28 28 %table
29 29 %tr
30 30 %td= password_field_tag 'passwd'
31 31 %td (new)
32 32 %tr
33 33 %td= password_field_tag 'passwd_verify'
34 34 %td (verify)
35 35 %tr
36 36 %td{:colspan => "2"}
37 37 = submit_tag 'change password'
38 38
@@ -1,39 +1,39
1 1 .contest-title
2 2 %h1
3 3 = "#{GraderConfiguration['contest.name']}: #{t 'registration.title'}"
4 4
5 5 .registration-desc
6 6 =t 'registration.description'
7 7
8 8 = error_messages_for :user, :header_message => (t 'registration.errors.header')
9 9
10 10 %table
11 - - form_for :user, @user, :url => { :action => 'register' } do |f|
11 + = form_for :user, @user, :url => { :action => 'register' } do |f|
12 12 %tr
13 13 %td{:align => "right"}
14 14 = "#{t 'login_label'}:"
15 15 %td= f.text_field :login
16 16 %tr
17 17 %td
18 18 %td
19 19 %small
20 20 =t 'registration.login_guide'
21 21 %tr
22 22 %td{:align => "right"}
23 23 = "#{t 'full_name_label'}:"
24 24 %td= f.text_field :full_name
25 25 %tr
26 26 %td{:align => "right"}
27 27 = "#{t 'email_label'}:"
28 28 %td= f.text_field :email
29 29 %tr
30 30 %td
31 31 %td
32 32 %small
33 33 =t 'registration.email_guide'
34 34 %tr
35 35 %td/
36 36 %td
37 37 = submit_tag((t 'registration.register'), :name => 'commit')
38 38 = submit_tag((t 'cancel'), :name => 'cancel')
39 39
@@ -1,62 +1,62
1 1 require File.expand_path('../boot', __FILE__)
2 2
3 3 require 'rails/all'
4 4
5 5 if defined?(Bundler)
6 6 # If you precompile assets before deploying to production, use this line
7 7 Bundler.require(*Rails.groups(:assets => %w(development test)))
8 8 # If you want your assets lazily compiled in production, use this line
9 9 # Bundler.require(:default, :assets, Rails.env)
10 10 end
11 11
12 12 module CafeGrader
13 13 class Application < Rails::Application
14 14 # Settings in config/environments/* take precedence over those specified here.
15 15 # Application configuration should go into files in config/initializers
16 16 # -- all .rb files in that directory are automatically loaded.
17 17
18 18 # Custom directories with classes and modules you want to be autoloadable.
19 19 # config.autoload_paths += %W(#{config.root}/extras)
20 20
21 21 # Only load the plugins named here, in the order given (default is alphabetical).
22 22 # :all can be used as a placeholder for all plugins not explicitly named.
23 23 # config.plugins = [ :exception_notification, :ssl_requirement, :all ]
24 24
25 25 # Activate observers that should always be running.
26 26 # config.active_record.observers = :cacher, :garbage_collector, :forum_observer
27 27
28 28 # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
29 29 # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
30 30 config.time_zone = 'UTC'
31 31
32 32 # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
33 33 # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
34 34 config.i18n.default_locale = :en
35 35
36 36 # Configure the default encoding used in templates for Ruby 1.9.
37 37 config.encoding = "utf-8"
38 38
39 39 # Configure sensitive parameters which will be filtered from the log file.
40 40 config.filter_parameters += [:password]
41 41
42 42 # Enable escaping HTML in JSON.
43 43 config.active_support.escape_html_entities_in_json = true
44 44
45 45 # Use SQL instead of Active Record's schema dumper when creating the database.
46 46 # This is necessary if your schema can't be completely dumped by the schema dumper,
47 47 # like if you have constraints or database-specific column types
48 48 # config.active_record.schema_format = :sql
49 49
50 50 # Enforce whitelist mode for mass assignment.
51 51 # This will create an empty whitelist of attributes available for mass-assignment for all models
52 52 # in your app. As such, your models will need to explicitly whitelist or blacklist accessible
53 53 # parameters by using an attr_accessible or attr_protected declaration.
54 - config.active_record.whitelist_attributes = true
54 + config.active_record.whitelist_attributes = false
55 55
56 56 # Enable the asset pipeline
57 57 config.assets.enabled = false
58 58
59 59 # Version of your assets, change this if you want to expire all your assets
60 60 config.assets.version = '1.0'
61 61 end
62 62 end
You need to be logged in to leave comments. Login now