lita-ldap 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: dd7f06cd70351f1cb694ef2c370a21871be3d116
4
- data.tar.gz: c8bbe175bd45feff62ec4538e5d53afc13fd6729
3
+ metadata.gz: 0de328ac9f7bd2874241a587ad9b510804ddc672
4
+ data.tar.gz: f19e2f7d0e52cf358f54d0a5e66911164655e2ae
5
5
  SHA512:
6
- metadata.gz: 9fe2c4a6547e01d8f91688b9c8b67e38bc10c6e8d1d6e94538b71f29eb0311c70a506beb4b4ab3ec3456ff84698e947ef1ce6985c6e03bd4de41aa0b66ff21c1
7
- data.tar.gz: 82b6043191d6158b0ea203cab51595195e6cecda36a9a47f3d1d330e74be8811f36e00275836ac451b03defe918bd881537786f17406e29bf85bac9b89bd911b
6
+ metadata.gz: 2e572cca1829c967805cdc2d752f7e01a4b0da52ada3d85fb081bcb8d7ced429f2471708f0ad84053e59d806a02c5674a93cc245b7e7e9357ae9e4bb3b784109
7
+ data.tar.gz: 90cedc1cbe3c0a0f9585290a82201e304e4b4b522c73aab5cddb53c0f8b85ac461fe61233b29a7937ed79c03c4ae029037a6d0f7fc71e6787702b6810dce2b51
@@ -0,0 +1,15 @@
1
+ #Change Log
2
+
3
+ ##v0.1.2
4
+ * Fix help message
5
+ * Add function for delete entry
6
+ * Add command to delete tree
7
+ * Add command to show server root dse
8
+
9
+ ##v0.1.1
10
+ * Search entry with filter
11
+ * Show entry use full dn
12
+ * Verify ldap filter
13
+
14
+ ##v0.1.0
15
+ Basic search for user group
data/README.md CHANGED
@@ -27,7 +27,10 @@ end
27
27
 
28
28
  ## Usage
29
29
 
30
- * lita search user nexus
31
- * lita search group nx-admin
32
- * lita search with filter 'cn=gerrit'
33
- * lita show dn 'cn=gerrit,ou=people,dc=ldap,dc=example,dc=com'
30
+ * ldap search user nexus
31
+ * ldap search group nx-admin
32
+ * ldap search with filter 'cn=gerrit'
33
+ * ldap show dn 'cn=gerrit,ou=people,dc=ldap,dc=example,dc=com'
34
+ * ldap delete dn 'cn=gerrit,ou=people,dc=ldap,dc=example,dc=com'
35
+ * ldap delete tree dn 'ou=people,dc=ldap,dc=example,dc=com' #if supported
36
+ * ldap root dse
@@ -63,5 +63,37 @@ module LitaLDAPHelper
63
63
  #puts results
64
64
  results
65
65
  end
66
+
67
+ def delete_entry_by_dn(dn)
68
+ dn_spec = dn.split(':',2)
69
+ dn_str = dn_spec[0]
70
+ if dn_spec.length>1
71
+ dn_str = dn_spec[1]
72
+ end
73
+ dn_str = dn_str.strip
74
+ client.delete :dn => dn_str
75
+ end
76
+
77
+ def delete_tree_by_dn(dn)
78
+ dn_spec = dn.split(':',2)
79
+ dn_str = dn_spec[0]
80
+ if dn_spec.length>1
81
+ dn_str = dn_spec[1]
82
+ end
83
+ dn_str = dn_str.strip
84
+ client.delete :dn => dn_str
85
+ end
86
+
87
+ def search_root_dse
88
+ begin
89
+ info = client.search_root_dse
90
+ if info
91
+ info.to_ldif
92
+ end
93
+ rescue Exception => e
94
+ e.message
95
+ end
96
+ end
97
+
66
98
  end#module misc
67
99
  end#module LitaLDAPHelper
@@ -84,6 +84,33 @@ module Lita
84
84
  }
85
85
  )
86
86
 
87
+ route(
88
+ /^ldap\s+delete\s+dn\s+(["'])([^\1]+)(\1)$/,
89
+ :cmd_delete_with_dn,
90
+ command: true,
91
+ help: {
92
+ t('help.cmd_delete_with_dn_key') => t('help.cmd_delete_with_dn_value')
93
+ }
94
+ )
95
+
96
+ route(
97
+ /^ldap\s+delete\s+tree\s+dn\s+(["'])([^\1]+)(\1)$/,
98
+ :cmd_delete_tree_with_dn,
99
+ command: true,
100
+ help: {
101
+ t('help.cmd_delete_tree_with_dn_key') => t('help.cmd_delete_tree_with_dn_value')
102
+ }
103
+ )
104
+
105
+ route(
106
+ /^ldap\s+root\s+dse\s*$/,
107
+ :cmd_show_root_dse,
108
+ command: true,
109
+ help: {
110
+ t('help.cmd_show_root_dse_key') => t('help.cmd_show_root_dse_value')
111
+ }
112
+ )
113
+
87
114
 
88
115
  def cmd_search_user(response)
89
116
  search_string = response.matches[0][0]
@@ -105,12 +132,12 @@ module Lita
105
132
  if ! filter_string.nil? && filter_string.strip.length>0
106
133
  is_valid = valid_filter?(filter_string)
107
134
  if is_valid
108
- response.reply "Filter is valid"
135
+ response.reply "Filter is valid."
109
136
  else
110
- response.reply "Filter in not valid"
137
+ response.reply "Filter in not valid."
111
138
  end
112
139
  else
113
- response.reply "Filter string is empty"
140
+ response.reply "Filter string is empty."
114
141
  end
115
142
  end
116
143
 
@@ -122,10 +149,10 @@ module Lita
122
149
  results = search_with_filter(filter_string)
123
150
  response.reply results
124
151
  else
125
- response.reply "Filter in not valid"
152
+ response.reply "Filter in not valid."
126
153
  end
127
154
  else
128
- response.reply "Filter string is empty"
155
+ response.reply "Filter string is empty."
129
156
  end
130
157
  end
131
158
 
@@ -135,10 +162,51 @@ module Lita
135
162
  results = get_entry_by_dn(dn)
136
163
  response.reply results
137
164
  else
138
- response.reply "Invalid dn"
165
+ response.reply "Invalid dn provided."
139
166
  end
140
167
  end
141
168
 
169
+ def cmd_delete_with_dn(response)
170
+ dn = response.matches[0][1]
171
+ if ! dn.nil? && dn.strip.length>0
172
+ begin
173
+ success = delete_entry_by_dn(dn)
174
+ if success
175
+ response.reply "Entry deleted."
176
+ else
177
+ response.reply "Failed to delete entry, server may not support LDAP control 1.2.840.113556.1.4.805."
178
+ end
179
+ rescue Exception => e
180
+ response.reply e.message
181
+ end
182
+ else
183
+ response.reply "Invalid dn provided."
184
+ end
185
+ end
186
+
187
+ def cmd_delete_tree_with_dn(response)
188
+ dn = response.matches[0][1]
189
+ if ! dn.nil? && dn.strip.length>0
190
+ begin
191
+ success = delete_tree_by_dn(dn)
192
+ if success
193
+ response.reply "Entry deleted."
194
+ else
195
+ response.reply "Failed to delete entry."
196
+ end
197
+ rescue Exception => e
198
+ response.reply e.message
199
+ end
200
+ else
201
+ response.reply "Invalid dn provided."
202
+ end
203
+ end
204
+
205
+ def cmd_show_root_dse(response)
206
+ results = search_root_dse
207
+ response.reply results
208
+ end
209
+
142
210
  Lita.register_handler(self)
143
211
  end #class
144
212
  end # module
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = "lita-ldap"
3
- spec.version = "0.1.1"
3
+ spec.version = "0.1.2"
4
4
  spec.authors = ["Wang, Dawei"]
5
5
  spec.email = ["daweiwang.gatekeeper@gmail.com"]
6
6
  spec.description = "Lita LDAP operations like search user and group."
@@ -2,13 +2,20 @@ en:
2
2
  lita:
3
3
  handlers:
4
4
  ldap:
5
- cmd_search_user_key: 'ldap search user SEARCH_STRING'
6
- cmd_search_user_value: 'Search user with search string'
7
- cmd_search_group_key: 'ldap search user SEARCH_STRING'
8
- cmd_search_group_value: 'Search user with search string'
9
- cmd_check_filter_key: 'ldap check filter "FILTER_STRING"'
10
- cmd_check_filter_value: 'Check ldap filter syntax'
11
- cmd_search_with_filter_key: 'ldap search with filter "FILTER_STRING"'
12
- cmd_search_with_filter_value: 'Search entry with filter "FILTER_STRING"'
13
- cmd_search_with_dn_key: 'ldap show dn "DN_STRING"'
14
- cmd_search_with_dn_value: 'Show entry with dn "DN_STRING"'
5
+ help:
6
+ cmd_search_user_key: 'ldap search user SEARCH_STRING'
7
+ cmd_search_user_value: 'Search user with search string'
8
+ cmd_search_group_key: 'ldap search user SEARCH_STRING'
9
+ cmd_search_group_value: 'Search user with search string'
10
+ cmd_check_filter_key: 'ldap check filter "FILTER_STRING"'
11
+ cmd_check_filter_value: 'Check ldap filter syntax'
12
+ cmd_search_with_filter_key: 'ldap search with filter "FILTER_STRING"'
13
+ cmd_search_with_filter_value: 'Search entry with filter "FILTER_STRING"'
14
+ cmd_search_with_dn_key: 'ldap show dn "DN_STRING"'
15
+ cmd_search_with_dn_value: 'Show entry with dn "DN_STRING"'
16
+ cmd_delete_with_dn_key: 'ldap delete dn "DN_STRING"'
17
+ cmd_delete_with_dn_value: 'Delete entry with dn "DN_STRING"'
18
+ cmd_delete_tree_with_dn_key: 'ldap delete tree dn "DN_STRING"'
19
+ cmd_delete_tree_with_dn_value: 'Delete tree entry with dn "DN_STRING"'
20
+ cmd_show_root_dse_key: 'ldap root dse'
21
+ cmd_show_root_dse_value: 'Check ldap root dse'
@@ -57,6 +57,10 @@ describe Lita::Handlers::Ldap, lita_handler: true do
57
57
  is_expected.to route_command('ldap search group nx-admin').to(:cmd_search_group)
58
58
  is_expected.to route_command('ldap check filter "cn=admin"').to(:cmd_check_filter)
59
59
  is_expected.to route_command('ldap search with filter "cn=nexus"').to(:cmd_search_with_filter)
60
+ is_expected.to route_command("ldap show dn 'dn: cn=nx-admin,ou=groups,dc=ldap,dc=example,dc=com'").to(:cmd_search_with_dn)
61
+ is_expected.to route_command("ldap delete dn 'dn: cn=nx-admin,ou=groups,dc=ldap,dc=example,dc=com'").to(:cmd_delete_with_dn)
62
+ is_expected.to route_command("ldap delete tree dn 'dn: ou=groups,dc=ldap,dc=example,dc=com'").to(:cmd_delete_tree_with_dn)
63
+ is_expected.to route_command('ldap root dse').to(:cmd_show_root_dse)
60
64
  end
61
65
 
62
66
  describe '#search user' do
@@ -94,4 +98,25 @@ describe Lita::Handlers::Ldap, lita_handler: true do
94
98
  puts replies
95
99
  end
96
100
  end
101
+
102
+ describe '#delete dn' do
103
+ it 'delete entry with specified dn' do
104
+ send_command("ldap delete dn 'dn: cn=nx-admin,ou=groups,dc=ldap,dc=example,dc=com'")
105
+ puts replies
106
+ end
107
+ end
108
+
109
+ describe '#delete tree' do
110
+ it 'delete tree with specified dn' do
111
+ send_command("ldap delete dn 'dn: ou=groups,dc=ldap,dc=example,dc=com'")
112
+ puts replies
113
+ end
114
+ end
115
+
116
+ describe '#show root dse' do
117
+ it 'show directory root dse' do
118
+ send_command("ldap root dse")
119
+ puts replies
120
+ end
121
+ end
97
122
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lita-ldap
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Wang, Dawei
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-07-07 00:00:00.000000000 Z
11
+ date: 2016-07-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack
@@ -116,6 +116,7 @@ extensions: []
116
116
  extra_rdoc_files: []
117
117
  files:
118
118
  - ".gitignore"
119
+ - CHANGELOG.md
119
120
  - Gemfile
120
121
  - LICENSE
121
122
  - README.md