Update Validator\Email
This commit is contained in:
parent
1af0514d89
commit
41126079f7
1 changed files with 11 additions and 18 deletions
|
@ -19,8 +19,6 @@ class Email extends RulesValidator
|
|||
{
|
||||
/**
|
||||
* Проверяет email
|
||||
* WARNING!!!
|
||||
* Если 4-ым параметром передан гость, то проверка уникальности email не проводится
|
||||
*
|
||||
* @param Validator $v
|
||||
* @param string $email
|
||||
|
@ -52,8 +50,6 @@ class Email extends RulesValidator
|
|||
$email = $result;
|
||||
$attrs = \array_flip(\explode(',', $attrs));
|
||||
$ok = true;
|
||||
$user = $this->c->users->create();
|
||||
$user->__email = $email;
|
||||
|
||||
// провеерка бана email
|
||||
if (
|
||||
|
@ -63,7 +59,9 @@ class Email extends RulesValidator
|
|||
|| isset($attrs['nosoloban'])
|
||||
)
|
||||
) {
|
||||
$banType = $this->c->bans->isBanned($user);
|
||||
$banType = $this->c->bans->isBanned(
|
||||
$this->c->users->create(['email' => $email])
|
||||
);
|
||||
|
||||
if (
|
||||
$banType > 0
|
||||
|
@ -95,25 +93,19 @@ class Email extends RulesValidator
|
|||
if (
|
||||
$ok
|
||||
&& isset($attrs['unique'])
|
||||
&& (
|
||||
! $originalUser instanceof User
|
||||
|| ! $originalUser->isGuest
|
||||
)
|
||||
) {
|
||||
if ($user->isGuest) {
|
||||
$user = $this->c->users->loadByEmail($email);
|
||||
}
|
||||
$user = $this->c->users->loadByEmail($email); // ???? exists и unique вместе же не должны встречаться!? O_o
|
||||
|
||||
if (
|
||||
$user instanceof User
|
||||
&& $originalUser instanceof User
|
||||
&& $user->id !== $originalUser->id
|
||||
&& (
|
||||
! $originalUser instanceof User
|
||||
|| $originalUser->isGuest
|
||||
|| $user->id !== $originalUser->id
|
||||
)
|
||||
) {
|
||||
$ok = false;
|
||||
}
|
||||
|
||||
if (false === $ok) {
|
||||
$v->addError('Dupe email');
|
||||
$ok = false;
|
||||
}
|
||||
}
|
||||
// проверка на флуд интервал
|
||||
|
@ -134,6 +126,7 @@ class Email extends RulesValidator
|
|||
} else {
|
||||
$flood = $this->c->FLOOD_INTERVAL;
|
||||
}
|
||||
|
||||
if ($flood < $this->c->FLOOD_INTERVAL) {
|
||||
$v->addError(__('Account email flood', (int) (($this->c->FLOOD_INTERVAL - $flood) / 60)), 'e');
|
||||
$ok = false;
|
||||
|
|
Loading…
Add table
Reference in a new issue