orbit-4-2/app/controllers/sessions_controller.rb

66 lines
2.0 KiB
Ruby

# encoding: utf-8
class SessionsController < Devise::SessionsController
prepend_before_filter :require_no_authentication, :only => [ :new, :create ]
require 'net/http'
require 'uri'
def create
@user_id = params[:user][:user_id]
@user_password = params[:user][:password]
if @user_id == 'rulingcom'
resource = User.first(conditions:{user_id: @user_id})
if !resource.blank? and resource.valid_password?(@user_password)
resource_name = resource.class.to_s.downcase
sign_in(resource_name, resource)
redirect_to after_sign_in_path_for(resource)
elsif !resource.valid_password?(@user_password)
flash[:error] = "密碼錯誤<br />password Local fail"
redirect_to :root
else
flash[:error] = "很抱歉,您無此權限或帳號登入本站,請洽本站管理員<br />Sorry, you don't have the account or authority to login. Please contact the website administrator."
redirect_to :root
end
else
uri = URI('http://www.fgu.edu.tw/cgi-bin/check_intrant.pl')
response = Net::HTTP.post_form(uri, 'username' => @user_id, 'password' => params[:user][:password])
@response = response.body
if @response.include?("username=#{@user_id}")
resource = User.first(conditions:{user_id: @user_id})
if !resource.blank?
resource_name = resource.class.to_s.downcase
sign_in(resource_name, resource)
redirect_to after_sign_in_path_for(resource)
else
flash[:error] = "很抱歉,您無此權限或帳號登入本站,請洽本站管理員<br />Sorry, you don't have the account or authority to login. Please contact the website administrator."
redirect_to :root
end
else
flash[:error] = "很抱歉,您無此權限或帳號登入本站,請洽本站管理員<br />Sorry, you don't have the account or authority to login. Please contact the website administrator."
redirect_to :root
end
end
end
end