From d8d85fbb54f5f43dc4f8d7229eb62ad68a36dd34 Mon Sep 17 00:00:00 2001 From: Carl Date: Fri, 14 Jun 2024 12:51:51 +0200 Subject: [PATCH] Hacky first version of the fix, need to refactor it to do it the right way --- .../installer/user/installer-user.element.ts | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/apps/installer/user/installer-user.element.ts b/src/Umbraco.Web.UI.Client/src/apps/installer/user/installer-user.element.ts index 504b616071..50cef7c431 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/installer/user/installer-user.element.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/installer/user/installer-user.element.ts @@ -1,15 +1,19 @@ +import { UMB_AUTH_CONTEXT } from '@umbraco-cms/backoffice/auth'; import type { UmbInstallerContext } from '../installer.context.js'; import { UMB_INSTALLER_CONTEXT } from '../installer.context.js'; import type { CSSResultGroup } from '@umbraco-cms/backoffice/external/lit'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; +import {UserSettingsPresentationModel} from "@umbraco-cms/backoffice/external/backend-api"; @customElement('umb-installer-user') export class UmbInstallerUserElement extends UmbLitElement { @state() private _userFormData?: { name: string; password: string; email: string; subscribeToNewsletter: boolean }; - + @state() + private _passwordError?: string; private _installerContext?: UmbInstallerContext; + private _userSettings?:UserSettingsPresentationModel; constructor() { super(); @@ -31,6 +35,9 @@ export class UmbInstallerUserElement extends UmbLitElement { subscribeToNewsletter: user.subscribeToNewsletter ?? false, }; }); + this.observe(this._installerContext.settings, (settings)=>{ + this._userSettings= settings?.user; + }) } private _handleSubmit = (e: SubmitEvent) => { @@ -39,7 +46,7 @@ export class UmbInstallerUserElement extends UmbLitElement { const form = e.target as HTMLFormElement; if (!form) return; - const isValid = form.checkValidity(); + let isValid = form.checkValidity(); if (!isValid) return; const formData = new FormData(form); @@ -48,6 +55,13 @@ export class UmbInstallerUserElement extends UmbLitElement { const email = formData.get('email') as string; const subscribeToNewsletter = formData.has('subscribeToNewsletter'); + const minCarLenth = this._userSettings?.minCharLength ?? 10; + if (password.length < minCarLenth) { + console.log('Len fail'); + isValid = false; + return; + } + this._installerContext?.appendData({ user: { name, password, email, subscribeToNewsletter } }); this._installerContext?.nextStep(); }; @@ -87,6 +101,7 @@ export class UmbInstallerUserElement extends UmbLitElement { id="password" name="password" label="password" + .minLength=${this._userSettings?.minCharLength} .value=${this._userFormData?.password} required required-message="Password is required">