[ARVADOS] updated: 3aa0915d0b9b0affd9a784df3d138f0d13df303b
git at public.curoverse.com
git at public.curoverse.com
Tue Apr 22 13:39:04 EDT 2014
Summary of changes:
services/api/app/models/user.rb | 2 +-
services/api/test/unit/user_test.rb | 44 +++++++++++++++++++++++++++++++++++
2 files changed, 45 insertions(+), 1 deletions(-)
via 3aa0915d0b9b0affd9a784df3d138f0d13df303b (commit)
from 8bd2381e50d3c575cef3bc0f0d4c10a9bafaf292 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
commit 3aa0915d0b9b0affd9a784df3d138f0d13df303b
Author: Ward Vandewege <ward at curoverse.com>
Date: Tue Apr 22 13:37:59 2014 -0400
Create a can_login link for a new user object, even if there are already
stray can_login link objects for another user object with the same
e-mail address in the database. Add a test for that scenario, too.
diff --git a/services/api/app/models/user.rb b/services/api/app/models/user.rb
index 50dc668..f00a42e 100644
--- a/services/api/app/models/user.rb
+++ b/services/api/app/models/user.rb
@@ -250,7 +250,7 @@ class User < ArvadosModel
# Check oid_login_perm
oid_login_perms = Link.where(tail_uuid: self.email,
link_class: 'permission',
- name: 'can_login').where("head_uuid like ?", User.uuid_like_pattern)
+ name: 'can_login').where("head_uuid = ?", self.uuid)
if !oid_login_perms.any?
# create openid login permission
diff --git a/services/api/test/unit/user_test.rb b/services/api/test/unit/user_test.rb
index 6cee757..6eb048e 100644
--- a/services/api/test/unit/user_test.rb
+++ b/services/api/test/unit/user_test.rb
@@ -188,6 +188,50 @@ class UserTest < ActiveSupport::TestCase
verify_link vm_perm, 'permission', 'can_login', resp_user[:uuid], vm.uuid
end
+ test "setup new user with junk in database" do
+ Thread.current[:user] = @admin_user
+
+ email = 'foo at example.com'
+ openid_prefix = 'http://openid/prefix'
+
+ user = User.create ({uuid: 'zzzzz-tpzed-abcdefghijklmno', email: email})
+
+ vm = VirtualMachine.create
+
+ # Set up the bogus Link
+ bad_uuid = 'zzzzz-tpzed-xyzxyzxyzxyzxyz'
+
+ resp_link = Link.create ({tail_uuid: email, link_class: 'permission',
+ name: 'can_login', head_uuid: bad_uuid})
+ resp_link.save(validate: false)
+
+ verify_link resp_link, 'permission', 'can_login', email, bad_uuid
+
+ response = User.setup user, openid_prefix, 'test_repo', vm.uuid
+
+ resp_user = find_obj_in_resp response, 'User'
+ verify_user resp_user, email
+
+ oid_login_perm = find_obj_in_resp response, 'Link', 'arvados#user'
+
+ verify_link oid_login_perm, 'permission', 'can_login', resp_user[:email],
+ resp_user[:uuid]
+
+ assert_equal openid_prefix, oid_login_perm[:properties][:identity_url_prefix],
+ 'expected identity_url_prefix not found for oid_login_perm'
+
+ group_perm = find_obj_in_resp response, 'Link', 'arvados#group'
+ verify_link group_perm, 'permission', 'can_read', resp_user[:uuid], nil
+
+ repo_perm = find_obj_in_resp response, 'Link', 'arvados#repository'
+ verify_link repo_perm, 'permission', 'can_write', resp_user[:uuid], nil
+
+ vm_perm = find_obj_in_resp response, 'Link', 'arvados#virtualMachine'
+ verify_link vm_perm, 'permission', 'can_login', resp_user[:uuid], vm.uuid
+ end
+
+
+
test "setup new user in multiple steps" do
Thread.current[:user] = @admin_user
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list