fgu login sso
This commit is contained in:
		
							parent
							
								
									d5dc3ef793
								
							
						
					
					
						commit
						f6a1070b78
					
				| 
						 | 
					@ -0,0 +1,59 @@
 | 
				
			||||||
 | 
					# 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]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if @user_id == 'rulingcom'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      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
 | 
				
			||||||
| 
						 | 
					@ -3,6 +3,8 @@ Orbit::Application.routes.draw do
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  devise_for :users,:controllers => {:sessions => 'sessions'}
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
  devise_for :users do
 | 
					  devise_for :users do
 | 
				
			||||||
    match "/users_passwd" => "desktop/registrations#update", :as => :users_passwd, :via => :put
 | 
					    match "/users_passwd" => "desktop/registrations#update", :as => :users_passwd, :via => :put
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue