Module: Utils::Cratususer

Included in:
Lita::Handlers::Activedirectory
Defined in:
lib/utils/cratususer.rb

Overview

piggy back on cratus for ldap work

Instance Method Summary collapse

Instance Method Details

#add_user_to_group(username, groupname) ⇒ Object



52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/utils/cratususer.rb', line 52

def add_user_to_group(username, groupname)
  cratus_connect
  begin
    user  = Cratus::User.new(username.to_s)
    group = Cratus::Group.new(groupname.to_s)
    raise 'InvalidUser' unless user
    raise 'InvalidGroup' unless group
    group.add_user(user)
  rescue
    nil
  end
end

#cratus_connectObject



4
5
6
7
8
9
10
11
12
13
14
15
16
# File 'lib/utils/cratususer.rb', line 4

def cratus_connect
  options = {
    host: config.host,
    port: config.port,
    user_basedn: config.user_basedn,
    group_basedn: config.group_basedn,
    basedn: config.basedn,
    username: config.username,
    password: config.password
  }
  Cratus.config.merge(options)
  Cratus::LDAP.connect
end

#disable_ldap_user(username) ⇒ Object



87
88
89
90
91
92
93
94
# File 'lib/utils/cratususer.rb', line 87

def disable_ldap_user(username)
  cratus_connect
  begin
    Cratus::User.new(username.to_s).disable
  rescue
    nil
  end
end

#enable_ldap_user(username) ⇒ Object



96
97
98
99
100
101
102
103
# File 'lib/utils/cratususer.rb', line 96

def enable_ldap_user(username)
  cratus_connect
  begin
    Cratus::User.new(username.to_s).enable
  rescue
    nil
  end
end

#group_mem_query(groupname) ⇒ Object



40
41
42
43
44
45
46
47
48
49
50
# File 'lib/utils/cratususer.rb', line 40

def group_mem_query(groupname)
  cratus_connect
  begin
    group = Cratus::Group.new(groupname.to_s)
    raise 'InvalidGroup' unless group
    members = group.members
    members.map(&:fullname).join("\n")
  rescue
    nil
  end
end

#remove_user_from_group(username, groupname) ⇒ Object



65
66
67
68
69
70
71
72
73
74
75
76
# File 'lib/utils/cratususer.rb', line 65

def remove_user_from_group(username, groupname)
  cratus_connect
  begin
    user  = Cratus::User.new(username.to_s)
    group = Cratus::Group.new(groupname.to_s)
    raise 'InvalidUser' unless user
    raise 'InvalidGroup' unless group
    group.remove_user(user)
  rescue
    nil
  end
end

#unlock_user(username) ⇒ Object



78
79
80
81
82
83
84
85
# File 'lib/utils/cratususer.rb', line 78

def unlock_user(username)
  cratus_connect
  begin
    Cratus::User.new(username.to_s).unlock
  rescue
    nil
  end
end

#user_groups_query(username) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
# File 'lib/utils/cratususer.rb', line 28

def user_groups_query(username)
  cratus_connect
  begin
    user = Cratus::User.new(username.to_s)
    raise 'NoGroups' unless user
    groups = user.member_of
    groups.map(&:name).join("\n")
  rescue
    nil
  end
end

#user_query(username) ⇒ Object



18
19
20
21
22
23
24
25
26
# File 'lib/utils/cratususer.rb', line 18

def user_query(username)
  cratus_connect
  user = begin
    Cratus::User.new(username.to_s)
  rescue
    nil
  end
  user ? user.locked? : user
end