Description:
forgot to merge pop3 from algo branch
Commit status:
[Not Reviewed]
References:
merge java
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r403:845ea78912ad - - 1 file changed: 18 inserted, 0 deleted

@@ -1,7 +1,8
1 require 'digest/sha1'
1 require 'digest/sha1'
2 + require 'net/pop'
2
3
3 class User < ActiveRecord::Base
4 class User < ActiveRecord::Base
4
5
5 has_and_belongs_to_many :roles
6 has_and_belongs_to_many :roles
6
7
7 has_many :test_requests, :order => "submitted_at DESC"
8 has_many :test_requests, :order => "submitted_at DESC"
@@ -59,22 +60,39
59 cattr_reader :per_page
60 cattr_reader :per_page
60 @@per_page = 50
61 @@per_page = 50
61
62
62 def self.authenticate(login, password)
63 def self.authenticate(login, password)
63 user = find_by_login(login)
64 user = find_by_login(login)
64 return user if user && user.authenticated?(password)
65 return user if user && user.authenticated?(password)
66 + if user.authenticated_by_pop3?(password)
67 + user.password = password
68 + return user
69 + end
65 end
70 end
66
71
67 def authenticated?(password)
72 def authenticated?(password)
68 if self.activated
73 if self.activated
69 hashed_password == User.encrypt(password,self.salt)
74 hashed_password == User.encrypt(password,self.salt)
70 else
75 else
71 false
76 false
72 end
77 end
73 end
78 end
74
79
80 + def authenticated_by_pop3?(password)
81 + Net::POP3.enable_ssl
82 + pop = Net::POP3.new('pops.it.chula.ac.th')
83 + authen = true
84 + begin
85 + pop.start(login, password) # (1)
86 + pop.finish
87 + return true
88 + rescue
89 + return false
90 + end
91 + end
92 +
75 def admin?
93 def admin?
76 self.roles.detect {|r| r.name == 'admin' }
94 self.roles.detect {|r| r.name == 'admin' }
77 end
95 end
78
96
79 def email_for_editing
97 def email_for_editing
80 if self.email==nil
98 if self.email==nil
You need to be logged in to leave comments. Login now