Class: OpenDirectory::User
- Inherits:
-
Object
- Object
- OpenDirectory::User
- Defined in:
- lib/open_directory/user.rb
Class Method Summary collapse
- .active?(username) ⇒ Boolean
- .all ⇒ Object
- .auth(username, password) ⇒ Object
- .base_script(username, password = nil, params = []) ⇒ Object
- .create(username, password, params = []) ⇒ Object
- .delete(username) ⇒ Object
- .disable(username) ⇒ Object
- .enable(username) ⇒ Object
- .exists?(username) ⇒ Boolean
- .read(username, params = "") ⇒ Object
- .reset_credentials(username, password) ⇒ Object
- .update(username, password = nil, params = []) ⇒ Object
Class Method Details
.active?(username) ⇒ Boolean
64 65 66 67 |
# File 'lib/open_directory/user.rb', line 64 def self.active?(username) record = read(username, ["AuthenticationAuthority"]) !record["dsAttrTypeStandard:AuthenticationAuthority"].include? ";DisabledUser;" end |
.all ⇒ Object
3 4 5 6 |
# File 'lib/open_directory/user.rb', line 3 def self.all Dscl.generate("list","/Users") Dscl.run end |
.auth(username, password) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/open_directory/user.rb', line 22 def self.auth(username, password) params = [password] Dscl.generate("authonly", username, params) output = Dscl.run if output.empty? true else #!output[0].include?("eDSAuthFailed") false end end |
.base_script(username, password = nil, params = []) ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/open_directory/user.rb', line 34 def self.base_script(username, password=nil, params=[]) Dscl.generate("passwd", "/Users/#{username}", ["'#{password}'"]) unless password.nil? params.each do |key, value| if key == :Keywords value.each do |keyword| Dscl.generate("append", "/Users/#{username}", [key, "'#{keyword}'"]) end else Dscl.generate("create", "/Users/#{username}", [key, "'#{value}'"]) end end end |
.create(username, password, params = []) ⇒ Object
52 53 54 55 56 57 |
# File 'lib/open_directory/user.rb', line 52 def self.create(username, password, params=[]) Dscl.generate("create", "/Users/#{username}") Dscl.generate("passwd", "/Users/#{username}", ["'#{password}'"]) base_script(username, password, params) Dscl.run end |
.delete(username) ⇒ Object
59 60 61 62 |
# File 'lib/open_directory/user.rb', line 59 def self.delete(username) Dscl.generate("delete", "/Users/#{username}") Dscl.run end |
.disable(username) ⇒ Object
69 70 71 72 73 |
# File 'lib/open_directory/user.rb', line 69 def self.disable(username) params = %w(AuthenticationAuthority ';DisabledUser;') Dscl.generate("append", "/Users/#{username}", params) Dscl.run end |
.enable(username) ⇒ Object
75 76 77 78 79 80 81 |
# File 'lib/open_directory/user.rb', line 75 def self.enable(username) response = read(username, ["AuthenticationAuthority"]) response["dsAttrTypeStandard:AuthenticationAuthority"].delete(";DisabledUser;") params = ["dsAttrTypeStandard:AuthenticationAuthority", "'" + response["dsAttrTypeStandard:AuthenticationAuthority"].join(" ") + "'"] Dscl.generate("create", "/Users/#{username}", params) Dscl.run end |
.exists?(username) ⇒ Boolean
8 9 10 11 |
# File 'lib/open_directory/user.rb', line 8 def self.exists?(username) users = all users.include?(username) end |
.read(username, params = "") ⇒ Object
13 14 15 16 17 18 19 20 |
# File 'lib/open_directory/user.rb', line 13 def self.read(username, params="") if exists?(username) Dscl.generate("read", "/Users/#{username}",params) Dscl.run else false end end |