[ARVADOS] updated: 31bb970d362490abc5238e895e04ab41d828e64c
git at public.curoverse.com
git at public.curoverse.com
Mon Mar 24 19:27:56 EDT 2014
Summary of changes:
apps/workbench/lib/tasks/config_check.rake | 13 ++++-
.../app/controllers/arvados/v1/users_controller.rb | 7 +--
services/api/app/models/user.rb | 54 ++++++++++----------
services/api/lib/tasks/config_check.rake | 13 ++++-
services/api/script/setup-new-user.rb | 5 +-
.../functional/arvados/v1/users_controller_test.rb | 16 +-----
services/api/test/unit/user_test.rb | 12 ----
7 files changed, 59 insertions(+), 61 deletions(-)
via 31bb970d362490abc5238e895e04ab41d828e64c (commit)
via 48b87a694a78f09e8e7c6d05212f1e21aa2423d3 (commit)
via de10e681e82e0cb987ffb95109a6c09a13f49944 (commit)
via 545b33abf34ebbc74fe16e5e541e82d5a79e8457 (commit)
via 1d3810b3150d653314437471d7858cdbf76b62c7 (commit)
from 91526e84bf213e08b602fdbd4e7b69a18d401483 (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 31bb970d362490abc5238e895e04ab41d828e64c
Author: radhika chippada <radhika at radhika.curoverse>
Date: Mon Mar 24 19:27:35 2014 -0400
some minor refactoring
diff --git a/services/api/app/models/user.rb b/services/api/app/models/user.rb
index e2c4130..ae3f31a 100644
--- a/services/api/app/models/user.rb
+++ b/services/api/app/models/user.rb
@@ -111,8 +111,12 @@ class User < ArvadosModel
def self.setup(user, openid_prefix, repo_name=nil, vm_uuid=nil)
login_perm_props = {identity_url_prefix: openid_prefix}
+
if user.uuid
found = User.find_by_uuid user.uuid
+ if found
+ user = found
+ end
end
if !found
@@ -120,22 +124,17 @@ class User < ArvadosModel
raise "No email found in the input. Aborting user creation."
end
- if !user.save
- raise "Save failed"
- end
- else
- user = found
- end
-
- # Check oid_login_perm
- oid_login_perms = Link.where(tail_uuid: user.email,
- head_kind: 'arvados#user',
- link_class: 'permission',
- name: 'can_login')
+ user.save!
+
+ # Check oid_login_perm
+ oid_login_perms = Link.where(tail_uuid: user.email,
+ head_kind: 'arvados#user',
+ link_class: 'permission',
+ name: 'can_login')
- if !oid_login_perms.any?
- # create openid login permission
- oid_login_perm = Link.create(link_class: 'permission',
+ if !oid_login_perms.any?
+ # create openid login permission
+ oid_login_perm = Link.create(link_class: 'permission',
name: 'can_login',
tail_kind: 'email',
tail_uuid: user.email,
@@ -143,9 +142,10 @@ class User < ArvadosModel
head_uuid: user.uuid,
properties: login_perm_props
)
- logger.info { "openid login permission: " + oid_login_perm[:uuid] }
- else
- oid_login_perm = oid_login_perms.first
+ logger.info { "openid login permission: " + oid_login_perm[:uuid] }
+ else
+ oid_login_perm = oid_login_perms.first
+ end
end
# create repo, vm, and group links
diff --git a/services/api/test/functional/arvados/v1/users_controller_test.rb b/services/api/test/functional/arvados/v1/users_controller_test.rb
index c364613..702209b 100644
--- a/services/api/test/functional/arvados/v1/users_controller_test.rb
+++ b/services/api/test/functional/arvados/v1/users_controller_test.rb
@@ -106,8 +106,7 @@ class Arvados::V1::UsersControllerTest < ActionController::TestCase
post :setup, {
uuid: 'bogus_uuid',
repo_name: 'test_repo',
- vm_uuid: @vm_uuid,
- openid_prefix: 'https://www.google.com/accounts/o8/id'
+ vm_uuid: @vm_uuid
}
response_body = JSON.parse(@response.body)
response_errors = response_body['errors']
@@ -135,7 +134,6 @@ class Arvados::V1::UsersControllerTest < ActionController::TestCase
authorize_with :admin
post :setup, {
- #uuid: 'not_an_existing_uuid_and_not_email_format',
repo_name: 'test_repo',
vm_uuid: @vm_uuid,
openid_prefix: 'https://www.google.com/accounts/o8/id'
@@ -174,8 +172,7 @@ class Arvados::V1::UsersControllerTest < ActionController::TestCase
post :setup, {
uuid: inactive_user['uuid'],
repo_name: 'test_repo',
- vm_uuid: @vm_uuid,
- openid_prefix: 'https://www.google.com/accounts/o8/id'
+ vm_uuid: @vm_uuid
}
assert_response :success
@@ -230,8 +227,7 @@ class Arvados::V1::UsersControllerTest < ActionController::TestCase
post :setup, {
uuid: inactive_user['uuid'],
- user: {email: 'junk_email'},
- openid_prefix: 'https://www.google.com/accounts/o8/id'
+ user: {email: 'junk_email'}
}
assert_response :success
@@ -550,9 +546,6 @@ class Arvados::V1::UsersControllerTest < ActionController::TestCase
assert_equal 'test at abc.com', created['email'], 'expected input email'
# verify links
- verify_link response_items, 'oid_login_perm', true, 'permission', 'can_login',
- created['uuid'], created['email'], 'arvados#user', false, 'User'
-
verify_link response_items, 'group_perm', true, 'permission', 'can_read',
'All users', created['uuid'], 'arvados#group', true, 'Group'
@@ -580,9 +573,6 @@ class Arvados::V1::UsersControllerTest < ActionController::TestCase
assert_equal created['email'], 'test at abc.com', 'expected original email'
# verify links
- verify_link response_items, 'oid_login_perm', true, 'permission', 'can_login',
- created['uuid'], created['email'], 'arvados#user', false, 'User'
-
verify_link response_items, 'group_perm', true, 'permission', 'can_read',
'All users', created['uuid'], 'arvados#group', true, 'Group'
diff --git a/services/api/test/unit/user_test.rb b/services/api/test/unit/user_test.rb
index e9886af..2b67864 100644
--- a/services/api/test/unit/user_test.rb
+++ b/services/api/test/unit/user_test.rb
@@ -258,12 +258,6 @@ class UserTest < ActiveSupport::TestCase
verify_user resp_user, email
assert_equal user.uuid, resp_user[:uuid], 'expected uuid not found'
- oid_login_perm = response[:oid_login_perm]
- 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'
-
verify_link response[:group_perm], 'permission', 'can_read',
resp_user[:uuid], nil
@@ -279,12 +273,6 @@ class UserTest < ActiveSupport::TestCase
verify_user resp_user, email
assert_equal user.uuid, resp_user[:uuid], 'expected uuid not found'
- oid_login_perm = response[:oid_login_perm]
- 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'
-
verify_link response[:group_perm], 'permission', 'can_read',
resp_user[:uuid], nil
commit 48b87a694a78f09e8e7c6d05212f1e21aa2423d3
Author: radhika chippada <radhika at radhika.curoverse>
Date: Mon Mar 24 18:53:58 2014 -0400
When uuid is passed, openid_prefix can be optional
diff --git a/services/api/app/controllers/arvados/v1/users_controller.rb b/services/api/app/controllers/arvados/v1/users_controller.rb
index bf3dda0..3d6e61c 100644
--- a/services/api/app/controllers/arvados/v1/users_controller.rb
+++ b/services/api/app/controllers/arvados/v1/users_controller.rb
@@ -100,10 +100,9 @@ class Arvados::V1::UsersController < ApplicationController
raise ArgumentError.new "Required uuid or email"
end
@object = model_class.new resource_attrs
- end
-
- if !params[:openid_prefix]
- raise ArgumentError.new "Required openid_prefix parameter is missing."
+ if !params[:openid_prefix]
+ raise ArgumentError.new "Required openid_prefix parameter is missing."
+ end
end
@response = User.setup @object, params[:openid_prefix],
diff --git a/services/api/app/models/user.rb b/services/api/app/models/user.rb
index 4858a9b..e2c4130 100644
--- a/services/api/app/models/user.rb
+++ b/services/api/app/models/user.rb
@@ -111,12 +111,12 @@ class User < ArvadosModel
def self.setup(user, openid_prefix, repo_name=nil, vm_uuid=nil)
login_perm_props = {identity_url_prefix: openid_prefix}
- if user[:uuid]
- found = User.find_by_uuid user[:uuid]
+ if user.uuid
+ found = User.find_by_uuid user.uuid
end
if !found
- if !user[:email]
+ if !user.email
raise "No email found in the input. Aborting user creation."
end
@@ -128,7 +128,7 @@ class User < ArvadosModel
end
# Check oid_login_perm
- oid_login_perms = Link.where(tail_uuid: user[:email],
+ oid_login_perms = Link.where(tail_uuid: user.email,
head_kind: 'arvados#user',
link_class: 'permission',
name: 'can_login')
@@ -138,9 +138,9 @@ class User < ArvadosModel
oid_login_perm = Link.create(link_class: 'permission',
name: 'can_login',
tail_kind: 'email',
- tail_uuid: user[:email],
+ tail_uuid: user.email,
head_kind: 'arvados#user',
- head_uuid: user[:uuid],
+ head_uuid: user.uuid,
properties: login_perm_props
)
logger.info { "openid login permission: " + oid_login_perm[:uuid] }
@@ -151,13 +151,13 @@ class User < ArvadosModel
# create repo, vm, and group links
response = {user: user, oid_login_perm: oid_login_perm}
- user.setup_links(repo_name, vm_uuid, openid_prefix, response)
+ user.setup_repo_vm_links(repo_name, vm_uuid, response)
return response
end
# create links
- def setup_links(repo_name, vm_uuid, openid_prefix, response)
+ def setup_repo_vm_links(repo_name, vm_uuid, response)
repo_perm = create_user_repo_link repo_name
if repo_perm
response[:repo_perm] = repo_perm
@@ -168,7 +168,7 @@ class User < ArvadosModel
response[:vm_login_perm] = vm_login_perm
end
- group_perm = create_user_group_links
+ group_perm = create_user_group_link
if group_perm
response[:group_perm] = group_perm
end
@@ -324,7 +324,7 @@ class User < ArvadosModel
end
# add the user to the 'All users' group
- def create_user_group_links
+ def create_user_group_link
# Look up the "All users" group (we expect uuid *-*-fffffffffffffff).
group = Group.where(name: 'All users').select do |g|
g[:uuid].match /-f+$/
diff --git a/services/api/script/setup-new-user.rb b/services/api/script/setup-new-user.rb
index 10df472..19f5aeb 100755
--- a/services/api/script/setup-new-user.rb
+++ b/services/api/script/setup-new-user.rb
@@ -38,7 +38,7 @@ arv = Arvados.new(api_version: 'v1')
begin
found_user = arv.user.get(uuid: user_arg)
rescue Arvados::TransactionFailedError
- found = arv.user.list(where: {email: ARGV[0]})[:items]
+ found = arv.user.list(where: {email: user_arg})[:items]
if found.count == 0
if !user_arg.match(/\w\@\w+\.\w+/)
@@ -46,8 +46,7 @@ rescue Arvados::TransactionFailedError
"does not look like an email address. Stop."
end
elsif found.count != 1
- abort "Found #{found.count} users " +
- "with uuid or email #{user_arg.inspect}. Stop."
+ abort "Found #{found.count} users with email. Stop."
else
found_user = found.first
end
commit de10e681e82e0cb987ffb95109a6c09a13f49944
Merge: 91526e8 545b33a
Author: radhika chippada <radhika at radhika.curoverse>
Date: Mon Mar 24 18:10:32 2014 -0400
Merge branch 'master' into 2187-enhance-user-setup
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list