Explorar o código

Update Validators\Email for emails from OAuth

Visman %!s(int64=2) %!d(string=hai) anos
pai
achega
f0c1bd9d38
Modificáronse 3 ficheiros con 22 adicións e 0 borrados
  1. 16 0
      app/Models/Validators/Email.php
  2. 3 0
      app/lang/en/validator.po
  3. 3 0
      app/lang/ru/validator.po

+ 16 - 0
app/Models/Validators/Email.php

@@ -98,6 +98,22 @@ class Email extends RulesValidator
             ) {
             ) {
                 $v->addError('Dupe email');
                 $v->addError('Dupe email');
                 $ok = false;
                 $ok = false;
+
+            // дополнительная проверка по связанным аккаунтам
+            } else {
+                $id = $this->c->providerUser->findByEmail($email);
+
+                if (
+                    $id > 0
+                    && (
+                        ! $originalUser instanceof User
+                        || $originalUser->isGuest
+                        || $id !== $originalUser->id
+                    )
+                ) {
+                    $v->addError('Dupe email (OAuth)');
+                    $ok = false;
+                }
             }
             }
         }
         }
         // проверка на флуд интервал
         // проверка на флуд интервал

+ 3 - 0
app/lang/en/validator.po

@@ -42,6 +42,9 @@ msgstr "The username you entered is not unique."
 msgid "Dupe email"
 msgid "Dupe email"
 msgstr "Someone else is already registered with that email address."
 msgstr "Someone else is already registered with that email address."
 
 
+msgid "Dupe email (OAuth)"
+msgstr "Someone else is already registered with that email address (OAuth)."
+
 msgid "Account email flood"
 msgid "Account email flood"
 msgstr "This account has already requested a passphrase reset recently. Please wait %s minutes before trying again."
 msgstr "This account has already requested a passphrase reset recently. Please wait %s minutes before trying again."
 
 

+ 3 - 0
app/lang/ru/validator.po

@@ -42,6 +42,9 @@ msgstr "Выбранное имя пользователя не уникальн
 msgid "Dupe email"
 msgid "Dupe email"
 msgstr "Введенный электронный адрес уже зарегистрирован."
 msgstr "Введенный электронный адрес уже зарегистрирован."
 
 
+msgid "Dupe email (OAuth)"
+msgstr "Введенный электронный адрес уже зарегистрирован (OAuth)."
+
 msgid "Account email flood"
 msgid "Account email flood"
 msgstr "Для этой учетной записи недавно уже запрашивали сброс кодовой фразы. Пожалуйста, подождите %s минут, прежде чем повторить попытку."
 msgstr "Для этой учетной записи недавно уже запрашивали сброс кодовой фразы. Пожалуйста, подождите %s минут, прежде чем повторить попытку."