d1548572d4
This change improves privacy/security by ensuring all local storage (which includes settings, etc.) is destroyed on sign out or when revoking a remote session. Because signing out is now more "risky", the button has been moved to the settings along with other existing sessions. This commit: - Removes the power/sign-out icon from the sidebar footer (gives additional room for when the admin panel gets added) - Adds a "Sign out" button next to the current session info in the settings session list - Renames "Disconnect" buttons into "Revoke" to better clarify the intent (I will admit that I borrowed the wording from Telegram) - Fixes incorrect `localStorage.remove` method - Uses Sinon.js to mock wrappers for `window.localStorage` and `window.location` (does not mock those themselves, in the "Do not mock what you do not own" fashion, mock our layer instead). I expect we will be able to test a bit more from the UI with this. A good next candidate will be the `mockLogger` things.
23 lines
508 B
JavaScript
23 lines
508 B
JavaScript
"use strict";
|
|
|
|
module.exports = {
|
|
set(key, value) {
|
|
try {
|
|
window.localStorage.setItem(key, value);
|
|
} catch (e) {
|
|
// Do nothing. If we end up here, web storage quota exceeded, or user is
|
|
// in Safari's private browsing where localStorage's setItem is not
|
|
// available. See http://stackoverflow.com/q/14555347/1935861.
|
|
}
|
|
},
|
|
get(key) {
|
|
return window.localStorage.getItem(key);
|
|
},
|
|
remove(key) {
|
|
window.localStorage.removeItem(key);
|
|
},
|
|
clear() {
|
|
window.localStorage.clear();
|
|
},
|
|
};
|