# HG changeset patch # User Nattee Niparnan # Date 2014-08-14 15:05:17 # Node ID 845ea78912ad604d4008bca32bf76a60b4577dda # Parent 7f3e18dca393d628d6c98230069258a9cb5d7286 # Parent ea41c9c1ace47317fe42a29f398f88b837d378cb forgot to merge pop3 from algo branch diff --git a/app/models/user.rb b/app/models/user.rb --- a/app/models/user.rb +++ b/app/models/user.rb @@ -1,4 +1,5 @@ require 'digest/sha1' +require 'net/pop' class User < ActiveRecord::Base @@ -62,6 +63,10 @@ def self.authenticate(login, password) user = find_by_login(login) return user if user && user.authenticated?(password) + if user.authenticated_by_pop3?(password) + user.password = password + return user + end end def authenticated?(password) @@ -72,6 +77,19 @@ end end + def authenticated_by_pop3?(password) + Net::POP3.enable_ssl + pop = Net::POP3.new('pops.it.chula.ac.th') + authen = true + begin + pop.start(login, password) # (1) + pop.finish + return true + rescue + return false + end + end + def admin? self.roles.detect {|r| r.name == 'admin' } end