Parcourir la source

Add Posts\UpdateUsername()

Visman il y a 4 ans
Parent
commit
d2cc0f187b

+ 6 - 0
app/Models/Pages/Admin/Update.php

@@ -1044,6 +1044,12 @@ class Update extends Admin
             'ForumManagerMarkread'
         );
 
+        $coreConfig->add(
+            'multiple=>PostManagerUpdateUsername',
+            '\\ForkBB\\Models\\Post\\UpdateUsername::class',
+            'PostManagerFeed'
+        );
+
         $coreConfig->save();
 
         return null;

+ 38 - 0
app/Models/Post/UpdateUsername.php

@@ -0,0 +1,38 @@
+<?php
+
+declare(strict_types=1);
+
+namespace ForkBB\Models\Post;
+
+use ForkBB\Models\Action;
+use ForkBB\Models\User\Model as User;
+use RuntimeException;
+
+class UpdateUsername extends Action
+{
+    /**
+     * Обновляет имя пользователя в сообщениях
+     */
+    public function updateUsername(User $user): void
+    {
+        if ($user->isGuest) {
+            throw new RuntimeException('User expected, not guest');
+        }
+
+        $vars = [
+            ':id'   => $user->id,
+            ':name' => $user->username,
+        ];
+        $query = 'UPDATE ::posts
+            SET poster=?s:name
+            WHERE poster_id=?i:id';
+
+        $this->c->DB->exec($query, $vars);
+
+        $query = 'UPDATE ::posts
+            SET editor=?s:name
+            WHERE editor_id=?i:id';
+
+        $this->c->DB->exec($query, $vars);
+    }
+}

+ 1 - 0
app/config/main.dist.php

@@ -290,6 +290,7 @@ return [
         'PostManagerUserStat'     => \ForkBB\Models\Post\UserStat::class,
         'PostManagerMove'         => \ForkBB\Models\Post\Move::class,
         'PostManagerFeed'         => \ForkBB\Models\Post\Feed::class,
+        'PostManagerUpdateUsername' => \ForkBB\Models\Post\UpdateUsername::class,
 
         'ReportModel'             => \ForkBB\Models\Report\Model::class,
         'ReportManagerSave'       => \ForkBB\Models\Report\Save::class,