Bläddra i källkod

Change subscription

A new subscription can only be set if your email address is confirmed.
Visman 4 år sedan
förälder
incheckning
0b4a3331c6
3 ändrade filer med 27 tillägg och 0 borttagningar
  1. 21 0
      app/Models/Pages/Misc.php
  2. 3 0
      app/lang/en/misc.po
  3. 3 0
      app/lang/ru/misc.po

+ 21 - 0
app/Models/Pages/Misc.php

@@ -5,6 +5,7 @@ namespace ForkBB\Models\Pages;
 use ForkBB\Models\Page;
 use ForkBB\Models\Page;
 use ForkBB\Models\Forum\Model as Forum;
 use ForkBB\Models\Forum\Model as Forum;
 use ForkBB\Models\Topic\Model as Topic;
 use ForkBB\Models\Topic\Model as Topic;
+use function \ForkBB\__;
 
 
 class Misc extends Page
 class Misc extends Page
 {
 {
@@ -52,6 +53,10 @@ class Misc extends Page
         $this->c->Lang->load('misc');
         $this->c->Lang->load('misc');
 
 
         if ('subscribe' === $args['type']) {
         if ('subscribe' === $args['type']) {
+            if (! $this->user->email_confirmed) {
+                return $this->confirmMessage();
+            }
+
             $this->c->subscriptions->subscribe($this->user, $forum);
             $this->c->subscriptions->subscribe($this->user, $forum);
 
 
             $message = 'Subscribe redirect';
             $message = 'Subscribe redirect';
@@ -81,6 +86,10 @@ class Misc extends Page
         $this->c->Lang->load('misc');
         $this->c->Lang->load('misc');
 
 
         if ('subscribe' === $args['type']) {
         if ('subscribe' === $args['type']) {
+            if (! $this->user->email_confirmed) {
+                return $this->confirmMessage();
+            }
+
             $this->c->subscriptions->subscribe($this->user, $topic);
             $this->c->subscriptions->subscribe($this->user, $topic);
 
 
             $message = 'Subscribe redirect';
             $message = 'Subscribe redirect';
@@ -92,4 +101,16 @@ class Misc extends Page
 
 
         return $this->c->Redirect->url($topic->link)->message($message);
         return $this->c->Redirect->url($topic->link)->message($message);
     }
     }
+
+    protected function confirmMessage(): Page
+    {
+        $link = $this->c->Router->link(
+            'EditUserEmail',
+            [
+                'id' => $this->user->id,
+            ]
+        );
+
+        return $this->c->Message->message(__('Confirm your email address', $link), true, 100);
+    }
 }
 }

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

@@ -311,3 +311,6 @@ msgstr "Moderate forum"
 
 
 msgid "When sending email there was an error"
 msgid "When sending email there was an error"
 msgstr "When sending email there was an error. Please try again later."
 msgstr "When sending email there was an error. Please try again later."
+
+msgid "Confirm your email address"
+msgstr "First, please <a href=\"%s\">confirm</a> your email address."

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

@@ -311,3 +311,6 @@ msgstr "Модерирование раздела"
 
 
 msgid "When sending email there was an error"
 msgid "When sending email there was an error"
 msgstr "При отправке письма возникла ошибка. Попробуйте повторить попытку позже."
 msgstr "При отправке письма возникла ошибка. Попробуйте повторить попытку позже."
+
+msgid "Confirm your email address"
+msgstr "Вначале, пожалуйста, <a href=\"%s\">подтвердите</a> свой электронный адрес."