nakamura 0.4 → 0.5

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