From 1922c8423efa1f5b4828b85233891b5f5447420f Mon Sep 17 00:00:00 2001 From: Philipp Rothmann Date: Tue, 8 Nov 2022 13:30:09 +0100 Subject: [PATCH] renaming stuff, admin area --- backend/helpers/authentik_api.py | 2 +- public/assets/zammad.svg | 30 ++++++++++++++++ public/markdown/authentik.md | 1 + public/markdown/zammad.md | 1 + src/App.tsx | 3 +- src/components/Header/HeaderLIT.tsx | 6 ++-- src/components/Header/index.ts | 3 +- src/components/Layout/Layout.tsx | 4 +-- src/components/index.ts | 2 +- src/modules/dashboard/DashboardLIT.tsx | 30 +++++++++++++--- .../DashboardCard/DashboardCardLIT.tsx | 2 +- .../components/DashboardCard/index.ts | 2 +- .../DashboardUtility/DashboardUtilityLIT.tsx | 36 +++++++++++++++++++ .../components/DashboardUtility/index.ts | 2 +- src/modules/dashboard/consts.ts | 4 +-- src/modules/dashboard/index.ts | 2 +- 16 files changed, 109 insertions(+), 21 deletions(-) create mode 100644 public/assets/zammad.svg create mode 100644 public/markdown/authentik.md create mode 100644 public/markdown/zammad.md create mode 100644 src/modules/dashboard/components/DashboardUtility/DashboardUtilityLIT.tsx diff --git a/backend/helpers/authentik_api.py b/backend/helpers/authentik_api.py index e0dc69d..1f4152c 100644 --- a/backend/helpers/authentik_api.py +++ b/backend/helpers/authentik_api.py @@ -24,7 +24,7 @@ class AuthentikApi: # TODO: check if can be replaced with apispec generated api? res = requests.get(f"{AUTHENTIK_BASEURL}{url}", headers={ "Authorization": f"Bearer {AuthentikApi.__token()}"}) AuthentikApi.__handleError(res) - if (res.json()["pagination"]): + if ("pagination" in res.json()): return AuthentikApi.__paginate(res) return res.json() except AuthentikError as err: diff --git a/public/assets/zammad.svg b/public/assets/zammad.svg new file mode 100644 index 0000000..0685eb7 --- /dev/null +++ b/public/assets/zammad.svg @@ -0,0 +1,30 @@ + + + + logo + Created with Sketch. + + + + + \ No newline at end of file diff --git a/public/markdown/authentik.md b/public/markdown/authentik.md new file mode 100644 index 0000000..3c48a26 --- /dev/null +++ b/public/markdown/authentik.md @@ -0,0 +1 @@ +Verwalte User und Gruppen \ No newline at end of file diff --git a/public/markdown/zammad.md b/public/markdown/zammad.md new file mode 100644 index 0000000..b1252f6 --- /dev/null +++ b/public/markdown/zammad.md @@ -0,0 +1 @@ +Ticketsystem \ No newline at end of file diff --git a/src/App.tsx b/src/App.tsx index 83bb6f2..e225b1b 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -13,7 +13,6 @@ import { Login } from './modules/login'; import { Users } from './modules/users/Users'; import { AppSingle } from './modules/apps/AppSingle'; import { Apps } from './modules/apps/Apps'; -import { DashboardLIT } from './modules/dashboard/DashboardLIT'; // eslint-disable-next-line @typescript-eslint/no-unused-vars function App() { @@ -53,7 +52,7 @@ function App() { ) : ( - } /> + } /> {apps.map((app) => ( } /> ))} diff --git a/src/components/Header/HeaderLIT.tsx b/src/components/Header/HeaderLIT.tsx index 8deba39..7a4cc75 100644 --- a/src/components/Header/HeaderLIT.tsx +++ b/src/components/Header/HeaderLIT.tsx @@ -8,7 +8,7 @@ import clsx from 'clsx'; import { useApps } from 'src/services/apps'; const navigation = [ - { name: 'Users', to: '/users', requiresAdmin: true }, + { name: '', to: '/users', requiresAdmin: true }, // { name: 'Apps', to: '/apps', requiresAdmin: true }, ]; @@ -79,7 +79,7 @@ const HeaderLIT: React.FC = () => { {app.name} ))} - {navigationItems.map((item) => ( + {/* {navigationItems.map((item) => ( = () => { > {item.name} - ))} + ))} */}
diff --git a/src/components/Header/index.ts b/src/components/Header/index.ts index 527f03a..8295dc8 100644 --- a/src/components/Header/index.ts +++ b/src/components/Header/index.ts @@ -1,2 +1 @@ -export { default as Header } from './Header'; -export { default as HeaderLIT } from './HeaderLIT'; +export { default as Header } from './HeaderLIT'; diff --git a/src/components/Layout/Layout.tsx b/src/components/Layout/Layout.tsx index 9467e21..ab60d93 100644 --- a/src/components/Layout/Layout.tsx +++ b/src/components/Layout/Layout.tsx @@ -1,10 +1,10 @@ import React from 'react'; -import { HeaderLIT } from '../Header'; +import { Header } from '../Header'; const Layout: React.FC = ({ children }) => { return ( <> - +
{children} diff --git a/src/components/index.ts b/src/components/index.ts index 7c60c55..6f9b27a 100644 --- a/src/components/index.ts +++ b/src/components/index.ts @@ -1,5 +1,5 @@ export { Layout } from './Layout'; -export { Header, HeaderLIT } from './Header'; +export { Header } from './Header'; export { Table } from './Table'; export { Banner } from './Banner'; export { Tabs } from './Tabs'; diff --git a/src/modules/dashboard/DashboardLIT.tsx b/src/modules/dashboard/DashboardLIT.tsx index daab975..47a3305 100644 --- a/src/modules/dashboard/DashboardLIT.tsx +++ b/src/modules/dashboard/DashboardLIT.tsx @@ -1,9 +1,13 @@ import React, { useEffect } from 'react'; -import { useApps } from 'src/services/apps'; -import { DashboardCardLIT } from './components/DashboardCard/DashboardCardLIT'; +import { AppStatusEnum, useApps } from 'src/services/apps'; +import { useAuth } from 'src/services/auth'; +import { DashboardUtility } from './components'; +import { DashboardCard } from './components/DashboardCard/DashboardCardLIT'; +import { UTILITY_APPS } from './consts'; -export const DashboardLIT: React.FC = () => { +export const Dashboard: React.FC = () => { const { apps, loadApps, appTableLoading } = useApps(); + const { isAdmin } = useAuth(); // Tell React to load the apps useEffect(() => { @@ -21,9 +25,27 @@ export const DashboardLIT: React.FC = () => {
- {!appTableLoading && apps.map((app) => )} + {!appTableLoading && + apps + .filter((app) => UTILITY_APPS.indexOf(app.slug) === -1) + .map((app) => )}
+ {isAdmin && ( +
+
+

Administration

+
+ +
+ {apps + .filter((app) => UTILITY_APPS.indexOf(app.slug) !== -1 && app.url !== null) + .map((app) => ( + + ))} +
+
+ )} ); }; diff --git a/src/modules/dashboard/components/DashboardCard/DashboardCardLIT.tsx b/src/modules/dashboard/components/DashboardCard/DashboardCardLIT.tsx index 98f0105..f82587e 100644 --- a/src/modules/dashboard/components/DashboardCard/DashboardCardLIT.tsx +++ b/src/modules/dashboard/components/DashboardCard/DashboardCardLIT.tsx @@ -1,7 +1,7 @@ import React from 'react'; import { Link } from 'react-router-dom'; -export const DashboardCardLIT: React.FC = ({ app }: { app: any }) => { +export const DashboardCard: React.FC = ({ app }: { app: any }) => { return ( <> = ({ item }: { item: any }) => { + const [content, setContent] = useState(''); + + useEffect(() => { + fetch(item.markdownSrc) + .then((res) => res.text()) + .then((md) => { + return setContent(md); + }) + .catch(() => {}); + }, [item.markdownSrc]); + + return ( + +
+ {item.icon &&
+
+
{item.name}
+
+ {content} +
+
+ + ); +}; diff --git a/src/modules/dashboard/components/DashboardUtility/index.ts b/src/modules/dashboard/components/DashboardUtility/index.ts index 24e4b68..1e5aba6 100644 --- a/src/modules/dashboard/components/DashboardUtility/index.ts +++ b/src/modules/dashboard/components/DashboardUtility/index.ts @@ -1 +1 @@ -export { DashboardUtility } from './DashboardUtility'; +export { DashboardUtility } from './DashboardUtilityLIT'; diff --git a/src/modules/dashboard/consts.ts b/src/modules/dashboard/consts.ts index d31a0a9..10bce99 100644 --- a/src/modules/dashboard/consts.ts +++ b/src/modules/dashboard/consts.ts @@ -10,7 +10,7 @@ export const DASHBOARD_QUICK_ACCESS = [ ]; /** Apps that should not be shown on the dashboard */ -export const HIDDEN_APPS = ['dashboard', 'velero']; +export const HIDDEN_APPS = ['dashboard']; /** Apps that should be shown under "Utilities" */ -export const UTILITY_APPS = ['monitoring']; +export const UTILITY_APPS = ['authentik', 'zammad']; diff --git a/src/modules/dashboard/index.ts b/src/modules/dashboard/index.ts index 41a54b5..f090df8 100644 --- a/src/modules/dashboard/index.ts +++ b/src/modules/dashboard/index.ts @@ -1 +1 @@ -export { Dashboard } from './Dashboard'; +export { Dashboard } from './DashboardLIT';