class Wright::Provider::User::DarwinDirectoryService
Darwin DirectoryService user provider. Used as a provider for {Resource::User} on OS X systems.
Private Instance Methods
create_user()
click to toggle source
# File lib/wright/provider/user/darwin_directory_service.rb, line 12 def create_user attributes = default_attributes.merge(resource_attributes) attributes.each do |k, v| args = dscl_args(:create, k, v) exec_or_fail('dscl', args, "cannot create user '#{user_name}'") end end
default_attributes()
click to toggle source
# File lib/wright/provider/user/darwin_directory_service.rb, line 37 def default_attributes uid_range = system_user? ? 1...500 : 500...1000 { 'UniqueID' => Wright::Util::User.next_free_uid(uid_range), 'UserShell' => '/bin/bash', 'RealName' => '', 'NFSHomeDirectory' => "/Users/#{user_name}", 'PrimaryGroupID' => Wright::Util::User.group_to_gid('staff'), 'Password' => '*' } end
dscl_args(cmd, key, value)
click to toggle source
# File lib/wright/provider/user/darwin_directory_service.rb, line 33 def dscl_args(cmd, key, value) %W(. -#{cmd} /Users/#{user_name} #{key} #{value}) end
remove_user()
click to toggle source
# File lib/wright/provider/user/darwin_directory_service.rb, line 27 def remove_user exec_or_fail('dscl', %W(. -delete /Users/#{user_name}), "cannot remove user '#{user_name}'") end
resource_attributes()
click to toggle source
# File lib/wright/provider/user/darwin_directory_service.rb, line 49 def resource_attributes gid = Wright::Util::User.group_to_gid(primary_group) { 'UniqueID' => uid, 'UserShell' => shell, 'RealName' => full_name, 'NFSHomeDirectory' => home, 'PrimaryGroupID' => gid }.reject { |_k, v| v.nil? } end
update_user()
click to toggle source
# File lib/wright/provider/user/darwin_directory_service.rb, line 20 def update_user resource_attributes.each do |k, v| args = dscl_args(:create, k, v) exec_or_fail('dscl', args, "cannot create user '#{user_name}'") end end