nakamura 0.12 → 0.14

Sign up to get free protection for your applications and to get access to all the features.
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.