class UCMT::Users
Attributes
data[R]
Public Class Methods
new(data)
click to toggle source
# File lib/ucmt/users.rb, line 9 def initialize(data) @data = data end
Public Instance Methods
edit(options)
click to toggle source
# File lib/ucmt/users.rb, line 24 def edit(options) name = options[:name] # ensure that user is not removed (users["remove"] || []).delete_if { |u| u["name"] == name } users["add"] ||= [] user = users["add"].find { |u| u["name"] == name } if !user user = { "name" => name } users["add"] << user end handle_option(:fullname, user, options) handle_option(:uid, user, options) handle_option(:primary_group, user, options) handle_option(:shell, user, options) handle_option(:home, user, options) # TODO: PASSWORD # TODO: groups end
ignore(name)
click to toggle source
# File lib/ucmt/users.rb, line 13 def ignore(name) (users["add"] || []).delete_if { |u| u["name"] == name } (users["remove"] || []).delete_if { |u| u["name"] == name } end
list()
click to toggle source
# File lib/ucmt/users.rb, line 46 def list puts "Users to add/edit:" to_add = (users["add"] || []).map {|u| u["name"]} puts to_add.to_yaml unless to_add.empty? puts "\nUsers to remove:" to_remove = (users["remove"] || []).map {|u| u["name"]} puts to_remove.to_yaml unless to_remove.empty? puts end
remove(name)
click to toggle source
# File lib/ucmt/users.rb, line 18 def remove(name) (users["add"] || []).delete_if { |u| u["name"] == name } users["remove"] ||= [] users["remove"] << { "name" => name } end
show(name)
click to toggle source
# File lib/ucmt/users.rb, line 56 def show(name) remove = (users["remove"] || []).find { |u| u["name"] == name } if remove puts "User #{name} will be removed." return end add = (users["add"] || []).find { |u| u["name"] == name } if !add puts "User #{name} won't be modified." return end puts "User #{name} will have following settings:" puts add.to_yaml end
Private Instance Methods
handle_option(key, user, options)
click to toggle source
# File lib/ucmt/users.rb, line 74 def handle_option(key, user, options) if options[:"no_#{key}"] user.delete(key.to_s) elsif options[key] user[key.to_s] = options[key] end end
users()
click to toggle source
# File lib/ucmt/users.rb, line 82 def users return @users if @users @data["local_users"] ||= {} @users = @data["local_users"] end