ldap_tools 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6460a58ed64997c7d6a574bf144f1eb4001bb2b9
4
- data.tar.gz: 582aedaabe2033a5d36ab53b4e3deff54b443524
3
+ metadata.gz: 87ea99ec2ff3fdf48a25f53868073540168f34fe
4
+ data.tar.gz: 918dd42c64afeb5ceec56935fc72c34ff57439fa
5
5
  SHA512:
6
- metadata.gz: e0522e4fc808a6de38d362efc935892bfabd818ff1f85e0f7cdee8852ec4156b863c9d84427ba6881c250174d456eac957b1eaabeb62a8966c1f7fb4ccfaba5a
7
- data.tar.gz: df556c80555d45698c2de525bad47a135cbb6dea1013088149f68c9c70a9de016a2423f7a250a85060b460c62c9945abb538b3cb9425d2bcc1243a859fcd7052
6
+ metadata.gz: 208965f680e094e1afc62ee1a2b5c58f2d5a23e1afe11a1491beadea8dcdb21ab72bbfadefe0a5b763dee16b081bf36a439fd1d48bb0977456a55031bb8a3e14
7
+ data.tar.gz: b52b0151ad7114e7e36ccab2347b43ac7e340ac784ca2d654ecdb19da64c27632403eb37012fbae006ad7f8045011fbd8ef59ab1cc932f7a5a24670033649bd2
@@ -39,20 +39,20 @@ module Tapjoy
39
39
  end
40
40
 
41
41
  # Add objects to LDAP
42
- def add(dn, attributes)
43
- @conn.add(:dn => dn, :attributes => attributes)
42
+ def add(distinguished_name, attributes)
43
+ @conn.add(:dn => distinguished_name, :attributes => attributes)
44
44
  return return_result
45
45
  end
46
46
 
47
47
  # Modify objects in LDAP
48
- def modify(dn, operations)
49
- @conn.modify(:dn => dn, :operations => operations)
48
+ def modify(distinguished_name, operations)
49
+ @conn.modify(:dn => distinguished_name, :operations => operations)
50
50
  return return_result
51
51
  end
52
52
 
53
53
  # Delete objects from LDAP
54
- def delete(dn)
55
- @conn.delete(:dn => dn)
54
+ def delete(distinguished_name)
55
+ @conn.delete(:dn => distinguished_name)
56
56
  return return_result
57
57
  end
58
58
 
@@ -4,7 +4,7 @@ module Tapjoy
4
4
  # Add existing user to existing group
5
5
  class AddUser
6
6
  def add_user
7
- puts Tapjoy::LDAP::client.modify(dn, operations)
7
+ puts Tapjoy::LDAP::client.modify(distinguished_name, operations)
8
8
  end
9
9
 
10
10
  private
@@ -19,8 +19,8 @@ module Tapjoy
19
19
  end
20
20
  end
21
21
 
22
- def dn
23
- @dn ||= "cn=#{opts[:group]},ou=Group,#{Tapjoy::LDAP::client.basedn}"
22
+ def distinguished_name
23
+ @distinguished_name ||= "cn=#{opts[:group]},ou=Group,#{Tapjoy::LDAP::client.basedn}"
24
24
  end
25
25
 
26
26
  def operations
@@ -7,7 +7,7 @@ module Tapjoy
7
7
  # Check for errors
8
8
  Trollop::die :type, "argument must be 'user' or 'service'" unless ['user', 'service'].include?opts[:type]
9
9
 
10
- puts Tapjoy::LDAP::client.add(dn, ldap_attr)
10
+ puts Tapjoy::LDAP::client.add(distinguished_name, ldap_attr)
11
11
  end
12
12
 
13
13
  private
@@ -23,8 +23,8 @@ module Tapjoy
23
23
  end
24
24
  end
25
25
 
26
- def dn
27
- @dn ||= "cn=#{opts[:name]},ou=Group,#{Tapjoy::LDAP::client.basedn}"
26
+ def distinguished_name
27
+ @distinguished_name ||= "cn=#{opts[:name]},ou=Group,#{Tapjoy::LDAP::client.basedn}"
28
28
  end
29
29
 
30
30
  def ldap_attr
@@ -5,7 +5,7 @@ module Tapjoy
5
5
  class Delete
6
6
  def delete
7
7
  confirm unless opts[:force]
8
- puts Tapjoy::LDAP::client.delete(dn)
8
+ puts Tapjoy::LDAP::client.delete(distinguished_name)
9
9
  end
10
10
 
11
11
  private
@@ -20,16 +20,16 @@ module Tapjoy
20
20
  end
21
21
  end
22
22
 
23
- def dn
24
- @dn ||= "cn=#{opts[:name]},ou=Group,#{Tapjoy::LDAP::client.basedn}"
23
+ def distinguished_name
24
+ @distinguished_name ||= "cn=#{opts[:name]},ou=Group,#{Tapjoy::LDAP::client.basedn}"
25
25
  end
26
26
 
27
27
  def confirm
28
- puts "Confirm that you want to delete group #{opts[:group]} (yes/no)"
28
+ puts "Confirm that you want to delete group #{opts[:name]} (yes/no)"
29
29
  print '>'
30
30
  confirm = STDIN.gets.chomp().downcase
31
31
  unless confirm.eql?('y') || confirm.eql?('yes')
32
- abort("Deletion of #{ opts[:group] } aborted")
32
+ abort("Deletion of #{ opts[:name] } aborted")
33
33
  end
34
34
  end
35
35
  end
@@ -5,46 +5,23 @@ module Tapjoy
5
5
  module User
6
6
  # Create LDAP user
7
7
  class Create
8
- def opts
9
- @opts ||= Trollop::options do
10
- # Set help message
11
- usage 'user create [options]'
12
- synopsis "\nThis command is for creating new LDAP users"
13
-
14
- # Username is two arguments
15
- # Trollop will accept more, but we will only parse two later
16
- # TODO: support given names that include a space
17
- opt :user, "Specify user's first and last name", type: :strings, required: true
18
-
19
- # Groupname is a single string, for primary group setting
20
- opt :group, 'Specify name of primary group', type: :string, required: true
21
- opt :type, 'Specfy if this is a user or service account', type: :string, default: 'user'
22
- end
23
- end
24
-
25
- def uidnumber
26
- @uidnumber ||= Tapjoy::LDAP::client.get_max_id('user', opts[:type])
27
- end
28
-
29
- def gidnumber
30
- @gidnumber ||= Tapjoy::LDAP::Group.lookup_id(opts[:group])
31
- end
32
-
33
8
  def create
34
9
  # Check for errors
35
10
  Trollop::die :user, 'argument count must be two' if opts[:user].size != 2
36
11
  Trollop::die :type, "argument must be 'user' or 'service'" unless ['user', 'service'].include?opts[:type]
37
12
 
38
- puts Tapjoy::LDAP::client.add(dn, ldap_attr)
13
+ puts Tapjoy::LDAP::client.add(distinguished_name, ldap_attr)
39
14
  end
40
15
 
41
16
  private
42
17
  def create_password
43
18
  # Super-Salt: bad for blood pressure, good for secure passwords
44
19
  # We can get away with this, since we're not planning on using passwords
45
- salt = SecureRandom.base64(32)
46
- password = SecureRandom.base64(64)
47
- password = Digest::SHA1.base64digest(password + salt)
20
+ @create_password ||= begin
21
+ salt = SecureRandom.base64(32)
22
+ password = SecureRandom.base64(64)
23
+ password = Digest::SHA1.base64digest(password + salt)
24
+ end
48
25
  end
49
26
 
50
27
  def username
@@ -68,22 +45,47 @@ module Tapjoy
68
45
  }
69
46
  end
70
47
 
71
- def dn
72
- @dn ||= "uid=#{username},ou=#{ou},#{Tapjoy::LDAP::client.basedn}"
48
+ def distinguished_name
49
+ @distinguished_name ||= "uid=#{username},ou=#{organizational_unit},#{Tapjoy::LDAP::client.basedn}"
73
50
  end
74
51
 
75
- def ou
76
- @ou ||= begin
52
+ def organizational_unit
53
+ @organizational_unit ||= begin
77
54
  case opts[:type]
78
55
  when 'user'
79
- ou = 'People'
56
+ 'People'
80
57
  when 'service'
81
- ou = Tapjoy::LDAP::client.service_ou
58
+ Tapjoy::LDAP::client.service_ou
82
59
  else
83
60
  puts 'Unknown type'
84
61
  end
85
62
  end
86
63
  end
64
+
65
+ def uidnumber
66
+ @uidnumber ||= Tapjoy::LDAP::client.get_max_id('user', opts[:type])
67
+ end
68
+
69
+ def gidnumber
70
+ @gidnumber ||= Tapjoy::LDAP::Group.lookup_id(opts[:group])
71
+ end
72
+
73
+ def opts
74
+ @opts ||= Trollop::options do
75
+ # Set help message
76
+ usage 'user create [options]'
77
+ synopsis "\nThis command is for creating new LDAP users"
78
+
79
+ # Username is two arguments
80
+ # Trollop will accept more, but we will only parse two later
81
+ # TODO: support given names that include a space
82
+ opt :user, "Specify user's first and last name", type: :strings, required: true
83
+
84
+ # Groupname is a single string, for primary group setting
85
+ opt :group, 'Specify name of primary group', type: :string, required: true
86
+ opt :type, 'Specfy if this is a user or service account', type: :string, default: 'user'
87
+ end
88
+ end
87
89
  end
88
90
  end
89
91
  end
@@ -3,33 +3,49 @@ module Tapjoy
3
3
  module User
4
4
  # Delete LDAP user
5
5
  class Delete
6
+ def delete
7
+ confirm unless opts[:force]
8
+ puts Tapjoy::LDAP::client.delete(distinguished_name)
9
+ end
10
+
11
+ private
6
12
  def opts
7
13
  @opts ||= Trollop::options do
8
14
  # Set help message
9
15
  usage "user delete [options]"
10
16
 
11
- opt(:user, 'Specify username', :type => :string, :required => true)
12
- opt(:force, 'Force delete')
17
+ opt :user, 'Specify username', type: :string, required: true
18
+ opt :force, 'Force delete'
19
+ opt :type, 'Specfy if this is a user or service account', type: :string, default: 'user'
13
20
  end
14
21
  end
15
22
 
16
- def delete
17
- prompt = '>'
18
- dn = "uid=#{ opts[:user] },ou=People,#{ Tapjoy::LDAP::client.basedn }"
19
- unless opts[:force]
20
- puts "Confirm that you want to delete user: #{ opts[:user] }"
21
- print prompt
22
- confirm = STDIN.gets.chomp().downcase
23
- unless confirm.eql?('y') || confirm.eql?('yes')
24
- abort("Deletion of #{ opts[:user] } aborted")
25
- end
23
+ def distinguished_name
24
+ @distinguished_name ||= "uid=#{opts[:user]},ou=#{organizational_unit},#{Tapjoy::LDAP::client.basedn}"
25
+ end
26
+
27
+ def confirm
28
+ puts "Confirm that you want to delete user: #{opts[:user]} (yes/no)"
29
+ print '>'
30
+ confirm = STDIN.gets.chomp().downcase
31
+ unless confirm.eql?('y') || confirm.eql?('yes')
32
+ abort("Deletion of #{ opts[:user] } aborted")
26
33
  end
34
+ end
27
35
 
28
- puts Tapjoy::LDAP::client.delete(dn)
36
+ def organizational_unit
37
+ @organizational_unit ||= begin
38
+ case opts[:type]
39
+ when 'user'
40
+ 'People'
41
+ when 'service'
42
+ Tapjoy::LDAP::client.service_ou
43
+ else
44
+ puts 'Unknown type'
45
+ end
46
+ end
29
47
  end
30
48
  end
31
49
  end
32
50
  end
33
51
  end
34
- # def delete
35
- # options = {}
@@ -2,7 +2,7 @@ module Tapjoy
2
2
  module LDAP
3
3
  module Version
4
4
  MAJOR = 0
5
- MINOR = 4
5
+ MINOR = 5
6
6
  PATCH = 0
7
7
  end
8
8
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ldap_tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ali Tayarani
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-12-10 00:00:00.000000000 Z
11
+ date: 2015-12-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: trollop
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '1.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '3.2'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '3.2'
55
69
  description: A set of tools to make managing LDAP users, groups, and keys easier
56
70
  email: ali.tayarani@tapjoy.com
57
71
  executables: