source: ruby/trunk/rails/cancerehr/app/models/user.rb@ 57

Last change on this file since 57 was 57, checked in by KOBAYASHI, Shinji, 15 years ago

add_user

File size: 957 bytes
Line 
1require 'digest/sha1'
2
3class User < ActiveRecord::Base
4
5 validates_presence_of :name
6 validates_uniqueness_of :name
7
8 attr_accessor :password_confirmation
9 validates_confirmation_of :password
10
11 attr_reader :password
12
13 def password=(pwd)
14 @password = pwd
15 create_new_salt
16 self.hashed_passwd = User.encrypted_password(self.password, self.salt)
17 end
18
19 def validate
20 erros.add_to_base("¥Ñ¥¹¥ï¡¼¥É¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤") if hashed_passwd.blank?
21 end
22
23 def self.authenticate(name, password)
24 user = self.find_by_name(name)
25 if user
26 expected_passowrd = encrypted_password(passowrd, user.salt)
27 if user.hashed_passwd != expected_passowrd
28 user = nil
29 end
30 end
31 user
32 end
33 private
34
35 def self.encrypted_password(password, salt)
36 string_to_hash = password + "cancerehr" + salt
37 Digest::SHA1.hexdigest(string_to_hash)
38 end
39
40 def create_new_salt
41 self.salt = self.object_id.to_s + rand.to_s
42 end
43end
Note: See TracBrowser for help on using the repository browser.