projects
/
arvados.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'wtsi/13093-crunch-dispatch-slurm-add-mem' refs #13093
[arvados.git]
/
services
/
api
/
app
/
controllers
/
user_sessions_controller.rb
diff --git
a/services/api/app/controllers/user_sessions_controller.rb
b/services/api/app/controllers/user_sessions_controller.rb
index 256a67bcbb55aa426e405312fd3908e9dc1177dd..5de85bc98bcbcb1a0051c3ecee355e82292b5a27 100644
(file)
--- a/
services/api/app/controllers/user_sessions_controller.rb
+++ b/
services/api/app/controllers/user_sessions_controller.rb
@@
-1,3
+1,7
@@
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: AGPL-3.0
+
class UserSessionsController < ApplicationController
before_filter :require_auth_scope, :only => [ :destroy ]
class UserSessionsController < ApplicationController
before_filter :require_auth_scope, :only => [ :destroy ]
@@
-15,12
+19,16
@@
class UserSessionsController < ApplicationController
unless identity_url_ok
# Whoa. This should never happen.
logger.error "UserSessionsController.create: omniauth object missing/invalid"
unless identity_url_ok
# Whoa. This should never happen.
logger.error "UserSessionsController.create: omniauth object missing/invalid"
- logger.error "omniauth
.pretty_inspect():\n\n#{omniauth.pretty_inspect()}"
+ logger.error "omniauth
: "+omniauth.pretty_inspect
return redirect_to login_failure_url
end
return redirect_to login_failure_url
end
- user = User.find_by_identity_url(omniauth['info']['identity_url'])
+ # Only local users can create sessions, hence uuid_like_pattern
+ # here.
+ user = User.where('identity_url = ? and uuid like ?',
+ omniauth['info']['identity_url'],
+ User.uuid_like_pattern).first
if not user
# Check for permission to log in to an existing User record with
# a different identity_url
if not user
# Check for permission to log in to an existing User record with
# a different identity_url
@@
-45,6
+53,9
@@
class UserSessionsController < ApplicationController
:identity_url => omniauth['info']['identity_url'],
:is_active => Rails.configuration.new_users_are_active,
:owner_uuid => system_user_uuid)
:identity_url => omniauth['info']['identity_url'],
:is_active => Rails.configuration.new_users_are_active,
:owner_uuid => system_user_uuid)
+ if omniauth['info']['username']
+ user.set_initial_username(requested: omniauth['info']['username'])
+ end
act_as_system_user do
user.save or raise Exception.new(user.errors.messages)
end
act_as_system_user do
user.save or raise Exception.new(user.errors.messages)
end
@@
-93,7
+104,7
@@
class UserSessionsController < ApplicationController
flash[:notice] = 'You have logged off'
return_to = params[:return_to] || root_url
flash[:notice] = 'You have logged off'
return_to = params[:return_to] || root_url
- redirect_to "#{
CUSTOM_PROVIDER_URL
}/users/sign_out?redirect_uri=#{CGI.escape return_to}"
+ redirect_to "#{
Rails.configuration.sso_provider_url
}/users/sign_out?redirect_uri=#{CGI.escape return_to}"
end
# login - Just bounce to /auth/joshid. The only purpose of this function is
end
# login - Just bounce to /auth/joshid. The only purpose of this function is
@@
-124,7
+135,8
@@
class UserSessionsController < ApplicationController
# Stub: automatically register all new API clients
api_client_url_prefix = callback_url.match(%r{^.*?://[^/]+})[0] + '/'
act_as_system_user do
# Stub: automatically register all new API clients
api_client_url_prefix = callback_url.match(%r{^.*?://[^/]+})[0] + '/'
act_as_system_user do
- @api_client = ApiClient.find_or_create_by_url_prefix api_client_url_prefix
+ @api_client = ApiClient.
+ find_or_create_by(url_prefix: api_client_url_prefix)
end
api_client_auth = ApiClientAuthorization.
end
api_client_auth = ApiClientAuthorization.