diff --git a/client/coral-admin/src/actions/auth.js b/client/coral-admin/src/actions/auth.js
index 332d756c0..6892080cd 100644
--- a/client/coral-admin/src/actions/auth.js
+++ b/client/coral-admin/src/actions/auth.js
@@ -33,6 +33,7 @@ export const handleLogin = (email, password, recaptchaResponse) => (
if (!user) {
if (!bowser.safari && !bowser.ios && storage) {
storage.removeItem('token');
+ storage.removeItem('exp');
}
return dispatch(checkLoginFailure('not logged in'));
}
@@ -128,6 +129,7 @@ export const checkLogin = () => (dispatch, _, { rest, client, storage }) => {
if (!user) {
if (!bowser.safari && !bowser.ios && storage) {
storage.removeItem('token');
+ storage.removeItem('exp');
}
return dispatch(checkLoginFailure('not logged in'));
}
@@ -152,6 +154,7 @@ export const logout = () => (dispatch, _, { rest, client, storage }) => {
return rest('/auth', { method: 'DELETE' }).then(() => {
if (storage) {
storage.removeItem('token');
+ storage.removeItem('exp');
}
// Reset the websocket.
diff --git a/client/coral-admin/src/routes/Moderation/components/ModerationQueue.js b/client/coral-admin/src/routes/Moderation/components/ModerationQueue.js
index ce957b82d..93786013f 100644
--- a/client/coral-admin/src/routes/Moderation/components/ModerationQueue.js
+++ b/client/coral-admin/src/routes/Moderation/components/ModerationQueue.js
@@ -397,6 +397,13 @@ class ModerationQueue extends React.Component {
const index = comments.findIndex(
comment => comment.id === selectedCommentId
);
+
+ // This can happen temporarily when we call redux to change the selected comment
+ // but it didn't fully take effect yet.
+ if (index === -1) {
+ return null;
+ }
+
const comment = comments[index];
return (
diff --git a/client/coral-admin/src/routes/Stories/components/Stories.css b/client/coral-admin/src/routes/Stories/components/Stories.css
index e8e2b8474..63a05ab6a 100644
--- a/client/coral-admin/src/routes/Stories/components/Stories.css
+++ b/client/coral-admin/src/routes/Stories/components/Stories.css
@@ -56,6 +56,7 @@
width: 100%;
border-left: none;
border-right: none;
+ white-space: pre-wrap;
a {
color: rgb(44, 44, 44);
diff --git a/client/coral-embed-stream/src/actions/auth.js b/client/coral-embed-stream/src/actions/auth.js
index e74265026..4406c744c 100644
--- a/client/coral-embed-stream/src/actions/auth.js
+++ b/client/coral-embed-stream/src/actions/auth.js
@@ -266,6 +266,7 @@ export const logout = () => async (
if (storage) {
storage.removeItem('token');
+ storage.removeItem('exp');
}
// Reset the websocket.
@@ -304,6 +305,7 @@ export const checkLogin = () => (
if (!result.user) {
if (storage) {
storage.removeItem('token');
+ storage.removeItem('exp');
}
throw ErrNotLoggedIn;
}
@@ -329,6 +331,7 @@ export const checkLogin = () => (
if (error.status && error.status === 401 && storage) {
// Unauthorized.
storage.removeItem('token');
+ storage.removeItem('exp');
}
const errorMessage = error.translation_key
? t(`error.${error.translation_key}`)
diff --git a/client/coral-embed-stream/src/components/Embed.js b/client/coral-embed-stream/src/components/Embed.js
index 980e5745e..0fd257ef2 100644
--- a/client/coral-embed-stream/src/components/Embed.js
+++ b/client/coral-embed-stream/src/components/Embed.js
@@ -43,7 +43,7 @@ export default class Embed extends React.Component {
{t('framework.my_profile')}
,
];
- if (can(user, 'UPDATE_CONFIG')) {
+ if (can(user, 'UPDATE_ASSET_CONFIG')) {
tabs.push(
{
map[prop] = t('sign_in.required_field');
@@ -49,6 +48,14 @@ class SignInContainer extends React.Component {
}
componentWillUnmount() {
+ this.unlisten();
+ }
+
+ listenToStorageChanges() {
+ window.addEventListener('storage', this.handleAuth);
+ }
+
+ unlisten() {
window.removeEventListener('storage', this.handleAuth);
}
@@ -60,6 +67,8 @@ class SignInContainer extends React.Component {
if (e.key === 'auth') {
const { err, data } = JSON.parse(e.newValue);
authCallback(err, data);
+ this.unlisten();
+ localStorage.removeItem('auth');
}
};
diff --git a/views/admin/confirm-email.ejs b/views/admin/confirm-email.ejs
index f8f6c62f2..8c0d85e01 100644
--- a/views/admin/confirm-email.ejs
+++ b/views/admin/confirm-email.ejs
@@ -6,7 +6,7 @@
Email Verification
-
+
<%_ if (locals.customCssUrl) { _%>
<%_ } _%>
diff --git a/views/admin/password-reset.ejs b/views/admin/password-reset.ejs
index c5bb4ef90..ae06b5179 100644
--- a/views/admin/password-reset.ejs
+++ b/views/admin/password-reset.ejs
@@ -6,7 +6,7 @@
Password Reset
-
+
<%_ if (locals.customCssUrl) { _%>
<%_ } _%>