class ActiveDirectory::User
Public Class Methods
add(dn, attrs = {})
click to toggle source
# File lib/active_directory/user.rb, line 28 def self.add(dn, attrs = {}) #todo end
fields()
click to toggle source
# File lib/active_directory/user.rb, line 66 def self.fields { mail: "email", title: "title", sn: "last_name", givenName: "first_name", department: "department", employeeType: "employee_type", sAMAccountName: "username", l: "location", dn: "dn" } end
find_by_email(email, treebase=nil)
click to toggle source
# File lib/active_directory/user.rb, line 56 def self.find_by_email(email, treebase=nil) filter = "(&(objectCategory=person)(objectClass=user)(mail=#{email}))" results = Client.search(filter, self.fields.keys, treebase).first if results self.new(results) else false end end
find_by_username(username, treebase=nil)
click to toggle source
# File lib/active_directory/user.rb, line 46 def self.find_by_username(username, treebase=nil) filter = "(&(objectCategory=person)(objectClass=user)(samaccountname=#{username}))" results = Client.search(filter, self.fields.keys, treebase).first if results self.new(results) else false end end
Public Instance Methods
add_to_group(group_dn)
click to toggle source
# File lib/active_directory/user.rb, line 24 def add_to_group(group_dn) Client.add_attribute(group_dn, :member, @dn) end
change_password(old_password, new_password)
click to toggle source
# File lib/active_directory/user.rb, line 4 def change_password(old_password, new_password) result = Client.modify_unicode_pwd( @dn, Utils::microsoft_encode_password(old_password), Utils::microsoft_encode_password(new_password), ) end
groups()
click to toggle source
# File lib/active_directory/user.rb, line 32 def groups groups = [] filter = "(&(objectClass=group)(member:1.2.840.113556.1.4.1941:=#{@dn}))" results = Client.search(filter, Group.fields.keys) if results results.each do |r| groups << Group.new(r) end groups else false end end
password(new_password)
click to toggle source
# File lib/active_directory/user.rb, line 12 def password(new_password) result = Client.update_attribute( @dn, 'unicodePwd', Utils::microsoft_encode_password(new_password) ) end
remove_from_group(group_dn)
click to toggle source
# File lib/active_directory/user.rb, line 20 def remove_from_group(group_dn) Client.modify(group_dn.to_s, [[:delete, :member, @dn]]) end