nakamura 0.4 → 0.5

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.
@@ -10,7 +10,7 @@ include SlingInterface
10
10
  include SlingUsers
11
11
  include SlingFile
12
12
 
13
- $FULL_GROUP_URI="#{$USERMANAGER_URI}group.create.json"
13
+ $FULL_GROUP_URI="system/world/create"
14
14
  $BATCH_URI = "system/batch"
15
15
 
16
16
  module SlingUsers
@@ -23,260 +23,47 @@ module SlingUsers
23
23
  def initialize(sling, file_log = nil)
24
24
  @sling = sling
25
25
  @sling.log.level = Logger::INFO
26
- #@sling.do_login
27
- #@user_manager = UserManager.new(@sling)
28
26
  super sling
29
27
  @log.level = Logger::INFO
30
28
  @file_log = file_log
31
29
  end
32
30
 
33
31
  # this method follows the series of POSTs that the UI makes to create a group with a
34
- # full set of features including the initial sakai doce for Library and Participants
35
- def create_full_group(creator_id, groupname, title = nil, description = nil)
32
+ # full set of features including the initial sakai docs for Library and Participants
33
+ def create_full_group(creator_id, groupname, title = '', description = '')
36
34
  creator = User.new(creator_id, "testuser")
37
35
  @sling.switch_user(creator)
38
- #POST 1 - creating the manager sub-group
39
- create_pseudo_group(groupname + "-manager", groupname + " Manager", description)
40
36
 
41
- #POST 2 - creating the member sub-group
42
- create_pseudo_group(groupname + "-member", groupname + " Member", description)
43
-
44
- #POST 3 creating the main group
45
- group = create_target_group(groupname, title, description) #POST 3
46
-
47
- update_uri = "/#{$USERMANAGER_URI}group/"
48
-
49
- #POST 4 - updating the group managers
50
- batch_post = []
51
- batch_post[0] = {"url" => "#{update_uri}#{groupname}-member.update.json", "method" => "POST", "parameters" => {":manager" => "#{groupname}-manager","_charset_" => "utf-8"}, "_charset_" => "utf-8"}
52
- batch_post[1] = {"url" => "#{update_uri}#{groupname}-manager.update.json", "method" => "POST", "parameters" => {":manager" => "#{groupname}-manager","_charset_" => "utf-8"}, "_charset_" => "utf-8"}
53
- batch_post[2] = {"url" => "#{update_uri}#{groupname}.update.json", "method" => "POST", "parameters" => {":manager" => "#{groupname}-manager","_charset_" => "utf-8"}, "_charset_" => "utf-8"}
54
- batch_post_json = JSON.generate batch_post
55
- @log.debug("POST 4 - updating the group managersbatch post is: #{batch_post_json}")
56
- @file_log.debug("POST 4 - updating the group managersbatch post is: #{batch_post_json}") if (@file_log)
57
- parameters = {"requests" => batch_post_json}
58
- response = @sling.execute_post(@sling.url_for("#{$BATCH_URI}"), parameters)
59
- @log.info("POST 4 - updating the group managers response code is: #{response.code}")
60
- @file_log.info("POST 4 - updating the group managers response code is: #{response.code}") if (@file_log)
61
-
62
- #POST 5 - updating the group members
63
- batch_post = []
64
- batch_post[0] = {"url" => "#{update_uri}#{groupname}-manager.update.json", "method" => "POST", "parameters" => {":member" => "#{creator_id}", "_charset_" => "utf-8"}, "_charset_" => "utf-8"}
65
- batch_post[1] = {"url" => "#{update_uri}#{groupname}.update.json", "method" => "POST", "parameters" => {":member" => "#{groupname}-member", "_charset_" => "utf-8"}, "_charset_" => "utf-8"}
66
- batch_post[2] = {"url" => "#{update_uri}#{groupname}.update.json", "method" => "POST", "parameters" => {":member" => "#{groupname}-manager", "_charset_" => "utf-8"}, "_charset_" => "utf-8"}
67
- batch_post_json = JSON.generate batch_post
68
- @log.debug("POST 5 - updating the group members batch post is: #{batch_post_json}")
69
- @file_log.debug("POST 5 - updating the group members batch post is: #{batch_post_json}") if (@file_log)
70
- parameters = {"requests" => batch_post_json}
71
- response = @sling.execute_post(@sling.url_for("#{$BATCH_URI}"), parameters)
72
- @log.info("POST 5 - updating the group members response code is: #{response.code}")
73
- @file_log.info("POST 5 - updating the group members response code is: #{response.code}") if (@file_log)
74
-
75
- #POST 6 - creating test tags
76
- batch_post = []
77
- batch_post[0] = {"url" => "/tags/test-tag1", "method" => "POST", "parameters" => {"sakai:tag-name" => "test-tag1", "sling:resourceType" => "sakai/tag", "_charset_" => "utf-8"}, "_charset_" => "utf-8"}
78
- batch_post[1] = {"url" => "/tags/test-tag2", "method" => "POST", "parameters" => {"sakai:tag-name" => "test-tag2", "sling:resourceType" => "sakai/tag", "_charset_" => "utf-8"}, "_charset_" => "utf-8"}
79
- batch_post_json = JSON.generate batch_post
80
- @log.debug("POST 6 - creating test tags batch post is: #{batch_post_json}")
81
- @file_log.debug("POST 6 - creating test tags batch post is: #{batch_post_json}") if (@file_log)
82
- parameters = {"requests" => batch_post_json}
83
- response = @sling.execute_post(@sling.url_for("#{$BATCH_URI}"), parameters)
84
- @log.info("POST 6 - creating test tags response code is: #{response.code}")
85
- @file_log.info("POST 6 - creating test tags response code is: #{response.code}") if (@file_log)
86
-
87
- #POST 7 - updating group visibility, joinability and permissions
88
- batch_post = []
89
- batch_post[0] = {"url" => "#{update_uri}#{groupname}.update.html", "method" => "POST", "parameters" => {"rep:group-viewers@Delete" => "", "sakai:group-visible" => "public", "sakai:group-joinable" => "yes", "_charset_" => "utf-8"}, "_charset_" => "utf-8"}
90
- batch_post[1] = {"url" => "/~#{groupname}.modifyAce.html", "method" => "POST", "parameters" => {"principalId" => "everyone", "privilege@jcr:read" => "granted", "_charset_" => "utf-8"}, "_charset_" => "utf-8"}
91
- batch_post[2] = {"url" => "/~#{groupname}.modifyAce.html", "method" => "POST", "parameters" => {"principalId" => "anonymous", "privilege@jcr:read" => "granted", "_charset_" => "utf-8"}, "_charset_" => "utf-8"}
92
- batch_post_json = JSON.generate batch_post
93
- @log.debug("POST 7 - updating group visibility, joinability and permissions batch post is: #{batch_post_json}")
94
- @file_log.debug("POST 7 - updating group visibility, joinability and permissions batch post is: #{batch_post_json}") if (@file_log)
95
- parameters = {"requests" => batch_post_json}
96
- response = @sling.execute_post(@sling.url_for("#{$BATCH_URI}"), parameters)
97
- @log.info("POST 7 - updating group visibility, joinability and permissions response code is: #{response.code}")
98
- @file_log.info("POST 7 - updating group visibility, joinability and permissions response code is: #{response.code}") if (@file_log)
99
-
100
- #POST 8 - creating initial sakai docs
101
- batch_post = []
102
- batch_post[0] = {"url" => "/system/pool/createfile", "method" => "POST", "parameters" => {"sakai:pooled-content-file-name" => "Library", "sakai:description" => "", "sakai:permissions" => "public", "sakai:copyright" => "creativecommons", \
103
- "structure0" => "{\"library\":{\"_ref\":\"id9867543247\",\"_order\":0,\"_nonEditable\":true,\"_title\":\"Library\",\"main\":{\"_ref\":\"id9867543247\",\"_order\":0,\"_nonEditable\":true,\"_title\":\"Library\"}}}", \
104
- "mimeType" => "x-sakai/document","_charset_" => "utf-8"}, "_charset_" => "utf-8"}
37
+ group = Group.new(groupname)
105
38
 
106
- batch_post[1] = {"url" => "/system/pool/createfile", "method" => "POST", "parameters" => {"sakai:pooled-content-file-name" => "Participants", "sakai:description" => "", "sakai:permissions" => "public", "sakai:copyright" => "creativecommons", \
107
- "structure0" => "{\"participants\":{\"_ref\":\"id6573920372\",\"_order\":0,\"_nonEditable\":true,\"_title\":\"Participants\",\"main\":{\"_ref\":\"id6573920372\",\"_order\":0,\"_nonEditable\":true,\"_title\":\"Participants\"}}}", \
108
- "mimeType" => "x-sakai/document","_charset_" => "utf-8"}, "_charset_" => "utf-8"}
109
- batch_post_json = JSON.generate batch_post
110
- @log.debug("#POST 8 - creating initial sakai docs batch post is: #{batch_post_json}")
111
- @file_log.debug("#POST 8 - creating initial sakai docs batch post is: #{batch_post_json}") if (@file_log)
112
- parameters = {"requests" => batch_post_json}
113
- response = @sling.execute_post(@sling.url_for("#{$BATCH_URI}"), parameters)
114
- @log.info("POST 8 - creating initial sakai docs response code is: #{response.code}")
115
- @file_log.info("POST 8 - creating initial sakai docs response code is: #{response.code}") if (@file_log)
116
- ruby_body = JSON response.body
117
- results = ruby_body["results"]
118
- @log.debug("POST 8 - creating initial sakai docs results: #{results}")
119
- @file_log.debug("POST 8 - creating initial sakai docs results: #{results}") if (@file_log)
120
- library_doc_hash, participants_doc_hash = nil, nil
121
- i = 0
122
- results.each do |result|
123
- result_body_json = JSON result["body"]
124
- content_item = result_body_json["_contentItem"]
125
- doc_hash = content_item["poolId"]
126
- content_item_name = content_item["item"]["sakai:pooled-content-file-name"]
127
- if ("Library".eql? content_item_name)
128
- library_doc_hash = doc_hash
129
- elsif ("Participants".eql? content_item_name)
130
- participants_doc_hash = doc_hash
131
- else
132
- @log.warn("could not find sakai doc name to confirm doc_hash")
133
- end
39
+ params = {"data" => JSON.generate({
40
+ "id" => groupname,
41
+ "title" => title,
42
+ "description" => description,
43
+ "joinability" => "yes",
44
+ "visibility" => "public",
45
+ "tags" => ["test-tag1", "test-tag2"],
46
+ "worldTemplate" => "/var/templates/worlds/group/simple-group",
47
+ "_charset_" => "utf-8",
48
+ "usersToAdd" => [{
49
+ "userid" => creator_id,
50
+ "name" => creator.name,
51
+ "firstname" => creator.firstName,
52
+ "role" => "manager",
53
+ "roleString" => "Manager",
54
+ "creator" => "true"
55
+ }]
56
+ })}
57
+
58
+ result = @sling.execute_post(@sling.url_for($GROUP_URI), params)
59
+ if (result.code.to_i > 299)
60
+ @log.error result.body
61
+ return nil
134
62
  end
135
- @log.info("POST 8 - creating initial sakai docs Library sakai doc hash: #{library_doc_hash}, Participants sakai doc hash #{participants_doc_hash}")
136
- @file_log.info("POST 8 - creating initial sakai docs Library sakai doc hash: #{library_doc_hash}, Participants sakai doc hash #{participants_doc_hash}") if (@file_log)
137
-
138
- #POST 9 - importing sakai docs content
139
- batch_post = []
140
- batch_post[0] = {"url" => "/p/#{library_doc_hash}.resource", "method" => "POST", "parameters" => {":operation" => "import", ":contentType" => "json", ":replace" => "true", ":replaceProperties" => "true", \
141
- ":content" => "{\"id9867543247\":{\"page\":\"<img id='widget_mylibrary_id1367865652332' class='widget_inline' style='display: block; padding: 10px; margin: 4px;' \
142
- src='/devwidgets/mylibrary/images/mylibrary.png' data-mce-src='/devwidgets/mylibrary/images/mylibrary.png' data-mce-style='display: block; padding: 10px; margin: 4px;' border='1'><br></p>\"},\
143
- \"id1367865652332\":{\"mylibrary\":{\"groupid\":\"#{groupname}\"}}}","_charset_" => "utf-8"}, "_charset_" => "utf-8"}
144
-
145
- batch_post[1] = {"url" => "/p/#{participants_doc_hash}.resource", "method" => "POST", "parameters" => {":operation" => "import", ":contentType" => "json", ":replace" => "true", ":replaceProperties" => "true", \
146
- ":content" => "{\"id6573920372\":{\"page\":\"<img id='widget_participants_id439704665' class='widget_inline' style='display: block; padding: 10px; margin: 4px;' src='/devwidgets/participants/images/participants.png' \
147
- data-mce-src='/devwidgets/participants/images/participants.png' data-mce-style='display: block; padding: 10px; margin: 4px;' border='1'><br></p>\"}, \
148
- \"id439704665\":{\"participants\":{\"groupid\":\"#{groupname}\"}}}","_charset_" => "utf-8"}, "_charset_" => "utf-8"}
149
- batch_post_json = JSON.generate batch_post
150
- @log.debug("POST 9 - importing sakai docs content batch post is: #{batch_post_json}")
151
- @file_log.debug("POST 9 - importing sakai docs content batch post is: #{batch_post_json}") if (@file_log)
152
- parameters = {"requests" => batch_post_json}
153
- response = @sling.execute_post(@sling.url_for("#{$BATCH_URI}"), parameters)
154
- @log.info("POST 9 - importing sakai docs content response code is: #{response.code}")
155
- @file_log.info("POST 9 - importing sakai docs content response code is: #{response.code}") if (@file_log)
156
- ruby_body = JSON response.body
157
- results = ruby_body["results"]
158
- @log.debug("POST 9 - importing sakai docs content results from importing sakai docs post: #{results}")
159
- @file_log.debug("POST 9 - importing sakai docs content results from importing sakai docs post: #{results}") if (@file_log)
160
-
161
- #POST 10 - applying the test tags
162
- batch_post = []
163
- batch_post[0] = {"url" => "/~#{groupname}/public/authprofile", "method" => "POST", "parameters" => {"key" => "/tags/test-tag1", ":operation" => "tag", "_charset_" => "utf-8"}, "_charset_" => "utf-8"}
164
- batch_post[1] = {"url" => "/~#{groupname}/public/authprofile", "method" => "POST", "parameters" => {"key" => "/tags/test-tag2", ":operation" => "tag", "_charset_" => "utf-8"}, "_charset_" => "utf-8"}
165
- @log.debug("resource batch post is: #{batch_post}")
166
- batch_post_json = JSON.generate batch_post
167
- @log.debug("POST 10 - applying the test tags batch post is: #{batch_post_json}")
168
- @file_log.debug("POST 10 - applying the test tags batch post is: #{batch_post_json}") if (@file_log)
169
- parameters = {"requests" => batch_post_json}
170
- response = @sling.execute_post(@sling.url_for("#{$BATCH_URI}"), parameters)
171
- @log.info("POST 10 - applying the test tags response code is: #{response.code}")
172
- @file_log.info("POST 10 - applying the test tags response code is: #{response.code}") if (@file_log)
173
- ruby_body = JSON response.body
174
- results = ruby_body["results"]
175
- @log.debug("POST 10 - applying the test tags results from :operation => tag post: #{results}")
176
- @file_log.debug("POST 10 - applying the test tags results from :operation => tag post: #{results}") if (@file_log)
177
-
178
-
179
- #POST 11 - setting the global viewers and permissions on the sakai docs
180
- batch_post = []
181
- batch_post[0] = {"url" => "/p/#{library_doc_hash}.members.html", "method" => "POST", "parameters" => {":viewer" => ["everyone", "anonymous"]}}
182
- batch_post[1] = {"url" => "/p/#{library_doc_hash}.modifyAce.html", "method" => "POST", "parameters" => {"principalId" => ["everyone", "anonymous"], "privilege@jcr:read" => "granted"}}
183
- batch_post[2] = {"url" => "/p/#{participants_doc_hash}.members.html", "method" => "POST", "parameters" => {":viewer" => ["everyone", "anonymous"]}}
184
- batch_post[3] = {"url" => "/p/#{participants_doc_hash}.modifyAce.html", "method" => "POST", "parameters" => {"principalId" => ["everyone", "anonymous"], "privilege@jcr:read" => "granted"}}
185
- batch_post_json = JSON.generate batch_post
186
- @log.debug("POST 11 - setting the global viewers and permissions on the sakai docs batch post is: #{batch_post_json}")
187
- @file_log.debug("POST 11 - setting the global viewers and permissions on the sakai docs batch post is: #{batch_post_json}") if (@file_log)
188
- parameters = {"requests" => batch_post_json}
189
- response = @sling.execute_post(@sling.url_for("#{$BATCH_URI}"), parameters)
190
- @log.info("POST 11 - setting the global viewers and permissions on the sakai docs response code is: #{response.code}")
191
- @file_log.info("POST 11 - setting the global viewers and permissions on the sakai docs response code is: #{response.code}") if (@file_log)
192
- ruby_body = JSON response.body
193
- results = ruby_body["results"]
194
- @log.debug("POST 11 - setting the global viewers and permissions on the sakai docs results from setting permissions on sakai docs #{results}")
195
- @file_log.debug("POST 11 - setting the global viewers and permissions on the sakai docs results from setting permissions on sakai docs #{results}") if (@file_log)
196
-
197
- #POST 12 - setting the member viewer and manager viewer for the sakai docs
198
- batch_post = []
199
- batch_post[0] = {"url" => "/p/#{library_doc_hash}.members.html", "method" => "POST", "parameters" => {":viewer" => "#{groupname}-member", "_charset_" =>"utf-8"},"_charset_" => "utf-8"}
200
- batch_post[1] = {"url" => "/p/#{library_doc_hash}.members.html", "method" => "POST", "parameters" => {":manager" => "#{groupname}-manager", "_charset_" =>"utf-8"},"_charset_" => "utf-8"}
201
- batch_post[2] = {"url" => "/p/#{participants_doc_hash}.members.html", "method" => "POST", "parameters" => {":viewer" => "#{groupname}-member", "_charset_" =>"utf-8"},"_charset_" => "utf-8"}
202
- batch_post[3] = {"url" => "/p/#{participants_doc_hash}.members.html", "method" => "POST", "parameters" => {":manager" => "#{groupname}-manager", "_charset_" =>"utf-8"},"_charset_" => "utf-8"}
203
- batch_post_json = JSON.generate batch_post
204
- @log.debug("POST 12 - setting the member viewer and manager viewer for the sakai docs batch post is: #{batch_post_json}")
205
- @file_log.debug("POST 12 - setting the member viewer and manager viewer for the sakai docs batch post is: #{batch_post_json}") if (@file_log)
206
- parameters = {"requests" => batch_post_json}
207
- response = @sling.execute_post(@sling.url_for("#{$BATCH_URI}"), parameters)
208
- @log.info("POST 12 - setting the member viewer and manager viewer for the sakai docs response code is: #{response.code}")
209
- @file_log.info("POST 12 - setting the member viewer and manager viewer for the sakai docs response code is: #{response.code}") if (@file_log)
210
- ruby_body = JSON response.body
211
- results = response.body["results"]
212
- @log.debug("POST 12 - setting the member viewer and manager viewer for the sakai docs results from setting viewer and manager on sakai docs #{results}")
213
- @file_log.debug("POST 12 - setting the member viewer and manager viewer for the sakai docs results from setting viewer and manager on sakai docs #{results}") if (@file_log)
214
-
215
- #POST 13 - setting the doc structure on the sakai docs
216
- struct0 = {}
217
- str = "{\"library\":{\"_title\":\"Library\",\"_order\":0,\"_nonEditable\":true,\"_view\":\"[\\\"everyone\\\",\\\"anonymous\\\",\\\"-member\\\"]\",\"_edit\":\"[\\\"-manager\\\"]\",\"_pid\":\"#{library_doc_hash}\"},\"participants\":{\"_title\":\"Participants\",\"_order\":1,\"_nonEditable\":true,\"_view\":\"[\\\"everyone\\\",\\\"anonymous\\\",\\\"-member\\\"]\",\"_edit\":\"[\\\"-manager\\\"]\",\"_pid\":\"#{participants_doc_hash}\"}}"
218
- struct0["structure0"] = str
219
- params = {}
220
- params[":content"] = JSON.generate struct0
221
- params[":contentType"] = "json"
222
- params[":operation"] = "import"
223
- params[":replace"] = true
224
- params[":replaceProperties"] = true
225
- params["_charset_"] = "utf-8"
226
- @log.debug("POST 13 - setting the doc structure on the sakai docs post params are: " + params.inspect)
227
- @file_log.debug("POST 13 - setting the doc structure on the sakai docs post params are: " + params.inspect) if (@file_log)
228
- uri = "/~#{groupname}/docstructure"
229
- response = @sling.execute_post(@sling.url_for(uri), params)
230
- #this is an html response
231
- @log.info("POST 13 - setting the doc structure on the sakai docs response code: #{response.code}")
232
- @file_log.info("POST 13 - setting the doc structure on the sakai docs response code: #{response.code}") if (@file_log)
233
63
 
234
64
  # return the group that was created in create_target_group
235
65
  return group
236
66
  end
237
-
238
- # create the manager and member pseudo subgroups
239
- def create_pseudo_group(groupname, title, description)
240
- params = { ":name" => groupname }
241
- params["sakai:pseudoGroup"] = true
242
- params["sakai:excludeSearch"] = true
243
- params["sakai:group-description"] = description || ""
244
- params["sakai:group-id"] = groupname
245
- params["sakai:group-title"] = title
246
- response = @sling.execute_post(@sling.url_for($GROUP_URI), params)
247
- @log.info("create_pseudo_group() for #{groupname} POST response code: #{response.code}")
248
- @log.debug("create_pseudo_group() for #{groupname} POST response body: #{response.body}")
249
- @file_log.info("create_pseudo_group() for #{groupname} POST response code: #{response.code}") if (@file_log)
250
- @file_log.debug("create_pseudo_group() for #{groupname} POST response body: #{response.body}") if (@file_log)
251
- if (response.code.to_i > 299)
252
- @log.warn("create_pseudo_group() returned #{response.code} group may already exist?")
253
- @file_log.warn("create_pseudo_group() returned #{response.code} group may already exist?") if (@file_log)
254
- end
255
- end
256
-
257
- # create the group itself
258
- def create_target_group(groupname, title, description)
259
- params = { ":name" => groupname }
260
- params["sakai:category"] = "group"
261
- params["sakai:group-description"] = description || ""
262
- params["sakai:group-id"] = groupname
263
- params["sakai:group-title"] = title || ""
264
- params["sakai:joinRole"] = "member"
265
- params["sakai:roles"] = '[{"id":"member","title":"Member","allowManage":false},{"id":"manager","title":"Manager","allowManage":true}]'
266
- params["sakai:templateid"] = "simplegroup"
267
- response = @sling.execute_post(@sling.url_for($GROUP_URI), params)
268
- @log.info("create_target_group() for #{groupname} POST response code: #{response.code}")
269
- @log.debug("create_target_group() for #{groupname} POST response body: #{response.body}")
270
- @file_log.info("create_target_group() for #{groupname} POST response code: #{response.code}") if (@file_log)
271
- @file_log.debug("create_target_group() for #{groupname} POST response body: #{response.body}") if (@file_log)
272
- if (response.code.to_i > 299)
273
- @log.warn("create_target_group() returned #{response.code} group may already exist?")
274
- @file_log.warn("create_target_group() returned #{response.code} group may already exist?") if (@file_log)
275
- end
276
- group = Group.new(groupname)
277
- return group
278
- end
279
-
280
67
  end
281
68
 
282
69
  if ($PROGRAM_NAME.include? 'full_group_creator.rb')
@@ -4,7 +4,7 @@ require 'digest/sha1'
4
4
  require 'logger'
5
5
 
6
6
  $USERMANAGER_URI="system/userManager/"
7
- $GROUP_URI="#{$USERMANAGER_URI}group.create.html"
7
+ $GROUP_URI="system/world/create"
8
8
  $USER_URI="#{$USERMANAGER_URI}user.create.html"
9
9
  $DEFAULT_PASSWORD="testuser"
10
10
 
@@ -330,20 +330,30 @@ module SlingUsers
330
330
  return create_user_object(user)
331
331
  end
332
332
 
333
- def create_group(groupname, title = nil)
333
+ def create_group(groupname, title = '')
334
334
  @log.info "Creating group: #{groupname}"
335
335
  group = Group.new(groupname)
336
- params = { ":name" => group.name }
337
- if (title)
338
- params['sakai:group-title'] = title
339
- end
340
- params['sakai:group-description'] = ''
341
- params['sakai:group-id'] = groupname
342
- # params[':sakai:pages-template'] = '/var/templates/site/defaultgroup'
343
- params['sakai:pages-visible'] = 'public'
344
- params['sakai:group-joinable'] = 'yes'
336
+ params = { "data" => JSON.generate({
337
+ 'id' => group.name,
338
+ 'title' => title,
339
+ 'description' => '',
340
+ 'visibility' => 'public',
341
+ 'joinability' => 'yes',
342
+ 'tags' => [],
343
+ 'worldTemplate' => '/var/templates/worlds/group/simple-group',
344
+ '_charset_' => 'utf-8',
345
+ 'usersToAdd' => [{
346
+ "userid" => "admin",
347
+ "name" => "Admin",
348
+ "firstname" => "Admin",
349
+ "role" => "manager",
350
+ "roleString" => "Manager",
351
+ "creator" => "true"
352
+ }]
353
+ })}
345
354
  result = @sling.execute_post(@sling.url_for($GROUP_URI), params)
346
355
  if (result.code.to_i > 299)
356
+ @log.error(result.body)
347
357
  return nil
348
358
  end
349
359
  return group
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'
4
+ version: '0.5'
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-05 00:00:00.000000000Z
12
+ date: 2012-01-09 00:00:00.000000000Z
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
22
21
  - lib/nakamura/authz.rb
23
- - lib/nakamura/full_group_creator.rb
24
- - lib/nakamura/users.rb
25
22
  - lib/nakamura/contacts.rb
23
+ - lib/nakamura/file.rb
24
+ - lib/nakamura/full_group_creator.rb
26
25
  - lib/nakamura/message.rb
27
26
  - lib/nakamura/search.rb
28
- - lib/nakamura/file.rb
27
+ - lib/nakamura/test.rb
28
+ - lib/nakamura/users.rb
29
29
  - lib/nakamura.rb
30
30
  homepage: http://sakaiproject.org
31
31
  licenses: []
@@ -48,7 +48,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
48
48
  requirements:
49
49
  - none
50
50
  rubyforge_project:
51
- rubygems_version: 1.8.6
51
+ rubygems_version: 1.8.10
52
52
  signing_key:
53
53
  specification_version: 3
54
54
  summary: Ruby library for interacting with Sakai Nakamura.