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,17 +35,30 @@ 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 | ||||||
|  | @ -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