Class: Ucert::WmsTracker

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

Overview

Class to handle Wms user account IDs

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 = {}) ⇒ WmsTracker

Instance default variables



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/ucert/wms_tracker.rb', line 18

def initialize (params ={})

   @verbose=params.fetch(:verbose, false)
   # Wms user entitlement report in CSV format, generated by Ryan Li's user table exportation script
   @wms_user_report = File.dirname(__FILE__)+"/../../data/wms/user_rpt.txt"
	# Wms user entitlement report in CSV format, generated by Ryan Li's user table exportation script
   @wms_role_report = File.dirname(__FILE__)+"/../../data/wms/role_rpt.txt"
	# WMS to AD user map file
	@file_user_map =  File.dirname(__FILE__)+"/../../data/wms/wms_user_map.txt"
	# Load the user map file to an instance variable (for performance gain)
	@wms_2_ad_user=load_known_user_map_from_file(@file_user_map)
	# Load the user entitlement instance variable from the native Wms user entitlement report
	@wms_user_entitlement=parse_wms_user_report(@wms_user_report)
	# Insert DN field into the user entitlement data structure
	insert_dn
	# Load the role entitlement instance variable from the native Wms role entitlement reportk=Uc
   @wms_role_entitlement=parse_wms_role_report(@wms_role_report)
	save!
end

Instance Attribute Details

#file_user_mapObject

Class constant variables



14
15
16
# File 'lib/ucert/wms_tracker.rb', line 14

def file_user_map
  @file_user_map
end

#verboseObject

Class constant variables



14
15
16
# File 'lib/ucert/wms_tracker.rb', line 14

def verbose
  @verbose
end

#wms_2_ad_userObject (readonly)

Returns the value of attribute wms_2_ad_user.



15
16
17
# File 'lib/ucert/wms_tracker.rb', line 15

def wms_2_ad_user
  @wms_2_ad_user
end

#wms_role_entitlementObject (readonly)

Returns the value of attribute wms_role_entitlement.



15
16
17
# File 'lib/ucert/wms_tracker.rb', line 15

def wms_role_entitlement
  @wms_role_entitlement
end

#wms_role_reportObject

Class constant variables



14
15
16
# File 'lib/ucert/wms_tracker.rb', line 14

def wms_role_report
  @wms_role_report
end

#wms_user_entitlementObject (readonly)

Returns the value of attribute wms_user_entitlement.



15
16
17
# File 'lib/ucert/wms_tracker.rb', line 15

def wms_user_entitlement
  @wms_user_entitlement
end

#wms_user_reportObject

Class constant variables



14
15
16
# File 'lib/ucert/wms_tracker.rb', line 14

def wms_user_report
  @wms_user_report
end

Instance Method Details

Print out the role entitlement table in plain text, to be imported into database



190
191
192
193
194
195
196
197
198
199
200
201
# File 'lib/ucert/wms_tracker.rb', line 190

def print_role_entitlement
  begin
    puts "Role Entitlement Report in Plain-text Format" if @verbose
    puts "ROLEID	| ROLENAME	| PRIVILEGE" if @verbose
    @wms_role_entitlement.each do |key, record|
        puts "#{key}|#{record['ROLENAME']}|#{record['PRV']}"
			# "\t#{record['VERSION']}\t#{record['FUNCTION']}"
    end
  rescue => ee
    puts "Exception on method #{__method__}: #{ee}"
  end
end

Print out the user entitlement table in plain text, to be imported into database



174
175
176
177
178
179
180
181
182
183
184
185
186
# File 'lib/ucert/wms_tracker.rb', line 174

def print_user_entitlement
	begin
     puts "user Entitlement Report in Plain-text Format" if @verbose
		@wms_user_entitlement.first[1].each {|k,v| print k,"|"} if @verbose
		puts if @verbose
		@wms_user_entitlement.values.map do |rec|
			rec.each {|k,v| print v,"|"}
			puts
     end
	rescue => ee
		puts "Exception on method #{__method__}: #{ee}"
	end
end

#save_wms_user_map!(file = @file_user_map) ⇒ Object Also known as: save!

Save the WMS to AD user mapping relation into the cache file



205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
# File 'lib/ucert/wms_tracker.rb', line 205

def save_wms_user_map!(file=@file_user_map)
	puts "Saving the known Wms to AD user mapping relationship to file: #{file} ..." if @verbose
	begin
		timestamp=Time.now
		f=File.open(file, 'w')
		f.write "# local Wms to AD user map file created by the #{self.class} class #{__method__} method at: #{timestamp}"
		@wms_user_entitlement.values.map do |record|
			key = record['USERNAME'].upcase + ':' + record['USERID'].upcase
			value = record['DN']
			f.write "\n#{key}|#{value}"
		end
		f.close
		puts "WMS to AD user map file is successfully saved to: #{file}" if @verbose
	rescue => ee
		puts "Exception on method #{__method__}: #{ee}" if @verbose
	end
end

#wms_search_by_dn(dn) ⇒ Object Also known as: search_by_dn

Search user entitlement record by AD DN



225
226
227
228
229
230
231
232
233
234
235
# File 'lib/ucert/wms_tracker.rb', line 225

def wms_search_by_dn (dn)
	begin
     puts "Perform search on the user entitlement record by AD DN: #{dn}" if @verbose
     @wms_user_entitlement.each do |key, val|
         return val if @wms_user_entitlement[key]['DN'].eql? dn
     end
		return nil
   rescue => ee
     puts "Exception on method #{__method__}: #{ee}"
   end
end