postini 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -202,6 +202,59 @@ module Postini
202
202
  end
203
203
  requires_configured :display_user
204
204
 
205
+ # Return a list of users, possibly filtered and sorted. Refer to
206
+ # the Postini Automated Batch Service Manual for an explanation of
207
+ # each field.
208
+ #
209
+ # Possible options are:
210
+ #
211
+ # :aliases => boolean
212
+ # :childorgs => boolean
213
+ # :start => integer
214
+ # :end => integer
215
+ # :fields => array (strings)
216
+ # :orgtagqs => string
217
+ # :primaryqs => string
218
+ # :targetOrg => string
219
+ # :type_of_user => string
220
+ #
221
+ # The call returns a giant hash, keys are the addresses returned
222
+ # by the operation, and the values are hashes of key-value pairs
223
+ # are returned by the remote service.
224
+ def list_users( query_string = 'ALL', options = {} )
225
+
226
+ valid_options = {}
227
+
228
+ # vanilla copies
229
+ [ :start, :end, :orgtagqs, :primaryqs, :targetOrg, :type_of_user ].each do |k|
230
+
231
+ valid_options[k] = options[k] if options.has_key?(k)
232
+ end
233
+
234
+ # boolean copies
235
+ [ :aliases, :childorgs ].each do |k|
236
+
237
+ if options.has_key?(k)
238
+ valid_options[k] = ( options[k] == true ? '1' : '0' )
239
+ end
240
+ end
241
+
242
+ valid_options[:fields] = options[:fields].join('|') if options.has_key?(:fields)
243
+
244
+ response = invoke("aut:listusers") do |message|
245
+ build_auth!( message )
246
+ message.add('queryString', query_string)
247
+ message.add('queryParams') do |q|
248
+ valid_options.each do |k,v|
249
+ q.add( k.to_s, v )
250
+ end
251
+ end
252
+ end
253
+
254
+ parse_list_users_results( response.document.xpath('//tns:listusersResponse', tns).first )
255
+ end
256
+ requires_configured :list_users
257
+
205
258
  # Modify a domain by moving it to a new organization, setting or
206
259
  # removing aliases, or enabling/disabling subdomain
207
260
  # stripping. Changes are passed as a hash with the following keys:
@@ -460,5 +513,38 @@ module Postini
460
513
 
461
514
  data
462
515
  end
516
+
517
+ def parse_list_users_results( node )
518
+ # <tns:listusersResponse>
519
+ # <user>
520
+ # <active>0</active>
521
+ # <address>sales@jumboinc.com</address>
522
+ # <create_method>3</create_method>
523
+ # <orgtag>Sales</orgtag>
524
+ # <timezone>Europe/Lisbon</timezone>
525
+ # </user>
526
+ # <user>
527
+ # ...
528
+ # </user
529
+ # </tns:listusersResponse>
530
+
531
+ data = {}
532
+
533
+ node.xpath('./user').each do |user|
534
+
535
+ address = user.xpath('./address/text()').to_s
536
+ fields = {}
537
+
538
+ user.children.each do |field|
539
+ next if field.name == 'address'
540
+
541
+ fields[ field.name.to_sym ] = field.content
542
+ end
543
+
544
+ data[ address ] = fields
545
+ end
546
+
547
+ data
548
+ end
463
549
  end
464
550
  end
data/lib/postini.rb CHANGED
@@ -76,7 +76,7 @@ require 'postini/exceptions'
76
76
  # degrees, and allow you to access some soap4r internals as well.
77
77
  #
78
78
  module Postini
79
- VERSION = "0.1.0"
79
+ VERSION = "0.1.1"
80
80
 
81
81
  autoload :ConfigurationCheck, "postini/configuration_check"
82
82
  autoload :Endpoints, "postini/endpoints"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: postini
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kenneth Kalmer
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-06-12 00:00:00 +02:00
12
+ date: 2009-06-16 00:00:00 +02:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency