Class: Ucert::FrbTracker
- Inherits:
-
Object
- Object
- Ucert::FrbTracker
- Includes:
- Utils
- Defined in:
- lib/ucert/frb_tracker.rb
Overview
Class to handle FRB Services ERP user entitlement reprot
Instance Attribute Summary collapse
-
#file_user_map ⇒ Object
Class constant variables.
-
#frb_2_ad_user ⇒ Object
readonly
Returns the value of attribute frb_2_ad_user.
-
#frb_subscriber_roles_report ⇒ Object
Class constant variables.
-
#frb_user_entitlement ⇒ Object
readonly
Returns the value of attribute frb_user_entitlement.
-
#known_service_group ⇒ Object
readonly
Returns the value of attribute known_service_group.
-
#verbose ⇒ Object
Class constant variables.
Instance Method Summary collapse
-
#frb_search_by_dn(dn) ⇒ Object
(also: #search_by_dn)
Search user entitlement r_index by AD DN.
-
#initialize(params = {}) ⇒ FrbTracker
constructor
Instance default variables.
-
#print_user_entitlement ⇒ Object
(also: #print_user)
Print out the user entitlement table in plain text, to be imported into database.
-
#user_name_2_index(name) ⇒ Object
frb_user_entitlement table lookup, input is “User Name”, output is the corresponding user r_index number.
Methods included from Utils
#file_2_list, #is_fqdn?, #is_ip?, #is_url?, #list_2_file, #load_known_user_map_from_file, #nslookup, #search_ad, #update_dn
Constructor Details
#initialize(params = {}) ⇒ FrbTracker
Instance default variables
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/ucert/frb_tracker.rb', line 19 def initialize (params ={}) @verbose=params.fetch(:verbose, false) # FRB Services 'Subscrber and Roles Report' in xlsx format. Generated by obtaining the PDF report from # the EUAC, then convert it into the EXcel workbook all-in-one sheet format by using online pdftables Services. # # Note 04/15/2016: # The subscriber report was generated by Joseph Loffredo # Note 11/20/2016 # The exported xlsx format table format change - shell shift one column to the left @frb_subscriber_roles_report = File.dirname(__FILE__)+"/../../data/frb/FRB_Subscriber_Roles_Report.xlsx" #@frb_subscriber_roles_report = File.dirname(__FILE__)+"/../../data/frb/SubscriberReport2015.xlsx" # frb to AD user map file @file_user_map = File.dirname(__FILE__)+"/../../data/frb/frb_user_map.txt" # Load the user map file to an instance variable (for performance gain) @frb_2_ad_user=load_known_user_map_from_file(@file_user_map) # Load the user entitlement instance variable from the most complete 'User Accout Function' FRB report # Fedline services are grouped into different packages: @known_service_group={"FedLine Web Services"=>true, "FedLine Advantage Services"=>true} @frb_user_entitlement=parse_frb_rpt (@frb_subscriber_roles_report) # Procedure to perform FRB to AD user matching, insert AD DN into @frb_user_entitlement data structure insert_dn save! end |
Instance Attribute Details
#file_user_map ⇒ Object
Class constant variables
15 16 17 |
# File 'lib/ucert/frb_tracker.rb', line 15 def file_user_map @file_user_map end |
#frb_2_ad_user ⇒ Object (readonly)
Returns the value of attribute frb_2_ad_user.
16 17 18 |
# File 'lib/ucert/frb_tracker.rb', line 16 def frb_2_ad_user @frb_2_ad_user end |
#frb_subscriber_roles_report ⇒ Object
Class constant variables
15 16 17 |
# File 'lib/ucert/frb_tracker.rb', line 15 def frb_subscriber_roles_report @frb_subscriber_roles_report end |
#frb_user_entitlement ⇒ Object (readonly)
Returns the value of attribute frb_user_entitlement.
16 17 18 |
# File 'lib/ucert/frb_tracker.rb', line 16 def frb_user_entitlement @frb_user_entitlement end |
#known_service_group ⇒ Object (readonly)
Returns the value of attribute known_service_group.
16 17 18 |
# File 'lib/ucert/frb_tracker.rb', line 16 def known_service_group @known_service_group end |
#verbose ⇒ Object
Class constant variables
15 16 17 |
# File 'lib/ucert/frb_tracker.rb', line 15 def verbose @verbose end |
Instance Method Details
#frb_search_by_dn(dn) ⇒ Object Also known as: search_by_dn
Search user entitlement r_index by AD DN
218 219 220 221 222 223 224 225 226 227 228 |
# File 'lib/ucert/frb_tracker.rb', line 218 def frb_search_by_dn (dn) begin puts "Perform search on the user entitlement r_index by AD DN: #{dn}" if @verbose @frb_user_entitlement.each do |key, val| return val if @frb_user_entitlement[key]['DN'].eql? dn end return nil rescue => ee puts "Exception on method #{__method__}: #{ee}" end end |
#print_user_entitlement ⇒ Object Also known as: print_user
Print out the user entitlement table in plain text, to be imported into database
182 183 184 185 186 187 188 189 190 191 192 193 194 |
# File 'lib/ucert/frb_tracker.rb', line 182 def print_user_entitlement begin puts "user Entitlement Report in Plain-text Format" if @verbose @frb_user_entitlement.first[1].each {|k,v| print k,"|"} if @verbose puts if @verbose @frb_user_entitlement.values.map do |rec| rec.each {|k,v| print v,"|"} puts end rescue => ee puts "Exception on method #{__method__}: #{ee}" end end |
#user_name_2_index(name) ⇒ Object
frb_user_entitlement table lookup, input is “User Name”, output is the corresponding user r_index number
164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 |
# File 'lib/ucert/frb_tracker.rb', line 164 def user_name_2_index (name) begin raise "Invalid user name: #{name}" if name.nil? or name.empty? puts "Perform Record number lookup for user name: #{name}" if @verbose @frb_user_entitlement.each do |key,val| next if val['User Name'].nil? or val['User Name'].empty? if val['User Name'].upcase == name.upcase puts "User record number found: #{key}" if @verbose return key end end return nil rescue => ee puts "Exception on method #{__method__}: #{ee}" end end |