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

r746:1323b43e275a - - 1 file changed: 0 inserted, 48 deleted

@@ -66,71 +66,23
66 66 @@per_page = 50
67 67
68 68 def self.authenticate(login, password)
69 69 user = find_by_login(login)
70 70 if user
71 71 return user if user.authenticated?(password)
72 - if user.authenticated_by_cucas?(password) or user.authenticated_by_pop3?(password)
73 - user.password = password
74 - user.save
75 - return user
76 - end
77 72 end
78 73 end
79 74
80 75 def authenticated?(password)
81 76 if self.activated
82 77 hashed_password == User.encrypt(password,self.salt)
83 78 else
84 79 false
85 80 end
86 81 end
87 82
88 - def authenticated_by_pop3?(password)
89 - Net::POP3.enable_ssl
90 - pop = Net::POP3.new('pops.it.chula.ac.th')
91 - authen = true
92 - begin
93 - pop.start(login, password)
94 - pop.finish
95 - return true
96 - rescue
97 - return false
98 - end
99 - end
100 -
101 - def authenticated_by_cucas?(password)
102 - url = URI.parse('https://www.cas.chula.ac.th/cas/api/?q=studentAuthenticate')
103 - appid = '41508763e340d5858c00f8c1a0f5a2bb'
104 - appsecret ='d9cbb5863091dbe186fded85722a1e31'
105 - post_args = {
106 - 'appid' => appid,
107 - 'appsecret' => appsecret,
108 - 'username' => login,
109 - 'password' => password
110 - }
111 -
112 - #simple call
113 - begin
114 - http = Net::HTTP.new('www.cas.chula.ac.th', 443)
115 - http.use_ssl = true
116 - http.verify_mode = OpenSSL::SSL::VERIFY_NONE
117 - result = [ ]
118 - http.start do |http|
119 - req = Net::HTTP::Post.new('/cas/api/?q=studentAuthenticate')
120 - param = "appid=#{appid}&appsecret=#{appsecret}&username=#{login}&password=#{password}"
121 - resp = http.request(req,param)
122 - result = JSON.parse resp.body
123 - end
124 - return true if result["type"] == "beanStudent"
125 - rescue => e
126 - return false
127 - end
128 - return false
129 - end
130 -
131 83 def admin?
132 84 self.roles.detect {|r| r.name == 'admin' }
133 85 end
134 86
135 87 def email_for_editing
136 88 if self.email==nil
You need to be logged in to leave comments. Login now