Module: Tapjoy::LDAP::Group

Defined in:
lib/tapjoy/ldap/group.rb,
lib/tapjoy/ldap/group/create.rb,
lib/tapjoy/ldap/group/delete.rb,
lib/tapjoy/ldap/group/add_user.rb,
lib/tapjoy/ldap/group/remove_user.rb

Overview

Entry point for all group subcommands

Defined Under Namespace

Classes: AddUser, Create, Delete, RemoveUser

Constant Summary collapse

SUB_COMMANDS =
%w(create delete add_user remove_user)

Class Method Summary collapse

Class Method Details

.add_userObject



65
66
67
68
# File 'lib/tapjoy/ldap/group.rb', line 65

def add_user
  group = Tapjoy::LDAP::Group::AddUser.new
  group.add_user
end

.commandsObject



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/tapjoy/ldap/group.rb', line 14

def commands
  Trollop::options do
    usage 'group [SUB_COMMAND] [options]'
    synopsis "\nThis object is used for group management\nAvailable subcommands are: #{SUB_COMMANDS}"

    stop_on SUB_COMMANDS
  end

  cmd = ARGV.shift

  case cmd
  when 'create', 'delete', 'add_user', 'remove_user'
    send(cmd) # call method with respective name
  else
    raise Tapjoy::LDAP::InvalidArgument
  end
end

.createObject

Create Group



54
55
56
57
# File 'lib/tapjoy/ldap/group.rb', line 54

def create
  group = Tapjoy::LDAP::Group::Create.new
  group.create
end

.deleteObject

Delete group



60
61
62
63
# File 'lib/tapjoy/ldap/group.rb', line 60

def delete
  group = Tapjoy::LDAP::Group::Delete.new
  group.delete
end

.lookup_id(groupname) ⇒ Object

Lookup GID for the given group



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

def lookup_id(groupname)
  gidnumber = []

  oc_filter = Net::LDAP::Filter.eq('objectclass', 'posixGroup')
  cn_filter = Net::LDAP::Filter.eq('cn', groupname)
  filter    = Net::LDAP::Filter.join(oc_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

.remove_userObject



70
71
72
73
# File 'lib/tapjoy/ldap/group.rb', line 70

def remove_user
  group = Tapjoy::LDAP::Group::RemoveUser.new
  group.remove_user
end