瀏覽代碼

Change subscription

A new subscription can only be set if your email address is confirmed.
Visman 4 年之前
父節點
當前提交
0b4a3331c6
共有 3 個文件被更改,包括 27 次插入0 次删除
  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\Forum\Model as Forum;
 use ForkBB\Models\Topic\Model as Topic;
+use function \ForkBB\__;
 
 class Misc extends Page
 {
@@ -52,6 +53,10 @@ class Misc extends Page
         $this->c->Lang->load('misc');
 
         if ('subscribe' === $args['type']) {
+            if (! $this->user->email_confirmed) {
+                return $this->confirmMessage();
+            }
+
             $this->c->subscriptions->subscribe($this->user, $forum);
 
             $message = 'Subscribe redirect';
@@ -81,6 +86,10 @@ class Misc extends Page
         $this->c->Lang->load('misc');
 
         if ('subscribe' === $args['type']) {
+            if (! $this->user->email_confirmed) {
+                return $this->confirmMessage();
+            }
+
             $this->c->subscriptions->subscribe($this->user, $topic);
 
             $message = 'Subscribe redirect';
@@ -92,4 +101,16 @@ class Misc extends Page
 
         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"
 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"
 msgstr "При отправке письма возникла ошибка. Попробуйте повторить попытку позже."
+
+msgid "Confirm your email address"
+msgstr "Вначале, пожалуйста, <a href=\"%s\">подтвердите</a> свой электронный адрес."