Module: Tapjoy::LDAP::Key
- Defined in:
- lib/tapjoy/ldap/key.rb,
lib/tapjoy/ldap/key/add.rb,
lib/tapjoy/ldap/key/show.rb,
lib/tapjoy/ldap/key/remove.rb,
lib/tapjoy/ldap/key/install.rb
Overview
Entry point for all key subcommands
Defined Under Namespace
Classes: Add, Install, Remove, Show
Constant Summary
collapse
- SUB_COMMANDS =
%w(add remove install list show)
Class Method Summary
collapse
Class Method Details
.add ⇒ Object
31
32
33
34
|
# File 'lib/tapjoy/ldap/key.rb', line 31
def add
key = Tapjoy::LDAP::Key::Add.new
key.add
end
|
.commands ⇒ Object
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
# File 'lib/tapjoy/ldap/key.rb', line 13
def commands
Trollop.options do
usage 'key [SUB_COMMAND] [options]'
synopsis "\nThis object is used for user key management\nAvailable subcommands are: #{SUB_COMMANDS}"
stop_on SUB_COMMANDS
end
cmd = ARGV.shift
case cmd
when 'add', 'remove', 'install', 'list', 'show'
send(cmd) else
raise Tapjoy::LDAP::InvalidArgument
end
end
|
.get_keys_from_commandline(filename = nil) ⇒ Object
Retrieve keys from file/stdin
66
67
68
69
70
71
72
73
74
75
76
|
# File 'lib/tapjoy/ldap/key.rb', line 66
def get_keys_from_commandline(filename=nil)
ARGV << filename unless filename.nil?
return_keys = []
ARGF.each do |line|
return_keys << line.chomp!
end
ARGV << '-' return_keys.each { |key| verify_key(key) }
return_keys
end
|
.get_keys_from_ldap ⇒ Object
55
56
57
58
59
60
61
62
63
|
# File 'lib/tapjoy/ldap/key.rb', line 55
def get_keys_from_ldap
key_results = {}
filter = Net::LDAP::Filter.eq('sshPublicKey', '*')
attributes = %w(uid sshPublicKey)
results = Tapjoy::LDAP.client.search(attributes, filter)
results.each {|result| key_results[result.uid[0]] = result.sshPublicKey}
key_results
end
|
.install ⇒ Object
41
42
43
44
|
# File 'lib/tapjoy/ldap/key.rb', line 41
def install
key = Tapjoy::LDAP::Key::Install.new
key.install
end
|
.remove ⇒ Object
36
37
38
39
|
# File 'lib/tapjoy/ldap/key.rb', line 36
def remove
key = Tapjoy::LDAP::Key::Remove.new
key.remove
end
|
.show ⇒ Object
50
51
52
53
|
# File 'lib/tapjoy/ldap/key.rb', line 50
def show
key = Tapjoy::LDAP::Key::Show.new
key.show
end
|
.verify_key(key) ⇒ Object
78
79
80
81
82
83
84
|
# File 'lib/tapjoy/ldap/key.rb', line 78
def verify_key(key)
unless key.start_with?('ssh')
puts "Invalid key due to missing ssh key type:\n\n"
puts "\t#{ key }\n\n"
abort "Please verify your key and try again"
end
end
|
.verify_user(user, results) ⇒ Object
86
87
88
89
90
91
92
93
94
|
# File 'lib/tapjoy/ldap/key.rb', line 86
def verify_user(user, results)
if results.size < 1
puts "User (#{user}) not found."
abort 'Please check the username and try again'
elsif results.size > 1
abort 'Multiple users found. Please narrow your search.'
end
end
|