kaystrobach/password

在此处添加描述

安装数: 5,384

依赖关系: 0

建议者: 0

安全性: 0

星标: 0

关注者: 2

分支: 0

公开问题: 0

类型:neos-package

2.1.0 2022-09-12 18:24 UTC

This package is auto-updated.

Last update: 2024-09-13 14:11:21 UTC


README

neos/flow 框架 4.x 版本的密码验证包。计划为 flow 5.x 更新。

模板中的包含

验证器需要两个字段,字段名称与控制器参数附加 [0][1]

	<div class="form-group">
		<label for="newPassword" class="col-sm-4 control-label">neues Passwort</label>
		<div class="col-sm-4">
			<div class="input-group passwordfield">
				<f:form.password  id="newPassword" name="newPassword[0]" class="form-control"  />
				<span class="input-group-addon passwordDisplayArea" style="display: none;" data-behaviour="clipboard"></span>
				<span class="input-group-btn">
					<button class="btn btn-default" type="button" title="Passwort generieren">
						<span class="glyphicon glyphicon-random"></span>
					</button>
				</span>
			</div>
		</div>
	</div>
	<div class="form-group">
		<label for="newPasswordDuplicate" class="col-sm-4 control-label">neues Passwort bestätigen</label>
		<div class="col-sm-4">
			<f:form.password name="newPassword[1]" class="form-control passwordfield-duplicate" id="newPasswordDuplicate" />
			<p class="help-block">
				Wird nur gespeichert, wenn beide gleich sind und mindestens 6 Zeichen lang.
			</p>
		</div>
	</div>

控制器

构建一个动作控制器并添加一个更改密码的操作。

	/**
	 * @Flow\Inject()
	 * @var HashService
	 */
	protected $hashService;
	
	/**
     * @Flow\Inject()
     * @var AccountRepository
     */
    protected $accountRepository;

	/**
	 * @param array $newPassword
	 * @throws StopActionException
     *
     * @Flow\Validate(argumentName="newPassword", type="KayStrobach\Password\Validation\Validator\PasswordValidator", options={"minimumChars":6, "accountIdentifierNotContained":1, "partyNameNotContained":1})
	 */
	public function changePasswordAction($newPassword) {

	    $account->setCredentialsSource($this->hashService->hashPassword($plainPassword, 'default'));
        if($this->persistenceManager->isNewObject($account)) {
            $this->accountRepository->add($account);
        } else {
            $this->accountRepository->update($account);
        }

		$this->addFlashMessage('Password changed');
		$this->redirect('index');
	}