Skip to content

Commit b16e7bb

Browse files
committed
Add Banner and Cloud reads for Alias user
1 parent e51ea81 commit b16e7bb

1 file changed

Lines changed: 32 additions & 2 deletions

File tree

controllers/user.lua

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,12 @@ UserController = {
5151
self.session.user_id = nil
5252
end
5353

54+
if not self.session.previous_username_admin then
55+
self.session.previous_username_admin = ''
56+
end
57+
5458
return jsonResponse({
59+
previous_username_admin = self.session.previous_username_admin,
5560
username = self.session.username,
5661
role = self.session.role,
5762
verified = self.session.verified,
@@ -459,6 +464,10 @@ UserController = {
459464
yield_error(message)
460465
end
461466
end
467+
468+
self.session.previous_username_admin = ''
469+
self.session.previous_cookie_persist_admin = self.params.persist
470+
462471
self.session.username = self.queried_user.username
463472
self.session.role = self.queried_user.role
464473
self.session.verified = self.queried_user.verified
@@ -472,22 +481,43 @@ UserController = {
472481
{ days_left = self.queried_user.days_left })
473482
end
474483
else
484+
-- If the person logging in was the previous admin, reinstate Admin's login
485+
if (self.session.previous_username_admin and (self.session.previous_username_admin == self.queried_user.username)) then
486+
self.session.previous_username_admin = ''
487+
-- self.session.previous_cookie_persist_admin cleared at the end
488+
self.session.username = self.queried_user.username
489+
self.session.role = self.queried_user.role
490+
self.session.verified = self.queried_user.verified
491+
self.session.user_id = self.queried_user.id
492+
self.cookies.persist_session = self.session.previous_cookie_persist_admin
493+
494+
self.session.previous_cookie_persist_admin = 'false'
495+
496+
return okResponse('Alias Logged out. Admin User ' .. self.queried_user.username
497+
.. ' logged back in.')
498+
end
499+
475500
-- Admins can log in as other people
476501
assert_admin(self, 'wrong password')
477-
local previous_username = self.current_user.username
502+
503+
self.session.previous_username_admin = self.current_user.username
504+
self.session.previous_cookie_persist_admin = self.cookies.persist_session
478505
self.session.username = self.queried_user.username
479506
self.session.role = self.queried_user.role
480507
self.session.verified = self.queried_user.verified
481508
self.session.user_id = self.queried_user.id
482509
self.cookies.persist_session = 'false'
483-
return okResponse('User ' .. previous_username ..
510+
511+
return okResponse('User ' .. self.session.previous_username_admin ..
484512
' now logged in as ' .. self.queried_user.username)
485513
end
486514
end,
487515

488516
logout = function (self)
489517
-- POST /logout
490518
-- Description: Logs out the current user from the system.
519+
self.session.previous_username_admin = ''
520+
self.session.previous_cookie_persist_admin = 'false'
491521
self.session.username = ''
492522
self.session.user_id = nil
493523
self.cookies.persist_session = 'false'

0 commit comments

Comments
 (0)