Module: Tapjoy::LDAP::API::Group

Extended by:
Memoist
Defined in:
lib/tapjoy/ldap/api/group.rb

Overview

API methods for managing LDAP Groups

Class Method Summary collapse

Class Method Details

.create(group_name, group_type) ⇒ Object



7
8
9
10
11
12
# File 'lib/tapjoy/ldap/api/group.rb', line 7

def create(group_name, group_type)
  Tapjoy::LDAP.client.add(
    distinguished_name(group_name),
    ldap_attr(group_name, group_type)
  )
end

.destroy(group_name) ⇒ Object



14
15
16
# File 'lib/tapjoy/ldap/api/group.rb', line 14

def destroy(group_name)
  Tapjoy::LDAP.client.delete(distinguished_name(group_name))
end

.indexObject



25
26
27
# File 'lib/tapjoy/ldap/api/group.rb', line 25

def index
  Tapjoy::LDAP.client.search('*', group_object_class_filter)
end

.lookup_id(groupname) ⇒ Object

Lookup GID for the given group



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/tapjoy/ldap/api/group.rb', line 30

def lookup_id(groupname)
  gidnumber = []

  cn_filter = Net::LDAP::Filter.eq('cn', groupname)
  filter    = Net::LDAP::Filter.join(
    group_object_class_filter, cn_filter)

  results = Tapjoy::LDAP.client.search(['gidNumber'], filter)

  # Make sure we return one, and only one group
  if results.size < 1
    abort('Group not found')
  elsif results.size > 1
    abort('Multiple groups found. Please narrow your search.')
  end

  results.each { |result| gidnumber = result.gidnumber }
  return gidnumber[0]
end

.update(group_name, username, operation) ⇒ Object



18
19
20
21
22
23
# File 'lib/tapjoy/ldap/api/group.rb', line 18

def update(group_name, username, operation)
  Tapjoy::LDAP.client.modify(
    distinguished_name(group_name),
    [[operation, :memberUid, username]]
  )
end