Don't allow hash signs in usernames

This commit is contained in:
Tom Hughes 2012-07-23 12:50:48 +01:00
parent 5af8d51865
commit e4be816ca0
2 changed files with 3 additions and 3 deletions

View file

@ -33,7 +33,7 @@ class User < ActiveRecord::Base
validates_length_of :display_name, :within => 3..255, :allow_nil => true
validates_email_format_of :email, :if => Proc.new { |u| u.email_changed? }
validates_email_format_of :new_email, :allow_blank => true, :if => Proc.new { |u| u.new_email_changed? }
validates_format_of :display_name, :with => /^[^\/;.,?%]*$/, :if => Proc.new { |u| u.display_name_changed? }
validates_format_of :display_name, :with => /^[^\/;.,?%#]*$/, :if => Proc.new { |u| u.display_name_changed? }
validates_format_of :display_name, :with => /^\S/, :message => "has leading whitespace", :if => Proc.new { |u| u.display_name_changed? }
validates_format_of :display_name, :with => /\S$/, :message => "has trailing whitespace", :if => Proc.new { |u| u.display_name_changed? }
validates_numericality_of :home_lat, :allow_nil => true

View file

@ -81,12 +81,12 @@ class UserTest < ActiveSupport::TestCase
# Due to sanitisation in the view some of these that you might not
# expact are allowed
# However, would they affect the xml planet dumps?
ok = [ "Name", "'me", "he\"", "#ping", "<hr>", "*ho", "\"help\"@",
ok = [ "Name", "'me", "he\"", "<hr>", "*ho", "\"help\"@",
"vergrößern", "ルシステムにも対応します", "輕觸搖晃的遊戲" ]
# These need to be 3 chars in length, otherwise the length test above
# should be used.
bad = [ "<hr/>", "test@example.com", "s/f", "aa/", "aa;", "aa.",
"aa,", "aa?", "/;.,?", "も対応します/" ]
"aa,", "aa?", "/;.,?", "も対応します/", "#ping" ]
ok.each do |display_name|
user = users(:normal_user)
user.display_name = display_name