Compare commits

...

5 Commits

Author SHA1 Message Date
spen d65a6abbe8 ydu 2014-07-26 09:33:10 +08:00
spen 752a525778 fix login and announcement frontend field 2014-07-26 09:30:01 +08:00
rulingcom 2ea19aa230 fix login 2014-07-26 09:30:01 +08:00
spen 0db4afe643 Update announcement and change user account characters 2014-07-26 09:30:01 +08:00
spen e591499de5 ydu 2014-07-26 09:30:00 +08:00
7 changed files with 90 additions and 6 deletions

View File

@ -1,6 +1,8 @@
source 'http://rubygems.org'
gem 'rails', "~> 3.2.16"
gem 'savon', '~> 2.2.0'
gem "brakeman"
gem 'mime-types'

View File

@ -0,0 +1,82 @@
# encoding: utf-8
class SessionsController < Devise::SessionsController
prepend_before_filter :require_no_authentication, :only => [ :new, :create ]
require 'savon'
def create
@SYS_USER = "rulingcom"
@SYS_PASS = "pxm87912tkx"
@LDAP_USER = params[:user][:user_id]
@LDAP_PASS = params[:user][:password]
if @LDAP_USER == 'rulingcom'
resource = User.first(conditions:{user_id: @LDAP_USER})
if !resource.blank? and resource.valid_password?(@LDAP_PASS)
resource_name = resource.class.to_s.downcase
sign_in(resource_name, resource)
redirect_to after_sign_in_path_for(resource)
elsif !resource.valid_password?(@LDAP_PASS)
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
client = Savon.client(wsdl: 'http://ap.ydu.edu.tw/LDAP_WS/RulingcomDataService.asmx?wsdl',filters: [:SYS_USER, :SYS_PASS, :LDAP_USER, :LDAP_PASS])
client.operations
response = client.call(:login_chk, message: {
"SYS_USER" => @SYS_USER,
"SYS_PASS" => @SYS_PASS,
"LDAP_USER" => @LDAP_USER,
"LDAP_PASS" => @LDAP_PASS,
"User_IP" => request.remote_ip
})
@datas = response.body[:login_chk_response][:login_chk_result][:string]
if !@datas[0].blank? and ( @datas[0] == 'P' or @datas[0] == 'U' ) #使用者帳號回傳P單位帳號回傳U
resource = User.first(conditions:{user_id: @LDAP_USER})
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

View File

@ -89,7 +89,7 @@ class User
validates :user_id,
:presence => { :message => I18n.t("users.user_id_not_null") } ,
:length => {:minimum => 3, :maximum => 50, :message => I18n.t("users.user_id_length") },
:length => {:minimum => 2, :maximum => 50, :message => I18n.t("users.user_id_length") },
:uniqueness => true
scope :approval_pending, where(:approved => false)

View File

@ -1,6 +1,6 @@
#built-in-modules
gem 'archive', '0.0.1', :git => 'http://gitlab.tp.rulingcom.com/root/orbit-archive.git'
gem 'announcement', '0.0.1', :git => 'http://gitlab.tp.rulingcom.com/root/orbit-announcement.git'
gem 'announcement', '0.0.1', :git => 'http://gitlab.tp.rulingcom.com/root/orbit-announcement.git', :branch => 'ydu'
gem 'gallery', '0.0.1', :git => 'http://gitlab.tp.rulingcom.com/root/orbit-gallery.git'
gem 'member', '0.0.1', :git => 'http://gitlab.tp.rulingcom.com/root/orbit-member.git'
gem 'member_staff', '0.0.1', :git => 'http://gitlab.tp.rulingcom.com/root/orbit-memberstaff.git'
@ -15,4 +15,4 @@ gem 'personal_lab', '0.0.1', :git => 'http://gitlab.tp.rulingcom.com/root/orbit-
gem 'personal_patent', '0.0.1', :git => 'http://gitlab.tp.rulingcom.com/root/orbit-personalpatent.git'
gem 'personal_project', '0.0.1', :git => 'http://gitlab.tp.rulingcom.com/root/orbit-personalproject.git'
gem 'personal_research', '0.0.1', :git => 'http://gitlab.tp.rulingcom.com/root/orbit-personalresearch.git'
gem 'web_resource', '0.0.1', :git => 'http://gitlab.tp.rulingcom.com/root/orbit-webresource.git'
gem 'web_resource', '0.0.1', :git => 'http://gitlab.tp.rulingcom.com/root/orbit-webresource.git'

View File

@ -600,7 +600,7 @@ en:
user_id: User Account
user_id_note: Should be more than 3 characters and less than 50 characters
user_id_not_null: User account cannot be null
user_id_length: User account should be more than 3 characters
user_id_length: User account should be more than 2 characters
user_id_error: Someone already use that user account
user_basic_id_form: Account Info.
user_basic_data: Personal Profile

View File

@ -600,7 +600,7 @@ zh_tw:
user_id: 使用者帳號
user_id_note: 需介於3個字元至50個字元之間
user_id_not_null: 使用者帳號不能是空值
user_id_length: 使用者帳號至少需要3個字元
user_id_length: 使用者帳號至少需要2個字元
user_id_error: 該使用者帳號已被使用
user_basic_id_form: 帳號資料
user_basic_data: 個人資料

View File

@ -4,7 +4,7 @@ Orbit::Application.routes.draw do
# get "robots.txt" => 'robots#index'
devise_for :users, :controllers => { :registrations => "registrations", :passwords => 'passwords', :confirmations => 'confirmations' } do
devise_for :users, :controllers => {:sessions => 'sessions', :registrations => "registrations", :passwords => 'passwords', :confirmations => 'confirmations' } do
resources :passwords, :except => [:index, :show, :destroy]
match "/users_passwd" => "desktop/registrations#update", :as => :users_passwd, :via => :put
end