]> source.dussan.org Git - redmine.git/commitdiff
Fixed: User#identity_url raises an error when invalid url is supplied (#2742).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sun, 15 Feb 2009 18:46:50 +0000 (18:46 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sun, 15 Feb 2009 18:46:50 +0000 (18:46 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2476 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/models/user.rb
test/unit/user_test.rb

index 4f8223dc023ba102a6e7dfe2b10f62f2f9d808ad..32cc08b1123bf089803920b1767c38a264877141 100644 (file)
@@ -81,10 +81,14 @@ class User < ActiveRecord::Base
   end
   
   def identity_url=(url)
-    begin
-      self.write_attribute(:identity_url, OpenIdAuthentication.normalize_identifier(url))
-    rescue InvalidOpenId
-      # Invlaid url, don't save
+    if url.blank?
+      write_attribute(:identity_url, '')
+    else
+      begin
+        write_attribute(:identity_url, OpenIdAuthentication.normalize_identifier(url))
+      rescue OpenIdAuthentication::InvalidOpenId
+        # Invlaid url, don't save
+      end
     end
     self.read_attribute(:identity_url)
   end
index 6bf0e41fd30c9b9acef2725b674ccf3e8616cdb6..fd3403709b0c1d7d2aa470ca8bace41a093c7e7d 100644 (file)
@@ -204,6 +204,17 @@ class UserTest < Test::Unit::TestCase
     u = User.new( :identity_url => 'example.com' )\r
     assert_equal normalized_open_id_url, u.identity_url\r
   end\r
+    \r
+  def test_setting_blank_identity_url\r
+    u = User.new( :identity_url => 'example.com' )\r
+    u.identity_url = ''\r
+    assert u.identity_url.blank?\r
+  end\r
+    \r
+  def test_setting_invalid_identity_url\r
+    u = User.new( :identity_url => 'this is not an openid url' )\r
+    assert u.identity_url.blank?\r
+  end\r
   \r
   else\r
     puts "Skipping openid tests."\r