nakamura 0.5 → 0.6
Sign up to get free protection for your applications and to get access to all the features.
- 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: []
|