nakamura 0.2 → 0.3

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