nakamura 0.5 → 0.6
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.rb +7 -4
- data/lib/nakamura/contacts.rb +1 -1
- data/lib/nakamura/full_group_creator.rb +1 -3
- data/lib/nakamura/search.rb +6 -5
- data/lib/nakamura/test.rb +20 -5
- data/lib/nakamura/users.rb +3 -2
- metadata +6 -6
data/lib/nakamura.rb
CHANGED
@@ -53,9 +53,9 @@ module Net::HTTPHeader
|
|
53
53
|
|
54
54
|
def encode_kvpair(k, vs)
|
55
55
|
if vs.nil? or vs == '' then
|
56
|
-
"#{
|
56
|
+
"#{CGI::escape(k)}="
|
57
57
|
else
|
58
|
-
Array(vs).map {|v| "#{
|
58
|
+
Array(vs).map {|v| "#{CGI::escape(k)}=#{CGI::escape(v.to_s)}" }
|
59
59
|
end
|
60
60
|
end
|
61
61
|
end
|
@@ -88,6 +88,9 @@ module SlingInterface
|
|
88
88
|
|
89
89
|
def initialize(server="http://localhost:8080/", trustedauth=false)
|
90
90
|
@server = server
|
91
|
+
if not @server.end_with? '/'
|
92
|
+
@server += '/'
|
93
|
+
end
|
91
94
|
@serveruri = URI.parse(server)
|
92
95
|
@user = SlingUsers::User.admin_user()
|
93
96
|
@trustedauth = trustedauth
|
@@ -284,10 +287,10 @@ module SlingInterface
|
|
284
287
|
res = createHttp(uri).start{ |http| http.request(req) }
|
285
288
|
if ( res.code == "200" )
|
286
289
|
save_cookies(res)
|
287
|
-
|
290
|
+
@log.info("Login Ok, cookie was {#@cookies}")
|
288
291
|
@loggedin = true
|
289
292
|
else
|
290
|
-
|
293
|
+
@log.info("Failed to perform login, got "+res.code+" response code")
|
291
294
|
end
|
292
295
|
end
|
293
296
|
|
data/lib/nakamura/contacts.rb
CHANGED
@@ -74,7 +74,7 @@ module SlingContacts
|
|
74
74
|
end
|
75
75
|
|
76
76
|
def find_contacts(state)
|
77
|
-
result = @sling.execute_get(@sling.url_for("var/contacts/findstate?state=#{state}"))
|
77
|
+
result = @sling.execute_get(@sling.url_for("var/contacts/findstate.json?state=#{state}"))
|
78
78
|
return JSON.parse(result.body)
|
79
79
|
end
|
80
80
|
|
@@ -22,9 +22,7 @@ module SlingUsers
|
|
22
22
|
|
23
23
|
def initialize(sling, file_log = nil)
|
24
24
|
@sling = sling
|
25
|
-
@sling.log.level = Logger::INFO
|
26
25
|
super sling
|
27
|
-
@log.level = Logger::INFO
|
28
26
|
@file_log = file_log
|
29
27
|
end
|
30
28
|
|
@@ -55,7 +53,7 @@ module SlingUsers
|
|
55
53
|
}]
|
56
54
|
})}
|
57
55
|
|
58
|
-
result = @sling.execute_post(@sling.url_for($
|
56
|
+
result = @sling.execute_post(@sling.url_for($GROUP_WORLD_URI), params)
|
59
57
|
if (result.code.to_i > 299)
|
60
58
|
@log.error result.body
|
61
59
|
return nil
|
data/lib/nakamura/search.rb
CHANGED
@@ -10,10 +10,6 @@ module SlingSearch
|
|
10
10
|
@sling = sling
|
11
11
|
end
|
12
12
|
|
13
|
-
def search_for(string)
|
14
|
-
return json_search("content", "q" => string)
|
15
|
-
end
|
16
|
-
|
17
13
|
def create_search_template(name, language, template)
|
18
14
|
return @sling.create_node("#{$SEARCH}#{name}", "sakai:query-language" => language, "sakai:query-template" => template, "sling:resourceType" => "sakai/search")
|
19
15
|
end
|
@@ -30,9 +26,14 @@ module SlingSearch
|
|
30
26
|
return json_search("sites", "q" => sitepropertyvalue)
|
31
27
|
end
|
32
28
|
|
29
|
+
def search_for_file(query)
|
30
|
+
return json_search('files/allfiles.json', 'q' => query)
|
31
|
+
end
|
32
|
+
|
33
33
|
private
|
34
34
|
def json_search(template, params)
|
35
|
-
|
35
|
+
url = @sling.url_for($SEARCH + template) + ".json?" + params.collect{|k,v| URI.escape(k) + "=" + URI.escape(v)}.join("&")
|
36
|
+
return JSON.parse(@sling.execute_get(url).body)
|
36
37
|
end
|
37
38
|
end
|
38
39
|
|
data/lib/nakamura/test.rb
CHANGED
@@ -18,6 +18,8 @@ module SlingTest
|
|
18
18
|
@s = SlingInterface::Sling.new()
|
19
19
|
@um = SlingUsers::UserManager.new(@s)
|
20
20
|
@search = SlingSearch::SearchManager.new(@s)
|
21
|
+
@fm = SlingFile::FileManager.new(@s)
|
22
|
+
|
21
23
|
@created_nodes = []
|
22
24
|
@created_users = []
|
23
25
|
@created_groups = []
|
@@ -28,11 +30,11 @@ module SlingTest
|
|
28
30
|
|
29
31
|
def teardown
|
30
32
|
if ( @delete ) then
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
33
|
+
@s.switch_user(SlingUsers::User.admin_user)
|
34
|
+
@created_nodes.reverse.each { |n| @s.delete_node(n) }
|
35
|
+
@created_groups.each { |g| @um.delete_group(g) }
|
36
|
+
@created_users.each { |u| @um.delete_user(u.name) }
|
37
|
+
end
|
36
38
|
end
|
37
39
|
|
38
40
|
def create_node(path, props={})
|
@@ -49,6 +51,19 @@ module SlingTest
|
|
49
51
|
return res
|
50
52
|
end
|
51
53
|
|
54
|
+
def create_pooled_content(filename, content, props={})
|
55
|
+
res = @fm.upload_pooled_file(filename,{},'text/plain')
|
56
|
+
assert_not_nil(res)
|
57
|
+
assert_equal(true, res.code.to_i >= 200 && res.code.to_i < 300, "Expected to be able to create node #{res.body}")
|
58
|
+
json = JSON.parse(res.body)
|
59
|
+
assert_not_nil(json[filename])
|
60
|
+
assert_not_nil(json[filename]['poolId'])
|
61
|
+
|
62
|
+
path = "/p/#{json[filename]['poolId']}"
|
63
|
+
@created_nodes << path unless @created_nodes.include?(path)
|
64
|
+
return path
|
65
|
+
end
|
66
|
+
|
52
67
|
def create_user(username, firstname = nil, lastname = nil)
|
53
68
|
u = @um.create_user(username, firstname, lastname)
|
54
69
|
assert_not_nil(u, "Expected user to be created: #{username}")
|
data/lib/nakamura/users.rb
CHANGED
@@ -4,7 +4,8 @@ require 'digest/sha1'
|
|
4
4
|
require 'logger'
|
5
5
|
|
6
6
|
$USERMANAGER_URI="system/userManager/"
|
7
|
-
$GROUP_URI="
|
7
|
+
$GROUP_URI="#{$USERMANAGER_URI}group.create.html"
|
8
|
+
$GROUP_WORLD_URI="system/world/create"
|
8
9
|
$USER_URI="#{$USERMANAGER_URI}user.create.html"
|
9
10
|
$DEFAULT_PASSWORD="testuser"
|
10
11
|
|
@@ -351,7 +352,7 @@ module SlingUsers
|
|
351
352
|
"creator" => "true"
|
352
353
|
}]
|
353
354
|
})}
|
354
|
-
result = @sling.execute_post(@sling.url_for($
|
355
|
+
result = @sling.execute_post(@sling.url_for($GROUP_WORLD_URI), params)
|
355
356
|
if (result.code.to_i > 299)
|
356
357
|
@log.error(result.body)
|
357
358
|
return nil
|
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.
|
4
|
+
version: '0.6'
|
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-01-
|
12
|
+
date: 2012-01-17 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: Ruby library for interacting with Sakai Nakamura. Provides convenience
|
15
15
|
methods for adding users and groups and other similar tasks.
|
@@ -18,14 +18,14 @@ executables: []
|
|
18
18
|
extensions: []
|
19
19
|
extra_rdoc_files: []
|
20
20
|
files:
|
21
|
+
- lib/nakamura/test.rb
|
21
22
|
- lib/nakamura/authz.rb
|
22
|
-
- lib/nakamura/contacts.rb
|
23
|
-
- lib/nakamura/file.rb
|
24
23
|
- lib/nakamura/full_group_creator.rb
|
24
|
+
- lib/nakamura/users.rb
|
25
|
+
- lib/nakamura/contacts.rb
|
25
26
|
- lib/nakamura/message.rb
|
26
27
|
- lib/nakamura/search.rb
|
27
|
-
- lib/nakamura/
|
28
|
-
- lib/nakamura/users.rb
|
28
|
+
- lib/nakamura/file.rb
|
29
29
|
- lib/nakamura.rb
|
30
30
|
homepage: http://sakaiproject.org
|
31
31
|
licenses: []
|