Changeset 1125
- Timestamp:
- 08/18/07 21:36:18 (1 year ago)
- Files:
-
- trunk/app/models/user.rb (modified) (2 diffs)
- trunk/log/test.log (deleted)
- trunk/test/fixtures/documents.yml (modified) (1 diff)
- trunk/test/fixtures/users.yml (modified) (3 diffs)
- trunk/test/functional/document_api_test.rb (modified) (1 diff)
- trunk/test/functional/users_controller_test.rb (modified) (1 diff)
- trunk/test/unit/mailer_test.rb (modified) (1 diff)
- trunk/test/unit/user_test.rb (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/app/models/user.rb
r1122 r1125 12 12 validates_format_of :email, :with => /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/, :message => "Un email valide pour vous contacter est requis" 13 13 14 def self.digest_password(clear_password) 15 Digest::SHA256.hexdigest(clear_password) 16 end 17 14 18 def password=(password) 15 write_attribute(:password, Digest::SHA256.hexdigest(password)) unless password.empty?19 write_attribute(:password, User.digest_password(password)) unless password.empty? 16 20 end 17 21 18 22 def self.authenticate(attributes) 19 user = User.find_by_username(attributes[:username], :conditions => ["confirmed = ?", true]) 20 unless user.blank? or Digest::SHA256.hexdigest(attributes[:password]) != user.password 21 user 22 else 23 nil 24 end 23 username = attributes[:username] 24 25 user = User.find_by_username(username, :conditions => ["confirmed = ?", true]) 26 27 if user.blank? 28 logger.debug("unknown or unconfirmed user : #{username}") 29 return nil 30 end 31 32 if User.digest_password(attributes[:password]) != user.password 33 logger.debug("wrong password for : #{username}") 34 return nil 35 end 36 37 logger.info("user logged : #{username}") 38 user 25 39 end 26 40 … … 32 46 Digest::SHA256.hexdigest(id.to_s + email) 33 47 end 34 48 35 49 def confirmed? 36 50 confirmed trunk/test/fixtures/documents.yml
r562 r1125 27 27 format: ogg 28 28 type: AudioDocument 29 elmo: 30 id: 4 31 title: Rosita 32 description: The sexy Rosita is posing for us ! 33 author_id: 3 34 length: 23000000 35 size: 230000000 36 format: ogg 37 type: AudioDocument trunk/test/fixtures/users.yml
r562 r1125 4 4 username: bert 5 5 name: Bert 6 password: cd3ebf2708df4d4c6cdb3d90e5e7456c6bc080c03e8cd4573a31671d15adff946 password: <%= User.digest_password("bert") %> 7 7 email: ernie@sesamestreet.com 8 8 ernie: … … 10 10 username: ernie 11 11 name: Ernie 12 password: 32987c4b7a9fb90e729425fc63e7bb81ce2cb1f80140ddeddc968aa79a34e8f812 password: <%= User.digest_password("ernie") %> 13 13 email: bert@sesamestreet.com 14 14 elmo: … … 16 16 username: elmo 17 17 name: Elmo 18 password: a3d92ef00ea150ebe63e6010f733567b904c0e5a34e660096913a1f341f793c118 password: <%= User.digest_password("elmo") %> 19 19 email: elmo@sesamestreet.com 20 confirmed: true trunk/test/functional/document_api_test.rb
r1122 r1125 5 5 6 6 class DocumentControllerApiTest < Test::Unit::TestCase 7 fixtures :documents, :users 8 7 9 def setup 8 10 @controller = DocumentController.new 9 11 @request = ActionController::TestRequest.new 10 12 @response = ActionController::TestResponse.new 13 14 @user = users(:elmo) 15 @user_key = "#{@user.username}/#{@user.username}" 16 @document = Author.find(@user.id).documents.first 17 assert_not_nil @document 11 18 end 12 19 13 20 def test_create 14 result = invoke :create 15 assert_equal nil, result 21 expected_name = "Test" 22 id = invoke :create, @user_key, expected_name 23 assert_not_nil id 24 document = Document.find(id) 16 25 end 17 26 18 def test_get_upload_url 19 result = invoke :get_upload_url 20 assert_equal nil, result 27 def test_url 28 @document.upload = Upload.new 29 url = invoke :url, @user_key, @document.id 30 assert_equal @document.upload.public_url, url 21 31 end 22 32 23 def test_confirm _upload24 result = invoke :confirm_upload25 assert_equal nil, result33 def test_confirm 34 # result = invoke :confirm 35 # assert_equal nil, result 26 36 end 27 37 end trunk/test/functional/users_controller_test.rb
r562 r1125 24 24 25 25 def test_post_signin 26 post :signin, :user => {:username => "elmo", :password => " kermit"}26 post :signin, :user => {:username => "elmo", :password => "elmo"} 27 27 28 assert_redirected_to : controller => "documents"28 assert_redirected_to :action => "dashboard" 29 29 end 30 30 trunk/test/unit/mailer_test.rb
r656 r1125 16 16 @expected.set_content_type "text", "plain", { "charset" => CHARSET } 17 17 end 18 19 def test_default 20 21 end 18 22 19 23 private trunk/test/unit/user_test.rb
r562 r1125 20 20 user.email = "elmo at ruesesame dot fr" 21 21 assert !user.save 22 end 22 end 23 23 24 24 def test_password 25 25 user = users(:elmo) 26 26 password = user.password 27 user.password = "kermit"27 user.password = user.username 28 28 assert_equal password, user.password 29 29 end
