nakamura 0.12 → 0.14

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.
data/lib/nakamura/file.rb CHANGED
@@ -53,13 +53,19 @@ module SlingFile
53
53
  return @sling.execute_get(path)
54
54
  end
55
55
 
56
- def manage_members(id, add_viewers, delete_viewers, add_managers, delete_managers)
56
+ def manage_members(id, add_viewers, delete_viewers, add_managers, delete_managers, add_editors=nil, delete_editors=nil)
57
57
  path = "#{url_for_pooled_file(id)}.members.html"
58
58
  params = {}
59
59
  params[":viewer"] ||= add_viewers
60
60
  params[":viewer@Delete"] ||= delete_viewers
61
61
  params[":manager"] ||= add_managers
62
62
  params[":manager@Delete"] ||= delete_managers
63
+ if add_editors != nil
64
+ params[":editor"] ||= add_editors
65
+ end
66
+ if delete_editors != nil
67
+ params[":editor@Delete"] ||= delete_editors
68
+ end
63
69
  return @sling.execute_post(path, params)
64
70
  end
65
71
 
@@ -192,7 +192,7 @@ module SlingUsers
192
192
  def update_user(sling)
193
193
  data = {}
194
194
  if (!firstName.nil? and !lastName.nil? and !email.nil?)
195
- data[":sakai:profile-import"] = "{'basic': {'access': 'everybody', 'elements': {'email': {'value': '#{email}'}, 'firstName': {'value': '#{firstName}'}, 'lastName': {'value': '#{lastName}'}}}}"
195
+ data[":sakai:profile-import"] = JSON.generate({'basic' => {'access' => 'everybody', 'elements' => {'email' => {'value' => email}, 'firstName' => {'value' => firstName}, 'lastName' => {'value' => lastName}}}})
196
196
  # data[":sakai:pages-template"] = "/var/templates/site/defaultuser"
197
197
  end
198
198
 
@@ -294,7 +294,7 @@ module SlingUsers
294
294
  }
295
295
 
296
296
  if (!user.firstName.nil? and !user.lastName.nil? and !user.email.nil?)
297
- data[":sakai:profile-import"] = "{'basic': {'access': 'everybody', 'elements': {'email': {'value': '#{user.email}'}, 'firstName': {'value': '#{user.firstName}'}, 'lastName': {'value': '#{user.lastName}'}}}}"
297
+ data[":sakai:profile-import"] = JSON.generate({'basic' => {'access' => 'everybody', 'elements' => {'email' => {'value' => user.email}, 'firstName' => {'value' => user.firstName}, 'lastName' => {'value' => user.lastName}}}})
298
298
  # data[":sakai:pages-template"] = "/var/templates/site/defaultuser"
299
299
  end
300
300
 
data/lib/nakamura.rb CHANGED
@@ -183,9 +183,26 @@ module SlingInterface
183
183
  return res
184
184
  end
185
185
 
186
- def delete_file(path)
186
+ def delete_file(path, query_params=nil)
187
+ if (query_params != nil)
188
+ param_string = query_params.collect { |k,v|
189
+ val = case v
190
+ when String then
191
+ v
192
+ when Numeric then
193
+ v.to_s
194
+ else
195
+ v.to_json
196
+ end
197
+ CGI.escape(k) + "=" + CGI.escape(val)
198
+ }.join("&")
199
+ path = "#{path}?#{param_string}"
200
+ end
187
201
  uri = URI.parse(path)
188
- req = Net::HTTP::Delete.new(uri.path)
202
+ path = uri.path
203
+ path = path + "?" + uri.query if uri.query
204
+ @log.debug("DELETE: #{path} (as '#{@user.name}')")
205
+ req = Net::HTTP::Delete.new(path)
189
206
  res = sendRequest(uri, req)
190
207
  dump_response(res)
191
208
  return res
@@ -281,8 +298,8 @@ module SlingInterface
281
298
 
282
299
  def do_login()
283
300
  path = url_for("/system/sling/formlogin")
284
- req = Net::HTTP::Post.new(path)
285
301
  uri = URI.parse(path)
302
+ req = Net::HTTP::Post.new(uri.path)
286
303
  req.set_form_data({ "sakaiauth:un" => @user.name, "sakaiauth:pw" => @user.password, "sakaiauth:login" => 1 })
287
304
  res = createHttp(uri).start{ |http| http.request(req) }
288
305
  if ( res.code == "200" )
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nakamura
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.12'
4
+ version: '0.14'
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-07-10 00:00:00.000000000 Z
12
+ date: 2012-08-02 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: json
@@ -34,15 +34,15 @@ executables: []
34
34
  extensions: []
35
35
  extra_rdoc_files: []
36
36
  files:
37
- - lib/nakamura/test.rb
38
37
  - lib/nakamura/authz.rb
39
- - lib/nakamura/full_group_creator.rb
40
- - lib/nakamura/users.rb
41
38
  - lib/nakamura/contacts.rb
39
+ - lib/nakamura/file.rb
40
+ - lib/nakamura/full_group_creator.rb
42
41
  - lib/nakamura/message.rb
43
42
  - lib/nakamura/osgiconf.rb
44
43
  - lib/nakamura/search.rb
45
- - lib/nakamura/file.rb
44
+ - lib/nakamura/test.rb
45
+ - lib/nakamura/users.rb
46
46
  - lib/nakamura.rb
47
47
  homepage: http://sakaiproject.org
48
48
  licenses: []
@@ -65,7 +65,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - none
67
67
  rubyforge_project:
68
- rubygems_version: 1.8.21
68
+ rubygems_version: 1.8.23
69
69
  signing_key:
70
70
  specification_version: 3
71
71
  summary: Ruby library for interacting with Sakai Nakamura.