diff --git a/ui/webui/src/components/AnacondaWizard.jsx b/ui/webui/src/components/AnacondaWizard.jsx index 4cf9ff2a960..430fc0aeaec 100644 --- a/ui/webui/src/components/AnacondaWizard.jsx +++ b/ui/webui/src/components/AnacondaWizard.jsx @@ -53,7 +53,7 @@ import { SystemTypeContext, OsReleaseContext } from "./Common.jsx"; const _ = cockpit.gettext; const N_ = cockpit.noop; -export const AnacondaWizard = ({ dispatch, storageData, localizationData, onCritFail, title, conf }) => { +export const AnacondaWizard = ({ dispatch, storageData, localizationData, runtimeData, onCritFail, title, conf }) => { const [isFormDisabled, setIsFormDisabled] = useState(false); const [isFormValid, setIsFormValid] = useState(false); const [requiredMountPoints, setRequiredMountPoints] = useState(); @@ -133,7 +133,11 @@ export const AnacondaWizard = ({ dispatch, storageData, localizationData, onCrit ...getMountPointMappingProps({ storageScenarioId }) }, { component: DiskEncryption, - data: { storageEncryption, setStorageEncryption }, + data: { + storageEncryption, + setStorageEncryption, + passwordPolicies: runtimeData.passwordPolicies, + }, ...getDiskEncryptionProps({ storageScenarioId }) }] }, diff --git a/ui/webui/src/components/app.jsx b/ui/webui/src/components/app.jsx index 38732be4dc7..ea6939cdb90 100644 --- a/ui/webui/src/components/app.jsx +++ b/ui/webui/src/components/app.jsx @@ -149,6 +149,7 @@ export const Application = () => { title={title} storageData={state.storage} localizationData={state.localization} + runtimeData={state.runtime} dispatch={dispatch} conf={conf} osRelease={osRelease} diff --git a/ui/webui/src/components/storage/DiskEncryption.jsx b/ui/webui/src/components/storage/DiskEncryption.jsx index 72e6e3bb879..04ad47f0f50 100644 --- a/ui/webui/src/components/storage/DiskEncryption.jsx +++ b/ui/webui/src/components/storage/DiskEncryption.jsx @@ -47,8 +47,6 @@ import CheckCircleIcon from "@patternfly/react-icons/dist/esm/icons/check-circle import "./DiskEncryption.scss"; -import { getPasswordPolicies } from "../../apis/runtime.js"; - const _ = cockpit.gettext; /* Calculate the password quality levels based on the password policy @@ -113,7 +111,7 @@ const passwordStrengthLabel = (idPrefix, strength, strengthLevels) => { // TODO create strengthLevels object with methods passed to the component ? const PasswordFormFields = ({ idPrefix, - luksPolicies, + policy, password, passwordLabel, onChange, @@ -172,7 +170,7 @@ const PasswordFormFields = ({ variant={ruleLength} component="li" > - {cockpit.format(_("Must be at least $0 characters"), luksPolicies["min-length"].v)} + {cockpit.format(_("Must be at least $0 characters"), policy["min-length"].v)} {ruleAscii && { const [password, setPassword] = useState(storageEncryption.password); const [confirmPassword, setConfirmPassword] = useState(storageEncryption.confirmPassword); const [passwordStrength, setPasswordStrength] = useState(""); const isEncrypted = storageEncryption.encrypt; - const [luksPolicies, setLuksPolicies] = useState(); - - useEffect(() => { - getPasswordPolicies().then(policies => setLuksPolicies(policies.luks)); - }, []); + const luksPolicy = passwordPolicies.luks; const ruleConfirmMatches = useMemo(() => { return getRuleConfirmMatches(password, confirmPassword); }, [password, confirmPassword]); const ruleLength = useMemo(() => { - return luksPolicies && getRuleLength(password, luksPolicies["min-length"].v); - }, [password, luksPolicies]); + return luksPolicy && getRuleLength(password, luksPolicy["min-length"].v); + }, [password, luksPolicy]); const ruleAscii = useMemo(() => { return password.length > 0 && !/^[\x20-\x7F]*$/.test(password); }, [password]); const strengthLevels = useMemo(() => { - return luksPolicies && getStrengthLevels(luksPolicies["min-quality"].v, luksPolicies["is-strict"].v); - }, [luksPolicies]); + return luksPolicy && getStrengthLevels(luksPolicy["min-quality"].v, luksPolicy["is-strict"].v); + }, [luksPolicy]); const encryptedDevicesCheckbox = content => ( ({ ...se, confirmPassword })); }, [confirmPassword, setStorageEncryption]); - if (isInProgress || !luksPolicies) { + if (isInProgress) { return CheckDisksSpinner; }