nakamura 0.2 → 0.3

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.
Files changed (3) hide show
  1. data/lib/nakamura.rb +1 -1
  2. data/lib/nakamura/users.rb +63 -13
  3. metadata +7 -7
data/lib/nakamura.rb CHANGED
@@ -84,7 +84,7 @@ module SlingInterface
84
84
 
85
85
  class Sling
86
86
 
87
- attr_accessor :log, :trustedauth
87
+ attr_accessor :log, :trustedauth, :loggedin
88
88
 
89
89
  def initialize(server="http://localhost:8080/", trustedauth=false)
90
90
  @server = server
@@ -154,6 +154,10 @@ module SlingUsers
154
154
 
155
155
  class User < Principal
156
156
  attr_accessor :password
157
+ attr_accessor :firstName
158
+ attr_accessor :lastName
159
+ attr_accessor :password
160
+ attr_accessor :email
157
161
 
158
162
  def initialize(username, password=$DEFAULT_PASSWORD)
159
163
  super(username)
@@ -184,6 +188,27 @@ module SlingUsers
184
188
  return sling.execute_post(sling.url_for("#{user_url}.update.html"), props)
185
189
  end
186
190
 
191
+ def update_user(sling)
192
+ data = {}
193
+ if (!firstName.nil? and !lastName.nil? and !email.nil?)
194
+ data[":sakai:profile-import"] = "{'basic': {'access': 'everybody', 'elements': {'email': {'value': '#{email}'}, 'firstName': {'value': '#{firstName}'}, 'lastName': {'value': '#{lastName}'}}}}"
195
+ # data[":sakai:pages-template"] = "/var/templates/site/defaultuser"
196
+ end
197
+
198
+ if (!firstName.nil?)
199
+ data["firstName"] = firstName
200
+ end
201
+
202
+ if (!lastName.nil?)
203
+ data["lastName"] = lastName
204
+ end
205
+
206
+ if (!email.nil?)
207
+ data["email"] = email
208
+ end
209
+
210
+ return update_properties(sling, data)
211
+ end
187
212
 
188
213
  def change_password(sling, newpassword)
189
214
  return sling.execute_post(sling.url_for("#{user_url}.changePassword.html"), "oldPwd" => @password, "newPwd" => newpassword, "newPwdConfirm" => newpassword)
@@ -261,23 +286,48 @@ module SlingUsers
261
286
  return create_user("testuser#{@date}-#{id}")
262
287
  end
263
288
 
289
+ def create_user_object(user)
290
+ data = { ":name" => user.name,
291
+ "pwd" => user.password,
292
+ "pwdConfirm" => user.password
293
+ }
294
+
295
+ if (!user.firstName.nil? and !user.lastName.nil? and !user.email.nil?)
296
+ data[":sakai:profile-import"] = "{'basic': {'access': 'everybody', 'elements': {'email': {'value': '#{user.email}'}, 'firstName': {'value': '#{user.firstName}'}, 'lastName': {'value': '#{user.lastName}'}}}}"
297
+ # data[":sakai:pages-template"] = "/var/templates/site/defaultuser"
298
+ end
299
+
300
+ if (!user.firstName.nil?)
301
+ data["firstName"] = user.firstName
302
+ end
303
+
304
+ if (!user.lastName.nil?)
305
+ data["lastName"] = user.lastName
306
+ end
307
+
308
+ if (!user.email.nil?)
309
+ data["email"] = user.email
310
+ end
311
+
312
+ result = @sling.execute_post(@sling.url_for("#{$USER_URI}"), data)
313
+ if (result.code.to_i > 299)
314
+ @log.info "Error creating user"
315
+ return nil
316
+ end
317
+ return user
318
+ end
319
+
264
320
  def create_user(username, firstname = nil, lastname = nil)
265
321
  @log.info "Creating user: #{username}"
266
322
  user = User.new(username)
267
- data = { ":name" => user.name,
268
- "pwd" => user.password,
269
- "pwdConfirm" => user.password
270
- }
271
- if (!firstname.nil? and !lastname.nil?)
272
- data[":sakai:profile-import"] = "{'basic': {'access': 'everybody', 'elements': {'email': {'value': '#{username}@sakai.invalid'}, 'firstName': {'value': '#{firstname}'}, 'lastName': {'value': '#{lastname}'}}}}"
273
- # data[":sakai:pages-template"] = "/var/templates/site/defaultuser"
274
- end
275
- result = @sling.execute_post(@sling.url_for("#{$USER_URI}"), data)
276
- if (result.code.to_i > 299)
277
- @log.info "Error creating user"
278
- return nil
323
+ user.firstName = firstname
324
+ user.lastName = lastname
325
+
326
+ if (!user.firstName.nil? and !user.lastName.nil? and user.email.nil?)
327
+ user.email = "#{username}@sakai.invalid"
279
328
  end
280
- return user
329
+
330
+ return create_user_object(user)
281
331
  end
282
332
 
283
333
  def create_group(groupname, title = 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.2'
4
+ version: '0.3'
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: 2011-10-17 00:00:00.000000000Z
12
+ date: 2011-11-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
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/test.rb
28
- - lib/nakamura/users.rb
28
+ - lib/nakamura/file.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.10
51
+ rubygems_version: 1.8.6
52
52
  signing_key:
53
53
  specification_version: 3
54
54
  summary: Ruby library for interacting with Sakai Nakamura.