Файл: concrete5.7.5.6/concrete/src/Validator/PasswordValidatorServiceProvider.php
Строк: 129
<?php
namespace ConcreteCoreValidator;
use ConcreteCoreConfigRepositoryRepository;
use ConcreteCoreErrorError;
use ConcreteCoreFoundationServiceProvider;
use ConcreteCoreValidatorStringMaximumLengthValidator;
use ConcreteCoreValidatorStringMinimumLengthValidator;
class PasswordValidatorServiceProvider extends Provider
{
/**
* Registers the services provided by this provider.
* @return void
*/
public function register()
{
$this->app->bindShared('validator/password', function($app) {
/** @type Repository $config */
$config = $app['config'];
/** @type ConcreteCoreValidatorValidatorManagerInterface $manager */
$manager = $app->make('ConcreteCoreValidatorValidatorManagerInterface');
$minimum_length = $config->get('concrete.user.password.minimum', 5);
$maximum_length = $config->get('concrete.user.password.maximum');
/** @type MinimumLengthValidator $minimum */
$minimum = null;
/** @type MaximumLengthValidator $maximum */
$maximum = null;
$error_closure = function($validator, $code, $password) use (&$minimum, &$maximum) {
if ($minimum && $maximum) {
return t('A password must be between %s and %s characters long.',
$minimum->getMinimumLength(),
$maximum->getMaximumLength());
} elseif ($minimum) {
return t('A password must be at least %s characters long.', $minimum->getMinimumLength());
} elseif ($maximum) {
return t('A password can be at most %s characters long.', $maximum->getMaximumLength());
}
return t('Invalid password.');
};
$requirement_closure = function($validator, $code) use (&$minimum, &$maximum) {
if ($minimum && $maximum) {
return t('Must be between %s and %s characters long.',
$minimum->getMinimumLength(),
$maximum->getMaximumLength());
} elseif ($minimum) {
return t('Must be at least %s characters long.', $minimum->getMinimumLength());
} elseif ($maximum) {
return t('Must be at most %s characters long.', $maximum->getMaximumLength());
}
};
if ($minimum_length) {
$minimum = $app->make('ConcreteCoreValidatorStringMinimumLengthValidator', array($minimum_length));
$minimum->setRequirementString($minimum::E_TOO_SHORT, $requirement_closure);
$minimum->setErrorString($minimum::E_TOO_SHORT, $error_closure);
$manager->setValidator('minimum_length', $minimum);
}
if ($maximum_length) {
$maximum = $app->make('ConcreteCoreValidatorStringMaximumLengthValidator', array($maximum_length));
$maximum->setRequirementString($maximum::E_TOO_LONG, $requirement_closure);
$maximum->setErrorString($maximum::E_TOO_LONG, $error_closure);
$manager->setValidator('maximum_length', $maximum);
}
return $manager;
});
}
}