فهرست منبع

refactor: separate user edit function into dedicated controller

M1Screw 2 سال پیش
والد
کامیت
89cbf035ec

+ 15 - 15
app/routes.php

@@ -46,19 +46,22 @@ return static function (Slim\App $app): void {
         $group->get('/ticket/{id}/view', App\Controllers\User\TicketController::class . ':ticketView');
         $group->put('/ticket/{id}', App\Controllers\User\TicketController::class . ':ticketUpdate');
         // 资料编辑
-        $group->get('/edit', App\Controllers\UserController::class . ':edit');
-        $group->post('/email', App\Controllers\UserController::class . ':updateEmail');
-        $group->post('/username', App\Controllers\UserController::class . ':updateUsername');
-        $group->post('/password', App\Controllers\UserController::class . ':updatePassword');
+        $group->get('/edit', App\Controllers\User\InfoController::class . ':index');
+        $group->post('/email', App\Controllers\User\InfoController::class . ':updateEmail');
+        $group->post('/username', App\Controllers\User\InfoController::class . ':updateUsername');
+        $group->post('/password', App\Controllers\User\InfoController::class . ':updatePassword');
+        $group->post('/contact_update', App\Controllers\User\InfoController::class . ':updateContact');
+        $group->post('/theme', App\Controllers\User\InfoController::class . ':updateTheme');
+        $group->post('/daily_mail', App\Controllers\User\InfoController::class . ':updateDailyMail');
+        $group->post('/passwd_reset', App\Controllers\User\InfoController::class . ':resetPasswd');
+        $group->post('/apitoken_reset', App\Controllers\User\InfoController::class . ':resetApiToken');
+        $group->post('/method', App\Controllers\User\InfoController::class . ':updateMethod');
+        $group->post('/url_reset', App\Controllers\User\InfoController::class . ':resetURL');
+        $group->put('/invite', App\Controllers\User\InfoController::class . ':resetInviteURL');
+        $group->post('/kill', App\Controllers\User\InfoController::class . ':sendToGulag');
+        // 发送验证邮件
         $group->post('/send', App\Controllers\AuthController::class . ':sendVerify');
-        $group->post('/contact_update', App\Controllers\UserController::class . ':updateContact');
-        $group->post('/theme', App\Controllers\UserController::class . ':updateTheme');
-        $group->post('/mail', App\Controllers\UserController::class . ':updateMail');
-        $group->post('/passwd_reset', App\Controllers\UserController::class . ':resetPasswd');
-        $group->post('/apitoken_reset', App\Controllers\UserController::class . ':resetApiToken');
-        $group->post('/method', App\Controllers\UserController::class . ':updateMethod');
-        $group->get('/kill', App\Controllers\UserController::class . ':kill');
-        $group->post('/kill', App\Controllers\UserController::class . ':handleKill');
+        // 登出
         $group->get('/logout', App\Controllers\UserController::class . ':logout');
         // MFA
         $group->post('/ga_check', App\Controllers\User\MFAController::class . ':checkGa');
@@ -66,9 +69,6 @@ return static function (Slim\App $app): void {
         $group->post('/ga_reset', App\Controllers\User\MFAController::class . ':resetGa');
         // Telegram
         $group->post('/telegram_reset', App\Controllers\UserController::class . ':resetTelegram');
-        // URL
-        $group->post('/url_reset', App\Controllers\UserController::class . ':resetURL');
-        $group->put('/invite', App\Controllers\UserController::class . ':resetInviteURL');
         // 深色模式切换
         $group->post('/switch_theme_mode', App\Controllers\UserController::class . ':switchThemeMode');
         // 记录

+ 12 - 12
composer.lock

@@ -123,16 +123,16 @@
         },
         {
             "name": "aws/aws-sdk-php",
-            "version": "3.275.7",
+            "version": "3.275.8",
             "source": {
                 "type": "git",
                 "url": "https://github.com/aws/aws-sdk-php.git",
-                "reference": "54dcef3349c81b46c0f5f6e54b5f9bfb5db19903"
+                "reference": "18ebb727039c974aa9e997772486b2c869ec2bb6"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/54dcef3349c81b46c0f5f6e54b5f9bfb5db19903",
-                "reference": "54dcef3349c81b46c0f5f6e54b5f9bfb5db19903",
+                "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/18ebb727039c974aa9e997772486b2c869ec2bb6",
+                "reference": "18ebb727039c974aa9e997772486b2c869ec2bb6",
                 "shasum": ""
             },
             "require": {
@@ -212,9 +212,9 @@
             "support": {
                 "forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80",
                 "issues": "https://github.com/aws/aws-sdk-php/issues",
-                "source": "https://github.com/aws/aws-sdk-php/tree/3.275.7"
+                "source": "https://github.com/aws/aws-sdk-php/tree/3.275.8"
             },
-            "time": "2023-07-13T18:21:04+00:00"
+            "time": "2023-07-17T18:32:24+00:00"
         },
         {
             "name": "bacon/bacon-qr-code",
@@ -8364,16 +8364,16 @@
         },
         {
             "name": "phpunit/phpunit",
-            "version": "10.2.5",
+            "version": "10.2.6",
             "source": {
                 "type": "git",
                 "url": "https://github.com/sebastianbergmann/phpunit.git",
-                "reference": "15a89f123d8ca9c1e1598d6d87a56a8bf28c72cd"
+                "reference": "1c17815c129f133f3019cc18e8d0c8622e6d9bcd"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/15a89f123d8ca9c1e1598d6d87a56a8bf28c72cd",
-                "reference": "15a89f123d8ca9c1e1598d6d87a56a8bf28c72cd",
+                "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/1c17815c129f133f3019cc18e8d0c8622e6d9bcd",
+                "reference": "1c17815c129f133f3019cc18e8d0c8622e6d9bcd",
                 "shasum": ""
             },
             "require": {
@@ -8445,7 +8445,7 @@
             "support": {
                 "issues": "https://github.com/sebastianbergmann/phpunit/issues",
                 "security": "https://github.com/sebastianbergmann/phpunit/security/policy",
-                "source": "https://github.com/sebastianbergmann/phpunit/tree/10.2.5"
+                "source": "https://github.com/sebastianbergmann/phpunit/tree/10.2.6"
             },
             "funding": [
                 {
@@ -8461,7 +8461,7 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2023-07-14T04:18:47+00:00"
+            "time": "2023-07-17T12:08:28+00:00"
         },
         {
             "name": "psr/cache",

+ 1 - 1
resources/views/tabler/admin/node/edit.tpl

@@ -165,7 +165,7 @@
                                     </div>
                                 </div>
                                 <label class="form-label col-form-label">
-                                    通讯密钥用于 gRPC API 鉴权,如需更改请点击重置
+                                    通讯密钥用于 WebAPI 节点模式鉴权,如需更改请点击重置
                                 </label>
                             </div>
                         </div>

+ 2 - 1
resources/views/tabler/user/edit.tpl

@@ -647,7 +647,7 @@
         $("#modify-daily-report").click(function() {
             $.ajax({
                 type: "POST",
-                url: "/user/mail",
+                url: "/user/daily_mail",
                 dataType: "json",
                 data: {
                     mail: $('#daily-report').val()
@@ -780,6 +780,7 @@
                 }
             })
         });
+
         $("#unbind-telegram-btn").click(function() {
           $.ajax({
             type: "POST",

+ 324 - 0
src/Controllers/User/InfoController.php

@@ -0,0 +1,324 @@
+<?php
+
+declare(strict_types=1);
+
+namespace App\Controllers\User;
+
+use App\Controllers\BaseController;
+use App\Models\Setting;
+use App\Models\User;
+use App\Services\Auth;
+use App\Services\Cache;
+use App\Services\Config;
+use App\Services\MFA;
+use App\Utils\Hash;
+use App\Utils\ResponseHelper;
+use App\Utils\Telegram;
+use App\Utils\Tools;
+use Exception;
+use Psr\Http\Message\ResponseInterface;
+use Ramsey\Uuid\Uuid;
+use RedisException;
+use Slim\Http\Response;
+use Slim\Http\ServerRequest;
+use voku\helper\AntiXSS;
+use function in_array;
+use function strlen;
+use function strtolower;
+use const BASE_PATH;
+
+/**
+ *  InfoController
+ */
+final class InfoController extends BaseController
+{
+    /**
+     * @throws Exception
+     */
+    public function index(ServerRequest $request, Response $response, array $args): Response|ResponseInterface
+    {
+        $themes = Tools::getDir(BASE_PATH . '/resources/views');
+        $bind_token = Telegram::addBindSession($this->user);
+        $methods = Config::getSupportParam('method');
+        $gaurl = MFA::getGAurl($this->user);
+
+        return $response->write($this->view()
+            ->assign('user', $this->user)
+            ->assign('themes', $themes)
+            ->assign('bind_token', $bind_token)
+            ->assign('methods', $methods)
+            ->assign('gaurl', $gaurl)
+            ->assign('telegram_bot', $_ENV['telegram_bot'])
+            ->registerClass('Config', Config::class)
+            ->fetch('user/edit.tpl'));
+    }
+
+    /**
+     * @throws RedisException
+     */
+    public function updateEmail(ServerRequest $request, Response $response, array $args): Response|ResponseInterface
+    {
+        $antiXss = new AntiXSS();
+        $new_email = $antiXss->xss_clean($request->getParam('newemail'));
+        $user = $this->user;
+        $old_email = $user->email;
+
+        if (! $_ENV['enable_change_email'] || $user->is_shadow_banned) {
+            return ResponseHelper::error($response, '修改失败');
+        }
+
+        if ($new_email === '') {
+            return ResponseHelper::error($response, '未填写邮箱');
+        }
+
+        if (! Tools::isEmailLegal($new_email)) {
+            return $response->withJson($check_res);
+        }
+
+        $exist_user = User::where('email', $new_email)->first();
+
+        if ($exist_user !== null) {
+            return ResponseHelper::error($response, '邮箱已经被使用了');
+        }
+
+        if ($new_email === $old_email) {
+            return ResponseHelper::error($response, '新邮箱不能和旧邮箱一样');
+        }
+
+        if (Setting::obtain('reg_email_verify')) {
+            $redis = Cache::initRedis();
+            $email_verify_code = $request->getParam('emailcode');
+            $email_verify = $redis->get($email_verify_code);
+
+            if (! $email_verify) {
+                return ResponseHelper::error($response, '你的邮箱验证码不正确');
+            }
+
+            $redis->del($email_verify_code);
+        }
+
+        $user->email = $new_email;
+
+        if (! $user->save()) {
+            return ResponseHelper::error($response, '修改失败');
+        }
+
+        return ResponseHelper::successfully($response, '修改成功');
+    }
+
+    public function updateUsername(ServerRequest $request, Response $response, array $args): ResponseInterface
+    {
+        $antiXss = new AntiXSS();
+        $newusername = $antiXss->xss_clean($request->getParam('newusername'));
+        $user = $this->user;
+
+        if ($user->is_shadow_banned) {
+            return ResponseHelper::error($response, '修改失败');
+        }
+
+        $user->user_name = $newusername;
+
+        if (! $user->save()) {
+            return ResponseHelper::error($response, '修改失败');
+        }
+
+        return ResponseHelper::successfully($response, '修改成功');
+    }
+
+    public function updatePassword(ServerRequest $request, Response $response, array $args): ResponseInterface
+    {
+        $oldpwd = $request->getParam('oldpwd');
+        $pwd = $request->getParam('pwd');
+        $repwd = $request->getParam('repwd');
+        $user = $this->user;
+
+        if ($oldpwd === '' || $pwd === '' || $repwd === '') {
+            return ResponseHelper::error($response, '密码不能为空');
+        }
+
+        if (! Hash::checkPassword($user->pass, $oldpwd)) {
+            return ResponseHelper::error($response, '旧密码错误');
+        }
+
+        if ($pwd !== $repwd) {
+            return ResponseHelper::error($response, '两次输入不符合');
+        }
+
+        if (strlen($pwd) < 8) {
+            return ResponseHelper::error($response, '密码太短啦');
+        }
+
+        $hashPwd = Hash::passwordHash($pwd);
+        $user->pass = $hashPwd;
+
+        if (! $user->save()) {
+            return ResponseHelper::error($response, '修改失败');
+        }
+
+        if (Setting::obtain('enable_forced_replacement')) {
+            $user->cleanLink();
+        }
+
+        return ResponseHelper::successfully($response, '修改成功');
+    }
+
+    public function updateContact(ServerRequest $request, Response $response, array $args): Response|ResponseInterface
+    {
+        $antiXss = new AntiXSS();
+        $type = $antiXss->xss_clean($request->getParam('imtype'));
+        $value = $antiXss->xss_clean($request->getParam('imvalue'));
+        $user = $this->user;
+
+        if ($user->telegram_id !== null || $user->is_shadow_banned) {
+            return ResponseHelper::error($response, '修改失败');
+        }
+
+        if ($value === '' || $type === '') {
+            return ResponseHelper::error($response, '联络方式不能为空');
+        }
+
+        if (User::where('im_value', $value)->where('im_type', $type)->first() !== null) {
+            return ResponseHelper::error($response, '此联络方式已经被注册');
+        }
+
+        $user->im_type = $type;
+        $user->im_value = $value;
+
+        if (! $user->save()) {
+            return ResponseHelper::error($response, '修改失败');
+        }
+
+        return ResponseHelper::successfully($response, '修改成功');
+    }
+
+    public function updateTheme(ServerRequest $request, Response $response, array $args): Response|ResponseInterface
+    {
+        $antiXss = new AntiXSS();
+        $theme = $antiXss->xss_clean($request->getParam('theme'));
+        $user = $this->user;
+
+        if ($theme === '') {
+            return ResponseHelper::error($response, '主题不能为空');
+        }
+
+        $user->theme = $theme;
+
+        if (! $user->save()) {
+            return ResponseHelper::error($response, '修改失败');
+        }
+
+        return ResponseHelper::successfully($response, '修改成功');
+    }
+
+    public function updateDailyMail(ServerRequest $request, Response $response, array $args): ResponseInterface
+    {
+        $value = (int) $request->getParam('mail');
+
+        if (! in_array($value, [0, 1, 2])) {
+            return ResponseHelper::error($response, '参数错误');
+        }
+
+        $user = $this->user;
+
+        if ($value === 2 && ! $_ENV['enable_telegram']) {
+            return ResponseHelper::error(
+                $response,
+                '修改失败,当前无法使用 Telegram 接收每日报告'
+            );
+        }
+
+        $user->daily_mail_enable = $value;
+
+        if (! $user->save()) {
+            return ResponseHelper::error($response, '修改失败');
+        }
+
+        return ResponseHelper::successfully($response, '修改成功');
+    }
+
+    public function resetPasswd(ServerRequest $request, Response $response, array $args): ResponseInterface
+    {
+        $user = $this->user;
+        $user->uuid = Uuid::uuid4();
+        $user->passwd = Tools::genRandomChar(16);
+
+        if (! $user->save()) {
+            return ResponseHelper::error($response, '修改失败');
+        }
+
+        return ResponseHelper::successfully($response, '修改成功');
+    }
+
+    public function resetApiToken(ServerRequest $request, Response $response, array $args): ResponseInterface
+    {
+        $user = $this->user;
+        $user->api_token = Uuid::uuid4();
+
+        if (! $user->save()) {
+            return ResponseHelper::error($response, '修改失败');
+        }
+
+        return ResponseHelper::successfully($response, '修改成功');
+    }
+
+    public function updateMethod(ServerRequest $request, Response $response, array $args): ResponseInterface
+    {
+        $antiXss = new AntiXSS();
+
+        $user = $this->user;
+        $method = strtolower($antiXss->xss_clean($request->getParam('method')));
+
+        if ($method === '') {
+            ResponseHelper::error($response, '非法输入');
+        }
+        if (! Tools::isParamValidate('method', $method)) {
+            ResponseHelper::error($response, '加密无效');
+        }
+
+        $user->method = $method;
+
+        if (! $user->save()) {
+            return ResponseHelper::error($response, '修改失败');
+        }
+
+        return ResponseHelper::successfully($response, '修改成功');
+    }
+
+    public function resetURL(ServerRequest $request, Response $response, array $args): ResponseInterface
+    {
+        $user = $this->user;
+        $user->cleanLink();
+
+        return ResponseHelper::successfully($response, '重置成功');
+    }
+
+    public function resetInviteURL(ServerRequest $request, Response $response, array $args): ResponseInterface
+    {
+        $user = $this->user;
+        $user->clearInviteCodes();
+
+        return ResponseHelper::successfully($response, '重置成功');
+    }
+
+    public function sendToGulag(ServerRequest $request, Response $response, array $args): ResponseInterface
+    {
+        $user = $this->user;
+        $passwd = $request->getParam('passwd');
+
+        if ($passwd === '') {
+            return ResponseHelper::error($response, '密码不能为空');
+        }
+
+        if (! Hash::checkPassword($user->pass, $passwd)) {
+            return ResponseHelper::error($response, '密码错误');
+        }
+
+        if ($_ENV['enable_kill']) {
+            Auth::logout();
+            $user->killUser();
+            return ResponseHelper::successfully($response, '你的帐号已被送去古拉格劳动改造,再见');
+        }
+
+        return ResponseHelper::error($response, '自助账号删除未启用');
+    }
+}

+ 2 - 307
src/Controllers/UserController.php

@@ -11,30 +11,17 @@ use App\Models\Node;
 use App\Models\OnlineLog;
 use App\Models\Payback;
 use App\Models\Setting;
-use App\Models\User;
 use App\Services\Auth;
-use App\Services\Cache;
 use App\Services\Captcha;
-use App\Services\Config;
-use App\Services\MFA;
-use App\Utils\Hash;
 use App\Utils\ResponseHelper;
-use App\Utils\Telegram;
 use App\Utils\Tools;
 use Exception;
 use Psr\Http\Message\ResponseInterface;
-use Ramsey\Uuid\Uuid;
-use RedisException;
 use Slim\Http\Response;
 use Slim\Http\ServerRequest;
-use voku\helper\AntiXSS;
-use function in_array;
 use function str_replace;
-use function strlen;
-use function strtolower;
 use function strtotime;
 use function time;
-use const BASE_PATH;
 
 /**
  *  HomeController
@@ -107,33 +94,13 @@ final class UserController extends BaseController
         );
     }
 
-    /**
-     * @throws Exception
-     */
-    public function edit(ServerRequest $request, Response $response, array $args): Response|ResponseInterface
-    {
-        $themes = Tools::getDir(BASE_PATH . '/resources/views');
-        $bind_token = Telegram::addBindSession($this->user);
-        $methods = Config::getSupportParam('method');
-        $gaurl = MFA::getGAurl($this->user);
-
-        return $response->write($this->view()
-            ->assign('user', $this->user)
-            ->assign('themes', $themes)
-            ->assign('bind_token', $bind_token)
-            ->assign('methods', $methods)
-            ->assign('gaurl', $gaurl)
-            ->assign('telegram_bot', $_ENV['telegram_bot'])
-            ->registerClass('Config', Config::class)
-            ->fetch('user/edit.tpl'));
-    }
-
     /**
      * @throws Exception
      */
     public function invite(ServerRequest $request, Response $response, array $args): Response|ResponseInterface
     {
         $code = InviteCode::where('user_id', $this->user->id)->first();
+
         if ($code === null) {
             $this->user->addInviteCode();
             $code = InviteCode::where('user_id', $this->user->id)->first();
@@ -148,6 +115,7 @@ final class UserController extends BaseController
         }
 
         $paybacks_sum = Payback::where('ref_by', $this->user->id)->sum('ref_get');
+
         if (! $paybacks_sum) {
             $paybacks_sum = 0;
         }
@@ -162,232 +130,6 @@ final class UserController extends BaseController
             ->fetch('user/invite.tpl'));
     }
 
-    public function updatePassword(ServerRequest $request, Response $response, array $args): ResponseInterface
-    {
-        $oldpwd = $request->getParam('oldpwd');
-        $pwd = $request->getParam('pwd');
-        $repwd = $request->getParam('repwd');
-        $user = $this->user;
-
-        if ($oldpwd === '' || $pwd === '' || $repwd === '') {
-            return ResponseHelper::error($response, '密码不能为空');
-        }
-
-        if (! Hash::checkPassword($user->pass, $oldpwd)) {
-            return ResponseHelper::error($response, '旧密码错误');
-        }
-
-        if ($pwd !== $repwd) {
-            return ResponseHelper::error($response, '两次输入不符合');
-        }
-
-        if (strlen($pwd) < 8) {
-            return ResponseHelper::error($response, '密码太短啦');
-        }
-
-        $hashPwd = Hash::passwordHash($pwd);
-        $user->pass = $hashPwd;
-
-        if (! $user->save()) {
-            return ResponseHelper::error($response, '修改失败');
-        }
-
-        if (Setting::obtain('enable_forced_replacement')) {
-            $user->cleanLink();
-        }
-
-        return ResponseHelper::successfully($response, '修改成功');
-    }
-
-    /**
-     * @throws RedisException
-     */
-    public function updateEmail(ServerRequest $request, Response $response, array $args): Response|ResponseInterface
-    {
-        $antiXss = new AntiXSS();
-        $user = $this->user;
-        $new_email = $antiXss->xss_clean($request->getParam('newemail'));
-        $old_email = $user->email;
-
-        if (! $_ENV['enable_change_email']) {
-            return ResponseHelper::error($response, '此项不允许自行修改,请联系管理员操作');
-        }
-
-        if ($new_email === '') {
-            return ResponseHelper::error($response, '未填写邮箱');
-        }
-
-        if (! Tools::isEmailLegal($new_email)) {
-            return $response->withJson($check_res);
-        }
-
-        $exist_user = User::where('email', $new_email)->first();
-
-        if ($exist_user !== null) {
-            return ResponseHelper::error($response, '邮箱已经被使用了');
-        }
-
-        if ($new_email === $old_email) {
-            return ResponseHelper::error($response, '新邮箱不能和旧邮箱一样');
-        }
-
-        if (Setting::obtain('reg_email_verify')) {
-            $redis = Cache::initRedis();
-            $email_verify_code = $request->getParam('emailcode');
-            $email_verify = $redis->get($email_verify_code);
-
-            if (! $email_verify) {
-                return ResponseHelper::error($response, '你的邮箱验证码不正确');
-            }
-
-            $redis->del($email_verify_code);
-        }
-
-        $user->email = $new_email;
-
-        if (! $user->save()) {
-            return ResponseHelper::error($response, '修改失败');
-        }
-
-        return ResponseHelper::successfully($response, '修改成功');
-    }
-
-    public function updateUsername(ServerRequest $request, Response $response, array $args): ResponseInterface
-    {
-        $antiXss = new AntiXSS();
-        $newusername = $antiXss->xss_clean($request->getParam('newusername'));
-        $user = $this->user;
-        $user->user_name = $newusername;
-
-        if (! $user->save()) {
-            return ResponseHelper::error($response, '修改失败');
-        }
-
-        return ResponseHelper::successfully($response, '修改成功');
-    }
-
-    public function updateContact(ServerRequest $request, Response $response, array $args): Response|ResponseInterface
-    {
-        $antiXss = new AntiXSS();
-        $type = $antiXss->xss_clean($request->getParam('imtype'));
-        $value = $antiXss->xss_clean($request->getParam('imvalue'));
-        $user = $this->user;
-
-        if ($user->telegram_id !== null) {
-            return ResponseHelper::error($response, '你的账户绑定了 Telegram ,所以此项并不能被修改');
-        }
-
-        if ($value === '' || $type === '') {
-            return ResponseHelper::error($response, '联络方式不能为空');
-        }
-
-        if (User::where('im_value', $value)->where('im_type', $type)->first() !== null) {
-            return ResponseHelper::error($response, '此联络方式已经被注册');
-        }
-
-        $user->im_type = $type;
-        $user->im_value = $value;
-
-        if (! $user->save()) {
-            return ResponseHelper::error($response, '修改失败');
-        }
-
-        return ResponseHelper::successfully($response, '修改成功');
-    }
-
-    public function updateTheme(ServerRequest $request, Response $response, array $args): Response|ResponseInterface
-    {
-        $antiXss = new AntiXSS();
-        $theme = $antiXss->xss_clean($request->getParam('theme'));
-        $user = $this->user;
-
-        if ($theme === '') {
-            return ResponseHelper::error($response, '主题不能为空');
-        }
-
-        $user->theme = $theme;
-
-        if (! $user->save()) {
-            return ResponseHelper::error($response, '修改失败');
-        }
-
-        return ResponseHelper::successfully($response, '修改成功');
-    }
-
-    public function updateMail(ServerRequest $request, Response $response, array $args): ResponseInterface
-    {
-        $value = (int) $request->getParam('mail');
-
-        if (! in_array($value, [0, 1, 2])) {
-            return ResponseHelper::error($response, '参数错误');
-        }
-
-        $user = $this->user;
-
-        if ($value === 2 && ! $_ENV['enable_telegram']) {
-            return ResponseHelper::error(
-                $response,
-                '修改失败,当前无法使用 Telegram 接收每日报告'
-            );
-        }
-
-        $user->daily_mail_enable = $value;
-
-        if (! $user->save()) {
-            return ResponseHelper::error($response, '修改失败');
-        }
-
-        return ResponseHelper::successfully($response, '修改成功');
-    }
-
-    public function resetPasswd(ServerRequest $request, Response $response, array $args): ResponseInterface
-    {
-        $user = $this->user;
-        $user->uuid = Uuid::uuid4();
-        $user->passwd = Tools::genRandomChar(16);
-
-        if (! $user->save()) {
-            return ResponseHelper::error($response, '修改失败');
-        }
-
-        return ResponseHelper::successfully($response, '修改成功');
-    }
-
-    public function resetApiToken(ServerRequest $request, Response $response, array $args): ResponseInterface
-    {
-        $user = $this->user;
-        $user->api_token = Uuid::uuid4();
-
-        if (! $user->save()) {
-            return ResponseHelper::error($response, '修改失败');
-        }
-
-        return ResponseHelper::successfully($response, '修改成功');
-    }
-
-    public function updateMethod(ServerRequest $request, Response $response, array $args): ResponseInterface
-    {
-        $antiXss = new AntiXSS();
-
-        $user = $this->user;
-        $method = strtolower($antiXss->xss_clean($request->getParam('method')));
-
-        if ($method === '') {
-            ResponseHelper::error($response, '非法输入');
-        }
-        if (! Tools::isParamValidate('method', $method)) {
-            ResponseHelper::error($response, '加密无效');
-        }
-
-        $user->method = $method;
-
-        if (! $user->save()) {
-            return ResponseHelper::error($response, '修改失败');
-        }
-
-        return ResponseHelper::successfully($response, '修改成功');
-    }
-
     public function logout(ServerRequest $request, Response $response, array $args): Response
     {
         Auth::logout();
@@ -430,36 +172,6 @@ final class UserController extends BaseController
         ]);
     }
 
-    /**
-     * @throws Exception
-     */
-    public function kill(ServerRequest $request, Response $response, array $args): Response|ResponseInterface
-    {
-        return $response->write($this->view()->fetch('user/kill.tpl'));
-    }
-
-    public function handleKill(ServerRequest $request, Response $response, array $args): ResponseInterface
-    {
-        $user = $this->user;
-        $passwd = $request->getParam('passwd');
-
-        if ($passwd === '') {
-            return ResponseHelper::error($response, '密码不能为空');
-        }
-
-        if (! Hash::checkPassword($user->pass, $passwd)) {
-            return ResponseHelper::error($response, '密码错误');
-        }
-
-        if ($_ENV['enable_kill']) {
-            Auth::logout();
-            $user->killUser();
-            return ResponseHelper::successfully($response, '你的帐号已经从我们的系统中删除。欢迎下次光临');
-        }
-
-        return ResponseHelper::error($response, '自助账号删除未启用,如需删除账户请联系管理员。');
-    }
-
     /**
      * @throws Exception
      */
@@ -480,26 +192,9 @@ final class UserController extends BaseController
         return ResponseHelper::successfully($response, '重置成功');
     }
 
-    public function resetURL(ServerRequest $request, Response $response, array $args): ResponseInterface
-    {
-        $user = $this->user;
-        $user->cleanLink();
-
-        return ResponseHelper::successfully($response, '重置成功');
-    }
-
-    public function resetInviteURL(ServerRequest $request, Response $response, array $args): ResponseInterface
-    {
-        $user = $this->user;
-        $user->clearInviteCodes();
-
-        return ResponseHelper::successfully($response, '重置成功');
-    }
-
     public function switchThemeMode(ServerRequest $request, Response $response, array $args): Response|ResponseInterface
     {
         $user = $this->user;
-
         $user->is_dark_mode = $user->is_dark_mode === 1 ? 0 : 1;
 
         if (! $user->save()) {

+ 0 - 2
src/Services/CronJob.php

@@ -13,7 +13,6 @@ use App\Models\OnlineLog;
 use App\Models\Order;
 use App\Models\Paylist;
 use App\Models\Setting;
-use App\Models\StreamMedia;
 use App\Models\User;
 use App\Models\UserHourlyUsage;
 use App\Models\UserSubscribeLog;
@@ -68,7 +67,6 @@ final class CronJob
         DetectLog::where('datetime', '<', time() - 86400 * 3)->delete();
         EmailQueue::where('time', '<', time() - 86400)->delete();
         OnlineLog::where('last_time', '<', time() - 86400)->delete();
-        StreamMedia::where('created_at', '<', time() - 86400)->delete();
 
         echo date('Y-m-d H:i:s') . ' 数据库清理完成' . PHP_EOL;
     }