Compare commits
2 Commits
v0.10.3-et
...
v0.10.3-et
Author | SHA1 | Date | |
---|---|---|---|
![]() |
b925c63171 | ||
![]() |
6faebaf9df |
@@ -2,6 +2,7 @@ import { AppBar, TitlePortal, InspectorButton, Confirm, Layout, Logout, Menu, us
|
||||
import { LoginMethod } from "../pages/LoginPage";
|
||||
import { useEffect, useState, Suspense } from "react";
|
||||
import { Icons, DefaultIcon } from "./icons";
|
||||
import { ClearConfig } from "./config";
|
||||
|
||||
const AdminUserMenu = () => {
|
||||
const [open, setOpen] = useState(false);
|
||||
@@ -21,8 +22,7 @@ const AdminUserMenu = () => {
|
||||
|
||||
const handleDialogClose = () => {
|
||||
setOpen(false);
|
||||
localStorage.removeItem("access_token");
|
||||
localStorage.removeItem("login_type");
|
||||
ClearConfig();
|
||||
window.location.reload();
|
||||
};
|
||||
|
||||
|
@@ -43,6 +43,13 @@ export const LoadConfig = (context: Config): Config => {
|
||||
|
||||
// below we try to calculate "final" config, which will contain values from context and already set values in storage
|
||||
// because LoadConfig could be called multiple times to get config from different sources
|
||||
let finalRestrictBaseUrl: string | string[] = "";
|
||||
try {
|
||||
finalRestrictBaseUrl = JSON.parse(storage.getItem("restrict_base_url") || "");
|
||||
if (Array.isArray(finalRestrictBaseUrl) && finalRestrictBaseUrl.length == 1) {
|
||||
finalRestrictBaseUrl = finalRestrictBaseUrl[0];
|
||||
}
|
||||
} catch (e) {}
|
||||
let finalAsManagedUsers: string[] = [];
|
||||
try {
|
||||
finalAsManagedUsers = JSON.parse(storage.getItem("as_managed_users") || "");
|
||||
@@ -54,10 +61,27 @@ export const LoadConfig = (context: Config): Config => {
|
||||
} catch (e) {}
|
||||
|
||||
return {
|
||||
restrictBaseUrl: storage.getItem("restrict_base_url") || "",
|
||||
restrictBaseUrl: finalRestrictBaseUrl,
|
||||
asManagedUsers: finalAsManagedUsers,
|
||||
supportURL: storage.getItem("support_url") || "",
|
||||
menu: finalMenu,
|
||||
} as Config;
|
||||
|
||||
}
|
||||
|
||||
|
||||
export const ClearConfig = () => {
|
||||
// config.json
|
||||
storage.removeItem("restrict_base_url");
|
||||
storage.removeItem("as_managed_users");
|
||||
storage.removeItem("support_url");
|
||||
storage.removeItem("menu");
|
||||
|
||||
// session
|
||||
storage.removeItem("home_server");
|
||||
storage.removeItem("base_url");
|
||||
storage.removeItem("user_id");
|
||||
storage.removeItem("device_id");
|
||||
storage.removeItem("access_token");
|
||||
storage.removeItem("login_type");
|
||||
}
|
||||
|
@@ -3,6 +3,7 @@ import { AuthProvider, HttpError, Options, fetchUtils } from "react-admin";
|
||||
import storage from "../storage";
|
||||
import { MatrixError, displayError } from "../components/error";
|
||||
import { fetchAuthenticatedMedia } from "../utils/fetchMedia";
|
||||
import { ClearConfig } from "../components/config";
|
||||
|
||||
const authProvider: AuthProvider = {
|
||||
// called when the user attempts to log in
|
||||
@@ -154,8 +155,7 @@ const authProvider: AuthProvider = {
|
||||
} catch (err) {
|
||||
console.log("Error logging out", err);
|
||||
} finally {
|
||||
storage.removeItem("access_token");
|
||||
storage.removeItem("login_type");
|
||||
ClearConfig();
|
||||
}
|
||||
}
|
||||
},
|
||||
|
Reference in New Issue
Block a user