class LoginController < ApplicationController include MailrEngine before_filter :localize model :mail_pref def index if not(logged_user.nil?) redirect_to :controller =>"webmail", :action=>"index" else @login_user = MailPref.new end end def authenticate if mailpref = auth(@params['login_user']["email"], @params['login_user']["password"]) @session["mailr_id"] = mailpref.id if CDF::CONFIG[:crypt_session_pass] @session["mailr_wmp"] = @params['login_user']["password"] else # dont use crypt @session["mailr_wmp"] = @params['login_user']["password"] end if @session["return_to"] redirect_to_path(@session["return_to"]) @session["return_to"] = nil else redirect_to :action=>"index" end else @login_user = MailPref.new flash["error"] = _('Wrong email or password specified.') redirect_to :action => "index" end end def logout reset_session flash["status"] = _('User successfully logged out') redirect_to :action => "index" end private def auth(email, password) mailbox = IMAPMailbox.new begin mailbox.connect(email, password) rescue return nil end mailbox.disconnect mailbox = nil if mailpref = MailPref.find_by_email(email) return mailpref else # create record in database mailpref = MailPref.create("email" => email) return mailpref end end end