Propagate admin action lifespan to ResetCredentialDialog (#32547) (#32671)

Fixes #32547

Signed-off-by: Thomas Darimont <thomas.darimont@googlemail.com>
This commit is contained in:
Thomas Darimont 2024-09-16 11:45:53 +02:00 committed by GitHub
parent 7625e3b4ea
commit 3fe5d4847a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 8 additions and 12 deletions

View file

@ -1,6 +1,5 @@
import { useTranslation } from "react-i18next"; import { useTranslation } from "react-i18next";
import { TimeSelectorControl } from "../../components/time-selector/TimeSelectorControl"; import { TimeSelectorControl } from "../../components/time-selector/TimeSelectorControl";
import { credResetFormDefaultValues } from "./ResetCredentialDialog";
export const LifespanField = () => { export const LifespanField = () => {
const { t } = useTranslation(); const { t } = useTranslation();
@ -12,9 +11,7 @@ export const LifespanField = () => {
labelIcon={t("lifespanHelp")} labelIcon={t("lifespanHelp")}
units={["minute", "hour", "day"]} units={["minute", "hour", "day"]}
menuAppendTo="parent" menuAppendTo="parent"
controller={{ controller={{}}
defaultValue: credResetFormDefaultValues.lifespan,
}}
/> />
); );
}; };

View file

@ -8,6 +8,7 @@ import { useAlerts } from "@keycloak/keycloak-ui-shared";
import { ConfirmDialogModal } from "../../components/confirm-dialog/ConfirmDialog"; import { ConfirmDialogModal } from "../../components/confirm-dialog/ConfirmDialog";
import { LifespanField } from "./LifespanField"; import { LifespanField } from "./LifespanField";
import { RequiredActionMultiSelect } from "./RequiredActionMultiSelect"; import { RequiredActionMultiSelect } from "./RequiredActionMultiSelect";
import { useRealm } from "../../context/realm-context/RealmContext";
type ResetCredentialDialogProps = { type ResetCredentialDialogProps = {
userId: string; userId: string;
@ -16,12 +17,7 @@ type ResetCredentialDialogProps = {
type CredentialResetForm = { type CredentialResetForm = {
actions: RequiredActionAlias[]; actions: RequiredActionAlias[];
lifespan: number; lifespan: number | undefined;
};
export const credResetFormDefaultValues: CredentialResetForm = {
actions: [],
lifespan: 43200, // 12 hours
}; };
export const ResetCredentialDialog = ({ export const ResetCredentialDialog = ({
@ -29,10 +25,13 @@ export const ResetCredentialDialog = ({
onClose, onClose,
}: ResetCredentialDialogProps) => { }: ResetCredentialDialogProps) => {
const { adminClient } = useAdminClient(); const { adminClient } = useAdminClient();
const { realmRepresentation: realm } = useRealm();
const { t } = useTranslation(); const { t } = useTranslation();
const form = useForm<CredentialResetForm>({ const form = useForm<CredentialResetForm>({
defaultValues: credResetFormDefaultValues, defaultValues: {
actions: [],
lifespan: realm?.actionTokenGeneratedByAdminLifespan,
},
}); });
const { handleSubmit, control } = form; const { handleSubmit, control } = form;