Вход Регистрация
Файл: 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;
        });
    }

}
Онлайн: 1
Реклама