private function extendValidator()
{
/** @var Validator $validator */
$validator = $this->app['validator'];
// 도메인이 생략된 이메일 validation 추가
$validator->extend('email_prefix', function ($attribute, $value, $parameters) {
if (!str_contains($value, '@')) {
$value .= '@test.com';
}
return filter_var($value, FILTER_VALIDATE_EMAIL) !== false;
});
// 표시이름 validation 추가
/** @var Closure $displayNameValidate */
$displayNameValidate = app('config')->get('xe.user.displayName.validate');
$validator->extend('display_name', function ($attribute, $value, $parameters) use($displayNameValidate) {
return $displayNameValidate($value);
});
$passwordConfig = app('config')->get('xe.user.password');
$levels = $passwordConfig['levels'];
$level = $levels[$passwordConfig['default']];
$validate = $level['validate'];
$validator->extend('password', function ($attribute, $value, $parameters) use($validate) {
return $validate($value);
}, $level['description']);
}