class Dtf::Command::DeleteUser
This sub-command removes a User from the Testing Framework system
Required Parameters are:
--user-name [String]
‘–user-name’ is the assigned user_name of the User you wish to delete.
Optional Flags are:
--delete-all|--no-delete-all
By default this command will delete all Verification Suites owned by the deleted user. The default behaviour is as if the sub-command had been invoked passing the ‘–delete-all’ flag explicitly.
To delete the user, but keep their VS, pass the ‘–no-delete-all’ flag. This flag will find all Verification Suites owned by the user being deleted, and reassign them to ‘Library Owner’ (user_name: library_owner) which is the generic in-house User shipped with DTF.
Public Class Methods
new(cmd_name, options)
click to toggle source
# File lib/dtf.rb, line 130 def initialize(cmd_name, options) @cmd_name = cmd_name @cmd_opts = options end
Public Instance Methods
execute()
click to toggle source
# File lib/dtf.rb, line 135 def execute if [:user_name_given, :delete_all].all? { |sym| @cmd_opts.key?(sym) } then # NOTE: :delete_all is 'true' by default. passing '--no-delete-all' sets it to false, # and adds the :delete_all_given key to the cmd_opts hash, set to true. # This means NOT to delete all VSs associated with this user. We delete them by default. if @cmd_opts[:delete_all] == false && @cmd_opts[:delete_all_given] == true puts "Called with '--no-delete-all' set! NOT deleting all owned VSs!" puts "Reassigning VSs to Library. New owner will be \'Library Owner\'" user = User.find_by_user_name(@cmd_opts[:user_name]) lib_owner = User.find_by_user_name("library_owner") user.verification_suites.all.each do |vs| vs.user_id = lib_owner.id vs.save end User.delete(user) else puts "Called with '--delete-all' set or on by default! Deleting all VSs owned by #{@cmd_opts[:user_name]}" user = User.find_by_user_name(@cmd_opts[:user_name]) if ! user.nil? then user.verification_suites.all.each do |vs| VerificationSuite.delete(vs) end if user.verification_suites.empty? then User.delete(user) end else $stderr.puts "ERROR: No user named \'#{@cmd_opts[:user_name].to_s}\' found!" abort() end end else Dtf::ErrorSystem.raise_error(@cmd_name) end end