Skip to content

Commit eb283f8

Browse files
committed
Add Banner and Cloud reads for Alias user
1 parent 45786e3 commit eb283f8

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,
@@ -453,6 +458,10 @@ UserController = {
453458
yield_error(message)
454459
end
455460
end
461+
462+
self.session.previous_username_admin = ''
463+
self.session.previous_cookie_persist_admin = self.params.persist
464+
456465
self.session.username = self.queried_user.username
457466
self.session.role = self.queried_user.role
458467
self.session.verified = self.queried_user.verified
@@ -466,22 +475,43 @@ UserController = {
466475
{ days_left = self.queried_user.days_left })
467476
end
468477
else
478+
-- If the person logging in was the previous admin, reinstate Admin's login
479+
if (self.session.previous_username_admin and (self.session.previous_username_admin == self.queried_user.username)) then
480+
self.session.previous_username_admin = ''
481+
-- self.session.previous_cookie_persist_admin cleared at the end
482+
self.session.username = self.queried_user.username
483+
self.session.role = self.queried_user.role
484+
self.session.verified = self.queried_user.verified
485+
self.session.user_id = self.queried_user.id
486+
self.cookies.persist_session = self.session.previous_cookie_persist_admin
487+
488+
self.session.previous_cookie_persist_admin = 'false'
489+
490+
return okResponse('Alias Logged out. Admin User ' .. self.queried_user.username
491+
.. ' logged back in.')
492+
end
493+
469494
-- Admins can log in as other people
470495
assert_admin(self, 'wrong password')
471-
local previous_username = self.current_user.username
496+
497+
self.session.previous_username_admin = self.current_user.username
498+
self.session.previous_cookie_persist_admin = self.cookies.persist_session
472499
self.session.username = self.queried_user.username
473500
self.session.role = self.queried_user.role
474501
self.session.verified = self.queried_user.verified
475502
self.session.user_id = self.queried_user.id
476503
self.cookies.persist_session = 'false'
477-
return okResponse('User ' .. previous_username ..
504+
505+
return okResponse('User ' .. self.session.previous_username_admin ..
478506
' now logged in as ' .. self.queried_user.username)
479507
end
480508
end,
481509

482510
logout = function (self)
483511
-- POST /logout
484512
-- Description: Logs out the current user from the system.
513+
self.session.previous_username_admin = ''
514+
self.session.previous_cookie_persist_admin = 'false'
485515
self.session.username = ''
486516
self.session.user_id = nil
487517
self.cookies.persist_session = 'false'

0 commit comments

Comments
 (0)