Jelajahi Sumber

Update Validators\Email for emails from OAuth

Visman 2 tahun lalu
induk
melakukan
f0c1bd9d38
3 mengubah file dengan 22 tambahan dan 0 penghapusan
  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');
                 $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"
 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"
 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"
 msgstr "Введенный электронный адрес уже зарегистрирован."
 
+msgid "Dupe email (OAuth)"
+msgstr "Введенный электронный адрес уже зарегистрирован (OAuth)."
+
 msgid "Account email flood"
 msgstr "Для этой учетной записи недавно уже запрашивали сброс кодовой фразы. Пожалуйста, подождите %s минут, прежде чем повторить попытку."