Revision e44762c8
Added by Eric Helms almost 10 years ago
app/controllers/concerns/foreman/controller/authentication.rb | ||
---|---|---|
|
||
def set_current_user(user)
|
||
User.current = user
|
||
Foreman::Controller::UsersMixin.set_current_taxonomies(user)
|
||
|
||
# API access shouldn't modify the session, its authentication should be
|
||
# stateless. Other successful logins should create new session IDs.
|
||
... | ... | |
backup_session_content { reset_session }
|
||
session[:user] = user.id
|
||
update_activity_time
|
||
Foreman::Controller::UsersMixin.set_current_taxonomies(user, {:session => session})
|
||
end
|
||
user.present?
|
||
end
|
app/controllers/concerns/foreman/controller/users_mixin.rb | ||
---|---|---|
sub_hg.each { |hg| hg.users << @user }
|
||
end
|
||
|
||
def set_current_taxonomies(user)
|
||
def set_current_taxonomies(user, options = {})
|
||
session ||= options.fetch(:session, {})
|
||
['location', 'organization'].each do |taxonomy|
|
||
default_taxonomy = user.send "default_#{taxonomy}"
|
||
if default_taxonomy.present?
|
app/controllers/users_controller.rb | ||
---|---|---|
session[:user] = user.id
|
||
uri = session[:original_uri]
|
||
session[:original_uri] = nil
|
||
set_current_taxonomies(user)
|
||
set_current_taxonomies(user, {:session => session})
|
||
TopbarSweeper.expire_cache(self)
|
||
redirect_to (uri || hosts_path)
|
||
end
|
Also available in: Unified diff
Fixes #5645: Fixes session undefined error when user has a default taxonomy set.