This commit is contained in:
@ -17,7 +17,9 @@ export function CheckboxInput(p: {
|
|||||||
<Checkbox
|
<Checkbox
|
||||||
disabled={!p.editable}
|
disabled={!p.editable}
|
||||||
checked={p.checked}
|
checked={p.checked}
|
||||||
onChange={(e) => { p.onValueChange(e.target.checked); }}
|
onChange={(e) => {
|
||||||
|
p.onValueChange(e.target.checked);
|
||||||
|
}}
|
||||||
/>
|
/>
|
||||||
}
|
}
|
||||||
label={p.label}
|
label={p.label}
|
||||||
|
@ -214,6 +214,23 @@ function CloudInitUserDataAssistant(p: CloudInitProps): React.ReactElement {
|
|||||||
onChange={onChange}
|
onChange={onChange}
|
||||||
yaml={user_data}
|
yaml={user_data}
|
||||||
/>
|
/>
|
||||||
|
<CloudInitBooleanInput
|
||||||
|
editable={p.editable}
|
||||||
|
name="Expire password to require new password on next login"
|
||||||
|
yaml={user_data}
|
||||||
|
attrPath={["chpasswd", "expire"]}
|
||||||
|
onChange={onChange}
|
||||||
|
refUrl="https://cloudinit.readthedocs.io/en/latest/reference/modules.html#set-passwords"
|
||||||
|
/>
|
||||||
|
<br />
|
||||||
|
<CloudInitBooleanInput
|
||||||
|
editable={p.editable}
|
||||||
|
name="Enable SSH password auth"
|
||||||
|
yaml={user_data}
|
||||||
|
attrPath={["ssh_pwauth"]}
|
||||||
|
onChange={onChange}
|
||||||
|
refUrl="https://cloudinit.readthedocs.io/en/latest/reference/modules.html#set-passwords"
|
||||||
|
/>
|
||||||
<CloudInitTextInput
|
<CloudInitTextInput
|
||||||
editable={p.editable}
|
editable={p.editable}
|
||||||
name="Keyboard layout"
|
name="Keyboard layout"
|
||||||
@ -262,3 +279,25 @@ function CloudInitTextInput(p: {
|
|||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function CloudInitBooleanInput(p: {
|
||||||
|
editable: boolean;
|
||||||
|
name: string;
|
||||||
|
refUrl: string;
|
||||||
|
attrPath: Iterable<unknown>;
|
||||||
|
yaml: YAML.Document;
|
||||||
|
onChange: () => void;
|
||||||
|
}): React.ReactElement {
|
||||||
|
return (
|
||||||
|
<CheckboxInput
|
||||||
|
editable={p.editable}
|
||||||
|
label={p.name}
|
||||||
|
checked={p.yaml.getIn(p.attrPath) === true}
|
||||||
|
onValueChange={(v) => {
|
||||||
|
if (v !== undefined) p.yaml.setIn(p.attrPath, v);
|
||||||
|
else p.yaml.deleteIn(p.attrPath);
|
||||||
|
p.onChange?.();
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user