CoolCMS API

LostPasswordForm extends BaseComponent
in package
uses FormTrait, ResetFormTrait

Lost-password component.

It does not send e-mails or look the user up: the whole flow is done by Api\…\UserManager::sendNewPassword(). The e-mail carries a one-time link back to this page (?email=…&key=…); with these parameters the component shows the new-password form instead of the request (ResetFormTrait).

Table of Contents

Properties

$container  : Container
$routerDispatcher  : RouterDispatcher
$translator  : ITranslator
$appContext  : AppContext
$componentParameters  : array<string, mixed>
$currencyContext  : CurrencyContext|null
$deviceDetector  : DeviceDetector|null
$languageContext  : LanguageContext|null
$localizationContext  : LocalizationContext|null
$settingContext  : SettingContext
$themeContext  : ThemeContext|null
$translatorDomain  : string|null
$resetDone  : bool
The new password from the link has been set.
$resetFailed  : bool
The link turned out dead (invalid, expired, used) — show the request form again.
$userManager  : UserManager

Methods

__call()  : mixed
Dispatches `renderXyz()` to `render('Xyz', ...$args)`.
__construct()  : mixed
createComponent()  : IComponent|null
getAppContext()  : AppContext
getComponentParameter()  : mixed
Returns a component parameter, or null when it is not set.
getContainer()  : Container
getCurrencyContext()  : CurrencyContext|null
getLanguageContext()  : LanguageContext|null
getLocalizationContext()  : LocalizationContext|null
getRouterDispatcher()  : RouterDispatcher
getSettingContext()  : SettingContext
getSettings()  : array<int, array<string, mixed>>
getThemeContext()  : ThemeContext|null
hasServiceByType()  : bool
Returns whether the container has a service of the given type.
initializeAllContexts()  : void
injectDeviceDetector()  : void
isResetRequest()  : bool
Did the visitor come from the reset link (both parameters present)?
onCreate()  : void
onResetSuccess()  : void
onSuccess()  : void
Passes the entered name or e-mail on; the component does nothing else.
render()  : void
setAppContext()  : $this
setComponentParameter()  : void
Sets a component parameter.
setCurrencyContext()  : $this
setLanguageContext()  : $this
setLocalizationContext()  : $this
setSettingContext()  : $this
setThemeContext()  : $this
setup()  : void
setupAppContext()  : void
typedComponent()  : T
Returns a subcomponent with a verified type.
createComponentPasswordForm()  : Form
createComponentResetForm()  : Form
frontPresenter()  : BasePresenter|null
Returns the front presenter the component is attached to (null outside the front end or when detached).
getTranslator()  : ITranslator
setTemplateFile()  : void
setTranslator()  : self
createMultiplierComponent()  : Multiplier<string|int, IComponent>
Creates a multiplier for the component.
createNewComponentInstance()  : IComponent|null
Creates a new component instance without adding it to the presenter; used by the multiplier.
createStandardComponent()  : IComponent|null
Creates a standard component (not a multiplier).
getResetEmail()  : string
getResetKey()  : string
readResetParameter()  : string
The link parameters arrive in the query (GET) and in the hidden fields (POST).
toFormString()  : string

Properties

$componentParameters

protected array<string, mixed> $componentParameters = []

component parameters set by setComponentParameter()

$translatorDomain

protected string|null $translatorDomain = 'front.system.components.lostPasswordForm'

$resetDone

The new password from the link has been set.

private bool $resetDone = false

$resetFailed

The link turned out dead (invalid, expired, used) — show the request form again.

private bool $resetFailed = false

Methods

__call()

Dispatches `renderXyz()` to `render('Xyz', ...$args)`.

public __call(string $name, array<string|int, mixed> $args) : mixed

Called only when the component has no renderXyz() method of its own.

Parameters
$name : string
$args : array<string|int, mixed>

createComponent()

public createComponent(string $name) : IComponent|null
Parameters
$name : string
Return values
IComponent|null

getComponentParameter()

Returns a component parameter, or null when it is not set.

public getComponentParameter(string $name) : mixed
Parameters
$name : string

getContainer()

public getContainer() : Container
Return values
Container

getSettings()

public getSettings() : array<int, array<string, mixed>>
Return values
array<int, array<string, mixed>>

hasServiceByType()

Returns whether the container has a service of the given type.

public hasServiceByType(string $className) : bool

The name is composed dynamically (module plus component), so class_exists() runs first, and a true result guarantees a valid type.

Parameters
$className : string
Tags
phpstan-assert-if-true

class-string $className

Return values
bool

isResetRequest()

Did the visitor come from the reset link (both parameters present)?

public isResetRequest() : bool
Return values
bool

onSuccess()

Passes the entered name or e-mail on; the component does nothing else.

public onSuccess(Form $form, ArrayHash $values) : void

The lookup, password generation with hash storage and e-mail sending live in Api\…\UserManager::sendNewPassword(), a shared data path reachable from the front end and from external calls, so there is one implementation, not two copies. The Api action must not return the password in the response or take userId from the request.

IMPORTANT: no account-existence oracle. The message is the same for an existing and a nonexistent account (hence no messages.noUser). The manager returns a constant Result::success and only logs internal failures, so messages.error shows in practice only when the ApiBridge itself fails.

Parameters
$form : Form
$values : ArrayHash

render()

public render([string $style = 'Style_1' ]) : void
Parameters
$style : string = 'Style_1'

setComponentParameter()

Sets a component parameter.

public setComponentParameter(string $name, mixed $value) : void
Parameters
$name : string
$value : mixed

typedComponent()

Returns a subcomponent with a verified type.

public typedComponent(string $name, T> $type) : T

Use it instead of an inline @var above $this['x'] (which does not narrow the type) and instead of the generic IComponent that $this['x'] returns. See Form::typedComponent().

Parameters
$name : string
$type : T>
Tags
template
Return values
T

createComponentPasswordForm()

protected createComponentPasswordForm() : Form
Return values
Form

frontPresenter()

Returns the front presenter the component is attached to (null outside the front end or when detached).

protected frontPresenter() : BasePresenter|null
Return values
BasePresenter|null

getTranslator()

protected getTranslator() : ITranslator
Return values
ITranslator

setTemplateFile()

protected setTemplateFile(string $dir, string $filename) : void
Parameters
$dir : string
$filename : string

setTranslator()

protected setTranslator(ITranslator $translator) : self
Parameters
$translator : ITranslator
Return values
self

createMultiplierComponent()

Creates a multiplier for the component.

private createMultiplierComponent(string $name) : Multiplier<string|int, IComponent>
Parameters
$name : string
Return values
Multiplier<string|int, IComponent>

createNewComponentInstance()

Creates a new component instance without adding it to the presenter; used by the multiplier.

private createNewComponentInstance(string $baseName[, int|string|null $uniqueKey = null ]) : IComponent|null
Parameters
$baseName : string
$uniqueKey : int|string|null = null
Return values
IComponent|null

createStandardComponent()

Creates a standard component (not a multiplier).

private createStandardComponent(string $name) : IComponent|null
Parameters
$name : string
Return values
IComponent|null

getResetEmail()

private getResetEmail() : string
Return values
string

getResetKey()

private getResetKey() : string
Return values
string

readResetParameter()

The link parameters arrive in the query (GET) and in the hidden fields (POST).

private readResetParameter(string $name) : string
Parameters
$name : string
Return values
string

toFormString()

private static toFormString(mixed $value) : string
Parameters
$value : mixed
Return values
string
On this page

Search results