module LdapLogin::Login def check_auth_with_ldap(login_uid,login_password) ldap_filter = "(uid=#{login_uid})" $nccu_ldap_connection.bind_as(:base => NccuLdapConnection::BASE,:filter => ldap_filter,:password=> login_password) rescue false end def ldap_login_auth(user,request,session,flash,params) login_password = params[:password] login_uid = params[:user_name] result = false ldap_filter = "(uid=#{login_uid})" login_flag = false NccuLdapConnection.establish if ($nccu_ldap_connection.bind rescue false) result = check_auth_with_ldap(login_uid,login_password) resource = user if result && login_password != '' # set_flash_message(:notice, :signed_in) if is_navigational_format? if (resource.nil?) puts "===LDAP passed local block... resource:#{resource.inspect}\n login_uid:#{login_uid}" flash.now.alert = I18n.t('devise.failure.ldap_pass_but_account_not_in_orbit') url = "new" url_method = 'render' else login_flag = true session[:user_id] = resource.id session[:login_referer] = nil if params[:referer_url] url = URI.parse(params[:referer_url]).path url_method = 'redirect_to' else url = admin_dashboards_path url_method = 'redirect_to' end end else puts "==password LDAP fail..." flash.now.alert = I18n.t('devise.failure.ldap_invalid') url = "new" url_method = 'render' end else puts "=LDAP fail..." flash.now.alert = I18n.t('devise.failure.ldap_connection_failed') url = "new" url_method = 'render' end [login_flag,session,flash,url,url_method] end end