Last few days ago, I have modified the logic to log-in using email address and password. So that anyone don't need to remember another new password. Hope it might help you...
Written a news private method
def login_by_email(user_name, password) is_logged_in = false if (user_name.match(/.+\b@yourdomain.com$\b/i)) require 'net/imap' require 'openssl' client = Net::IMAP.new(host, port, true, nil, false) begin client.login(user_name, password) client.logout is_logged_in = true rescue Exception => error logger.error "Unable to log-in :: #{error.message}" end client.disconnect end return is_logged_in endOn line#3 I have checked the domain name to provide access for a specific domain. After that modified the authentication method following way:
def authenticate_for_staging_server authenticate_or_request_with_http_basic do |user_name, password| login_by_email(user_name, password) == true end end