Browse Source

Fix OAuth account registration with banned email

Visman 1 year ago
parent
commit
77fa96cbc3
3 changed files with 20 additions and 0 deletions
  1. 14 0
      app/Models/Pages/RegLog.php
  2. 3 0
      app/lang/en/admin_providers.po
  3. 3 0
      app/lang/ru/admin_providers.po

+ 14 - 0
app/Models/Pages/RegLog.php

@@ -157,6 +157,13 @@ class RegLog extends Page
             return $redirect->message(['Email registered by another', __($provider->name)], FORK_MESS_WARN, self::TIMEOUT);
         }
 
+        $user = $this->c->users->create(['email' => $provider->userEmail]);
+
+        // этот email забанен
+        if (1 === $this->c->bans->isBanned($user)) {
+            return $redirect->message(['Email banned', __($provider->name)], FORK_MESS_WARN, self::TIMEOUT);
+        }
+
         if (true !== $this->c->providerUser->registration($this->user, $provider)) {
             throw new RuntimeException('Failed to insert data'); // ??????????????????????????????????????????
         }
@@ -192,6 +199,13 @@ class RegLog extends Page
             return $this->c->Message->message('No new regs');
         }
 
+        $user = $this->c->users->create(['email' => $provider->userEmail]);
+
+        // этот email забанен
+        if (1 === $this->c->bans->isBanned($user)) {
+            return $this->c->Message->message(['Email banned', __($provider->name)], false);
+        }
+
         // продолжение регистрации начиная с согласия с правилами
         if ('reg' !== $provider->stateType) {
             $page = $this->c->Rules->confirmation();

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

@@ -122,3 +122,6 @@ msgstr "Account removed."
 
 msgid "First time Register?"
 msgstr "You are here for the first time. Register?"
+
+msgid "Email banned"
+msgstr "The email address received from %s is banned."

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

@@ -122,3 +122,6 @@ msgstr "Аккаунт удален."
 
 msgid "First time Register?"
 msgstr "Вы здесь впервые. Зарегистрируетесь?"
+
+msgid "Email banned"
+msgstr "Адрес электронной почты полученный от %s забанен."