Make expired tokens more visibles
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing

This commit is contained in:
Pierre HUBERT 2024-04-23 18:22:41 +02:00
parent 865494572f
commit 592466bcc8
2 changed files with 21 additions and 7 deletions

View File

@ -1,3 +1,4 @@
import { time } from "../utils/DateUtils";
import { APIClient } from "./ApiClient";
export type RightVerb = "POST" | "GET" | "PUT" | "DELETE" | "PATCH";
@ -23,6 +24,11 @@ export function APITokenURL(t: APIToken, edit: boolean = false): string {
return `/token/${t.id}${edit ? "/edit" : ""}`;
}
export function ExpiredAPIToken(t: APIToken): boolean {
if (!t.max_inactivity) return false;
return t.last_used + t.max_inactivity < time();
}
export interface APITokenPrivateKey {
alg: string;
priv: string;

View File

@ -1,6 +1,4 @@
import React from "react";
import { APIToken, APITokenURL, TokensApi } from "../api/TokensApi";
import { AsyncWidget } from "../widgets/AsyncWidget";
import VisibilityIcon from "@mui/icons-material/Visibility";
import {
Button,
IconButton,
@ -12,11 +10,18 @@ import {
TableHead,
TableRow,
} from "@mui/material";
import { RouterLink } from "../widgets/RouterLink";
import { VirtWebRouteContainer } from "../widgets/VirtWebRouteContainer";
import React from "react";
import { useNavigate } from "react-router-dom";
import VisibilityIcon from "@mui/icons-material/Visibility";
import {
APIToken,
APITokenURL,
ExpiredAPIToken,
TokensApi,
} from "../api/TokensApi";
import { AsyncWidget } from "../widgets/AsyncWidget";
import { RouterLink } from "../widgets/RouterLink";
import { TimeWidget, timeDiff } from "../widgets/TimeWidget";
import { VirtWebRouteContainer } from "../widgets/VirtWebRouteContainer";
export function TokensListRoute(): React.ReactElement {
const [list, setList] = React.useState<APIToken[] | undefined>();
@ -74,8 +79,11 @@ export function TokensListRouteInner(p: {
key={t.id}
hover
onDoubleClick={() => navigate(APITokenURL(t))}
style={{ backgroundColor: ExpiredAPIToken(t) ? "red" : "" }}
>
<TableCell>{t.name}</TableCell>
<TableCell>
{t.name} {ExpiredAPIToken(t) && <i>(Expired)</i>}
</TableCell>
<TableCell>{t.description}</TableCell>
<TableCell>
<TimeWidget time={t.created} />