diff --git a/static/js/admin.js b/static/js/admin.js index 4eda105..ee2ca88 100644 --- a/static/js/admin.js +++ b/static/js/admin.js @@ -185,12 +185,13 @@ function becomeButton (user) { function () { SnapCloud.login( user.username, - 0, // password is irrelevant + '', // password is irrelevant, but can't be null false, // persist - function (username, role, response) { + function (username, role, previous_username_admin, response) { alert( response.message, function () { + sessionStorage.previous_username_admin = previous_username_admin; sessionStorage.username = username; sessionStorage.role = role; location.href = 'profile'; diff --git a/static/js/base.js b/static/js/base.js index ce86c33..299d638 100644 --- a/static/js/base.js +++ b/static/js/base.js @@ -39,6 +39,16 @@ function fillVisitorFields () { } }; +function fillAliasAlert () { + if (sessionStorage.username && sessionStorage.previous_username_admin) { + document.querySelectorAll('.aliasAlert.warning.message').forEach(function (each) { + each.innerHTML = escapeHtml( + 'Admin account ' + sessionStorage.previous_username_admin + ' is logged in as ' + sessionStorage.username + ); + }); + } +}; + function fillUsernameFields () { var username = pageUser(); if (username) { diff --git a/templates/alias_alert_banner.tmp b/templates/alias_alert_banner.tmp new file mode 100644 index 0000000..2272310 --- /dev/null +++ b/templates/alias_alert_banner.tmp @@ -0,0 +1,42 @@ + + + diff --git a/templates/base.tmp b/templates/base.tmp index 227a880..3c393f3 100644 --- a/templates/base.tmp +++ b/templates/base.tmp @@ -34,6 +34,7 @@ @include=navigation_bar + @include=alias_alert_banner
@content
@@ -48,16 +49,17 @@ if (!sessionStorage.username) { SnapCloud.initSession( function (username, role) { + sessionStorage.previous_username_admin = null; sessionStorage.username = username; sessionStorage.role = role; - initForUsername(username); + initForUsername(username, sessionStorage.previous_username_admin); } ); } else { - initForUsername(sessionStorage.username); + initForUsername(sessionStorage.username, sessionStorage.previous_username_admin); } - function initForUsername (username) { + function initForUsername (username, previous_username_admin) { if (username) { SnapCloud.username = username; document.querySelector('li.join').hidden = true; @@ -69,9 +71,12 @@ document.querySelector('.admin').hidden = false; } fillVisitorFields(); - if (typeof Sentry !== 'undefined') { - Sentry.setUser({ username: sessionStorage.username }); + + if (previous_username_admin) { + document.querySelector('div.aliasAlert.warning').hidden = false; + fillAliasAlert(); } + } else { document.querySelector('li.join').hidden = false; document.querySelector('li.sign-in').hidden = false; diff --git a/templates/login.tmp b/templates/login.tmp index b891009..93066bc 100644 --- a/templates/login.tmp +++ b/templates/login.tmp @@ -53,8 +53,9 @@ username, password, persist, - function (username, role) { + function (username, role, previous_username_admin, response) { // TODO: this should handle verification. + sessionStorage.previous_username_admin = previous_username_admin; sessionStorage.username = username; sessionStorage.role = role; window.location.href = redirectPath();