Class: Ucert::FrbTracker

Inherits:
Object
  • Object
show all
Includes:
Utils
Defined in:
lib/ucert/frb_tracker.rb

Overview

Class to handle FRB Services ERP user entitlement reprot

Instance Attribute Summary collapse

Instance Method Summary collapse

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_mapObject

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_userObject (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_reportObject

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_entitlementObject (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_groupObject (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

#verboseObject

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 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