Fix login and label. Check sync jobs and update info function.
This commit is contained in:
parent
c062b43069
commit
3480fa2545
|
@ -15,10 +15,10 @@ class SessionsController < Devise::SessionsController
|
||||||
if $nccu_ldap_connection.bind
|
if $nccu_ldap_connection.bind
|
||||||
logger.info "=LDAP Binded password ok..."
|
logger.info "=LDAP Binded password ok..."
|
||||||
result =check_auth_with_ldap(login_uid,login_password)
|
result =check_auth_with_ldap(login_uid,login_password)
|
||||||
if result && login_password!=''
|
if result #&& login_password!=''
|
||||||
logger.info "==LDAP password passed..."
|
logger.info "==LDAP password passed..."
|
||||||
nccu_id = get_nccu_id_from_mid_site(login_uid)
|
nccu_id = get_nccu_id_from_mid_site(login_uid)
|
||||||
resource = nccu_id.nil? ? nil : (User.first(conditions:{ nccu_id: nccu_id }))
|
resource = nccu_id.nil? ? nil : (User.first(conditions:{ nccu_ldap_uid: nccu_id }))
|
||||||
# resource = env['warden'].authenticate!(:check_nccu_ldap)
|
# resource = env['warden'].authenticate!(:check_nccu_ldap)
|
||||||
# resource = warden.authenticate!(:scope => resource_name, :recall => "#{controller_path}#new")
|
# resource = warden.authenticate!(:scope => resource_name, :recall => "#{controller_path}#new")
|
||||||
set_flash_message(:notice, :signed_in) if is_navigational_format?
|
set_flash_message(:notice, :signed_in) if is_navigational_format?
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
class BackupServer
|
||||||
|
@queue = :high
|
||||||
|
|
||||||
|
def self.perform()
|
||||||
|
CronMail.time_check("Going to backup Orbit").deliver
|
||||||
|
# %x[touch #{Rails.root}/tmp/restart]
|
||||||
|
end
|
||||||
|
end
|
|
@ -1,8 +0,0 @@
|
||||||
class RestartServer
|
|
||||||
@queue = :high
|
|
||||||
|
|
||||||
def self.perform()
|
|
||||||
CronMail.time_check("Going to restarting Orbit").deliver
|
|
||||||
%x[touch #{Rails.root}/tmp/restart]
|
|
||||||
end
|
|
||||||
end
|
|
|
@ -4,6 +4,7 @@ class SyncDb
|
||||||
|
|
||||||
def self.perform()
|
def self.perform()
|
||||||
self.start_sync
|
self.start_sync
|
||||||
|
self.set_admin
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.start_sync
|
def self.start_sync
|
||||||
|
@ -12,4 +13,11 @@ class SyncDb
|
||||||
%x[rake #{task} --trace >> #{Rails.root}/log/rake.log]
|
%x[rake #{task} --trace >> #{Rails.root}/log/rake.log]
|
||||||
puts "SyncDb Synced"
|
puts "SyncDb Synced"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def self.set_admin
|
||||||
|
task = 'mid_site:install_admin'
|
||||||
|
args = []
|
||||||
|
%x[rake #{task} --trace >> #{Rails.root}/log/rake.log]
|
||||||
|
puts "Admin done"
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -11,12 +11,12 @@
|
||||||
<p class="alert hide">You need to sign in or sign up before continuing.</p>
|
<p class="alert hide">You need to sign in or sign up before continuing.</p>
|
||||||
<div class="main">
|
<div class="main">
|
||||||
<div class="control-group clear">
|
<div class="control-group clear">
|
||||||
<%= f.label :nccu_ldap_uid %>
|
<%= f.label :nccu_ldap_uid ,t("nccu_c.nccu_ldap_uid")%>
|
||||||
<%= f.text_field :nccu_ldap_uid, :placeholder => t("nccu"), :style => "width: 330px;" %>
|
<%= f.text_field :nccu_ldap_uid, :placeholder => t("nccu_c.nccu_ldap_uid"), :style => "width: 330px;" %>
|
||||||
<span class="help-inline">Please correct the error</span>
|
<span class="help-inline">Please correct the error</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group clear">
|
<div class="control-group clear">
|
||||||
<%= f.label :password %>
|
<%= f.label :password,t("password") %>
|
||||||
<%= f.password_field :password, :placeholder => t(:dots), :style => "width: 330px;" %>
|
<%= f.password_field :password, :placeholder => t(:dots), :style => "width: 330px;" %>
|
||||||
<span class="help-inline">Please correct the error</span>
|
<span class="help-inline">Please correct the error</span>
|
||||||
<%= link_to t(:forgot_password), new_user_password_path, :class => 'pull-right forgot hide' %>
|
<%= link_to t(:forgot_password), new_user_password_path, :class => 'pull-right forgot hide' %>
|
||||||
|
|
|
@ -27,7 +27,7 @@ zh_tw:
|
||||||
logout: 登出
|
logout: 登出
|
||||||
nccu: 政大
|
nccu: 政大
|
||||||
nccu_c:
|
nccu_c:
|
||||||
nccu_ldap_uid: 政大LDAP帳號
|
nccu_ldap_uid: iNCCU帳號
|
||||||
no_: "No"
|
no_: "No"
|
||||||
nothing: 無
|
nothing: 無
|
||||||
or_lower: 或
|
or_lower: 或
|
||||||
|
|
|
@ -10,11 +10,11 @@ nccu_daily_ldap_sync:
|
||||||
args:
|
args:
|
||||||
description: Sync NCCU middle site with Orbit for LDAP data
|
description: Sync NCCU middle site with Orbit for LDAP data
|
||||||
|
|
||||||
nccu_daily_restart:
|
nccu_daily_backup:
|
||||||
cron: * * */3 * * *
|
cron: * * 3 * * *
|
||||||
class: RestartServer
|
class: BackupServer
|
||||||
args:
|
args:
|
||||||
description: Restart NCCU site
|
description: Backup NCCU site
|
||||||
|
|
||||||
nccu_claender_sync:
|
nccu_claender_sync:
|
||||||
cron: * * [0,12] * * *
|
cron: * * [0,12] * * *
|
||||||
|
|
|
@ -35,18 +35,31 @@ namespace :mid_site do
|
||||||
#remove delete user sho has been deleted at remote first
|
#remove delete user sho has been deleted at remote first
|
||||||
local_need_remove = User.all.collect{|t| t.nccu_id rescue nil}.uniq.delete_if {|x| x == nil} - remote_list
|
local_need_remove = User.all.collect{|t| t.nccu_id rescue nil}.uniq.delete_if {|x| x == nil} - remote_list
|
||||||
desc "Going to delete User with IDs: #{local_need_remove.inspect}"
|
desc "Going to delete User with IDs: #{local_need_remove.inspect}"
|
||||||
local_need_remove = User.excludes(nccu_id: test_account_ldap_id ).collect{|t| t.nccu_id rescue nil}.uniq.delete_if {|x| x == nil} - remote_list
|
local_need_remove = User.excludes(nccu_ldap_uid: test_account_ldap_id ).collect{|t| t.nccu_ldap_uid rescue nil}.uniq.delete_if {|x| x == nil} - remote_list
|
||||||
desc "Deletion completed! \n"
|
desc "Deletion completed! \n"
|
||||||
|
|
||||||
#starting update user
|
#starting update user
|
||||||
desc "Updating and Newing Users"
|
desc "Updating and Newing Users"
|
||||||
|
|
||||||
users_from_mid.each do |mid_user|
|
users_from_mid.each do |mid_user|
|
||||||
ut_item = ut_data_from_mid.find{|ut_data| ut_data["ut_cod"] == mid_user["ut_cod"]}
|
ut_item = ut_data_from_mid.find{|ut_data| ut_data["ut_cod"] == mid_user["ut_cod"]}
|
||||||
up_ut_item = ut_data_from_mid.find{|ut_data| ut_data["ut_cod"] == mid_user["up_ut_cod"] }
|
up_ut_item = ut_data_from_mid.find{|ut_data| ut_data["ut_cod"] == mid_user["up_ut_cod"] }
|
||||||
local_user = User.find_or_initialize_by(:nccu_ldap_uid => mid_user["nccu_id"])
|
local_user = User.find_or_initialize_by(:nccu_ldap_uid => mid_user["nccu_id"])
|
||||||
AttributeValue.find_or_create_by( :user_id => local_user.id, :attribute_field_id => info_profile.attribute_fields[0].id, :key => 'first_name', :en => '', :zh_tw => (mid_user["psn_nam"].size <= 3? mid_user["psn_nam"][1..2]:mid_user["psn_nam"][2..-1]) )
|
users_name_from_mid = $mid_site_connection.query("SELECT eng_nam_l,eng_nam_f,chi_nam_l,chi_nam_f FROM rss_zzperson_view WHERE nccu_id =#{mid_user["nccu_id"]}").first
|
||||||
AttributeValue.find_or_create_by( :user_id => local_user.id, :attribute_field_id => info_profile.attribute_fields[1].id, :key => 'last_name', :en => '', :zh_tw => (mid_user["psn_nam"].size <= 3? mid_user["psn_nam"][0]:mid_user["psn_nam"][0..1]) )
|
|
||||||
|
|
||||||
|
first_name = AttributeValue.find_or_create_by( :user_id => local_user.id, :attribute_field_id => info_profile.attribute_fields[0].id, :key => 'first_name')
|
||||||
|
last_name = AttributeValue.find_or_create_by( :user_id => local_user.id, :attribute_field_id => info_profile.attribute_fields[1].id, :key => 'last_name')
|
||||||
|
|
||||||
|
first_name['en'] = users_name_from_mid["eng_nam_f"]
|
||||||
|
first_name['zh_tw'] = users_name_from_mid["chi_nam_f"]
|
||||||
|
first_name.save
|
||||||
|
|
||||||
|
last_name['en'] = users_name_from_mid["eng_nam_l"]
|
||||||
|
last_name['zh_tw'] = users_name_from_mid["chi_nam_l"]
|
||||||
|
last_name.save
|
||||||
|
|
||||||
|
|
||||||
user_model_mapper = Hash[:ut_cod => mid_user["ut_cod"] ,:up_ut_cod => mid_user["up_ut_cod"],:email => mid_user["eml_adr"],:off_tel_ext => mid_user["off_tel_ext"],:sta_num => mid_user["sta_num"]]
|
user_model_mapper = Hash[:ut_cod => mid_user["ut_cod"] ,:up_ut_cod => mid_user["up_ut_cod"],:email => mid_user["eml_adr"],:off_tel_ext => mid_user["off_tel_ext"],:sta_num => mid_user["sta_num"]]
|
||||||
user_model_mapper[:admin] = false
|
user_model_mapper[:admin] = false
|
||||||
local_user.update_attributes(user_model_mapper)
|
local_user.update_attributes(user_model_mapper)
|
||||||
|
@ -66,27 +79,29 @@ namespace :mid_site do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
task :install_admin => :before_instll_admin do
|
task :install_admin => :before_instll_admin do
|
||||||
admins_nccu_id = '2772'
|
admins_nccu_id = '2772'
|
||||||
info_profile = Info.first(conditions: {:key => 'profile'})
|
info_profile = Info.first(conditions: {:key => 'profile'})
|
||||||
|
|
||||||
# admin_role = Role.find_or_create_by( key: 'administrator')
|
|
||||||
# sub_role = admin_role.sub_roles.find_or_create_by(:key => 'computer_center')
|
|
||||||
|
|
||||||
user_from_mid = $mid_site_connection.query("SELECT #{attr_from_mid.join(',')} FROM rss_pautlst_ut WHERE posgrp_cod IN (#{officer_posgrp_code.join(',')}) AND nccu_id = '#{admins_nccu_id}' limit 1")
|
user_from_mid = $mid_site_connection.query("SELECT #{attr_from_mid.join(',')} FROM rss_pautlst_ut WHERE posgrp_cod IN (#{officer_posgrp_code.join(',')}) AND nccu_id = '#{admins_nccu_id}' limit 1")
|
||||||
admin_at_mid = user_from_mid.first
|
admin_at_mid = user_from_mid.first
|
||||||
user_first_name = admin_at_mid["psn_nam"].size > 3 ? admin_at_mid["psn_nam"][3..-1] : admin_at_mid["psn_nam"][1..-1]
|
|
||||||
user_last_name = admin_at_mid["psn_nam"].size > 3 ? admin_at_mid["psn_nam"][1..2] : admin_at_mid["psn_nam"][0]
|
|
||||||
local_user = User.find_or_initialize_by(:nccu_id => admin_at_mid["nccu_id"])
|
|
||||||
local_user.update_attributes(:email => admin_at_mid["eml_adr"], :admin => true, :role_id => admin_role.id, :sub_role_ids => [sub_role.id])
|
|
||||||
|
|
||||||
# local_user.role = admin_role
|
local_user = User.find_or_initialize_by(:nccu_ldap_uid => admin_at_mid["nccu_id"])
|
||||||
# local_user.sub_roles <<
|
local_user.update_attributes(:email => admin_at_mid["eml_adr"], :admin => true, :role_id => admin_role.id, :sub_role_ids => [sub_role.id])
|
||||||
AttributeValue.create( :user => local_user, :attribute_field => info_profile.attribute_fields[0], :key => 'first_name', :en => user_first_name, :zh_tw => user_first_name )
|
users_name_from_mid = $mid_site_connection.query("SELECT eng_nam_l,eng_nam_f,chi_nam_l,chi_nam_f FROM rss_zzperson_view WHERE nccu_id =#{admin_at_mid["nccu_id"]}").first
|
||||||
AttributeValue.create( :user_id => local_user.id, :attribute_field_id => info_profile.attribute_fields[1].id, :key => 'last_name', :en => user_last_name, :zh_tw => user_last_name )
|
|
||||||
#AttributeValue.create( :user_id => local_user.id, :attribute_field_id => sr_1_2.attribute_fields[0].id, :key => 'field', :en => 'Computer Architecture', :zh_tw => '計算機系統結構' )
|
first_name = AttributeValue.find_or_create_by( :user_id => local_user.id, :attribute_field_id => info_profile.attribute_fields[0].id, :key => 'first_name')
|
||||||
#AttributeValue.create( :user_id => local_user.id, :attribute_field_id => sr_1_2.attribute_fields[1].id, :key => 'department', :en => user_from_mid["ut_chi_m"], :zh_tw => user_from_mid["ut_chi_m"] )
|
last_name = AttributeValue.find_or_create_by( :user_id => local_user.id, :attribute_field_id => info_profile.attribute_fields[1].id, :key => 'last_name')
|
||||||
#AttributeValue.create( :user_id => local_user.id, :attribute_field_id => sr_1_2.attribute_fields[2].id, :key => 'speciality', :en => 'HSR', :zh_tw => '高鐵' )
|
|
||||||
|
first_name['en'] = users_name_from_mid["eng_nam_f"]
|
||||||
|
first_name['zh_tw'] = users_name_from_mid["chi_nam_f"]
|
||||||
|
first_name.save
|
||||||
|
|
||||||
|
last_name['en'] = users_name_from_mid["eng_nam_l"]
|
||||||
|
last_name['zh_tw'] = users_name_from_mid["chi_nam_l"]
|
||||||
|
last_name.save
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -100,7 +115,7 @@ namespace :mid_site do
|
||||||
admin_at_mid = user_from_mid.first
|
admin_at_mid = user_from_mid.first
|
||||||
user_first_name = admin_at_mid["psn_nam"].size > 3 ? admin_at_mid["psn_nam"][3..-1] : admin_at_mid["psn_nam"][1..-1]
|
user_first_name = admin_at_mid["psn_nam"].size > 3 ? admin_at_mid["psn_nam"][3..-1] : admin_at_mid["psn_nam"][1..-1]
|
||||||
user_last_name = admin_at_mid["psn_nam"].size > 3 ? admin_at_mid["psn_nam"][1..2] : admin_at_mid["psn_nam"][0]
|
user_last_name = admin_at_mid["psn_nam"].size > 3 ? admin_at_mid["psn_nam"][1..2] : admin_at_mid["psn_nam"][0]
|
||||||
local_user = User.find_or_initialize_by(:nccu_id => admin_at_mid["nccu_id"])
|
local_user = User.find_or_initialize_by(:nccu_ldap_uid => admin_at_mid["nccu_id"])
|
||||||
local_user.update_attributes(:email => admin_at_mid["eml_adr"], :admin => true, :role_id => admin_role.id, :sub_role_ids => [sub_role.id])
|
local_user.update_attributes(:email => admin_at_mid["eml_adr"], :admin => true, :role_id => admin_role.id, :sub_role_ids => [sub_role.id])
|
||||||
|
|
||||||
AttributeValue.create( :user_id => local_user.id, :attribute_field_id => info_profile.attribute_fields[0].id, :key => 'first_name', :en => user_first_name, :zh_tw => user_first_name )
|
AttributeValue.create( :user_id => local_user.id, :attribute_field_id => info_profile.attribute_fields[0].id, :key => 'first_name', :en => user_first_name, :zh_tw => user_first_name )
|
||||||
|
@ -141,7 +156,7 @@ namespace :mid_site do
|
||||||
end
|
end
|
||||||
|
|
||||||
task :clean_ldap_users => :environment do
|
task :clean_ldap_users => :environment do
|
||||||
User.where(:nccu_ldap_id.ne => nil ).each {|t| t.destroy}
|
User.where(:nccu_ldap_uid.ne => nil ).each {|t| t.destroy}
|
||||||
end
|
end
|
||||||
|
|
||||||
task :clean_admin_role_and_sub_role => :environment do
|
task :clean_admin_role_and_sub_role => :environment do
|
||||||
|
|
Loading…
Reference in New Issue