From 6e98e42f5156f16fc2cae626ed958e2c63258a0c Mon Sep 17 00:00:00 2001 From: Tokumeikoi Date: Fri, 28 Feb 2020 16:21:16 +0800 Subject: [PATCH] rewrite banned logic --- .../Controllers/Passport/AuthController.php | 4 +- app/Http/Requests/Admin/UserUpdate.php | 3 - app/Services/UserService.php | 2 +- database/install.sql | 71 +++++++++---------- database/update.sql | 3 + 5 files changed, 41 insertions(+), 42 deletions(-) diff --git a/app/Http/Controllers/Passport/AuthController.php b/app/Http/Controllers/Passport/AuthController.php index b501998e..058722d2 100644 --- a/app/Http/Controllers/Passport/AuthController.php +++ b/app/Http/Controllers/Passport/AuthController.php @@ -112,7 +112,7 @@ class AuthController extends Controller abort(500, '用户名或密码错误'); } - if ($user->banned) { + if (!$user->enable) { abort(500, '该账户已被停止使用'); } @@ -159,7 +159,7 @@ class AuthController extends Controller if (!$user) { abort(500, '用户不存在'); } - if ($user->banned) { + if (!$user->enable) { abort(500, '该账户已被停止使用'); } $request->session()->put('email', $user->email); diff --git a/app/Http/Requests/Admin/UserUpdate.php b/app/Http/Requests/Admin/UserUpdate.php index e7cfaa7c..1f6b86ae 100644 --- a/app/Http/Requests/Admin/UserUpdate.php +++ b/app/Http/Requests/Admin/UserUpdate.php @@ -17,7 +17,6 @@ class UserUpdate extends FormRequest 'email' => 'required|email', 'transfer_enable' => 'numeric', 'expired_at' => 'integer', - 'banned' => 'required|in:0,1', 'is_admin' => 'required|in:0,1', 'plan_id' => 'integer', 'commission_rate' => 'nullable|integer|min:0|max:100', @@ -32,8 +31,6 @@ class UserUpdate extends FormRequest 'email.email' => '邮箱格式不正确', 'transfer_enable.numeric' => '流量格式不正确', 'expired_at.integer' => '到期时间格式不正确', - 'banned.required' => '是否封禁不能为空', - 'banned.in' => '是否封禁格式不正确', 'is_admin.required' => '是否管理员不能为空', 'is_admin.in' => '是否管理员格式不正确', 'plan_id.integer' => '订阅计划格式不正确', diff --git a/app/Services/UserService.php b/app/Services/UserService.php index f6e4b5cb..2182ccc4 100644 --- a/app/Services/UserService.php +++ b/app/Services/UserService.php @@ -15,7 +15,7 @@ class UserService public function isAvailable() { - if ($this->user->transfer_enable && ($this->user->expired_at > time() || $this->user->expired_at == 0)) { + if ($this->user->enable && $this->user->transfer_enable && ($this->user->expired_at > time() || $this->user->expired_at == 0)) { return true; } return false; diff --git a/database/install.sql b/database/install.sql index 3e72b3e9..da646340 100644 --- a/database/install.sql +++ b/database/install.sql @@ -1,9 +1,9 @@ -- Adminer 4.7.3 MySQL dump SET NAMES utf8; -SET time_zone = '+00:00'; +SET time_zone = ''+00:00''; SET foreign_key_checks = 0; -SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO'; +SET sql_mode = ''NO_AUTO_VALUE_ON_ZERO''; SET NAMES utf8mb4; @@ -40,8 +40,8 @@ CREATE TABLE `v2_invite_code` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) NOT NULL, `code` char(32) NOT NULL, - `status` tinyint(1) NOT NULL DEFAULT '0', - `pv` int(11) NOT NULL DEFAULT '0', + `status` tinyint(1) NOT NULL DEFAULT ''0'', + `pv` int(11) NOT NULL DEFAULT ''0'', `created_at` int(11) NOT NULL, `updated_at` int(11) NOT NULL, PRIMARY KEY (`id`) @@ -79,17 +79,17 @@ CREATE TABLE `v2_order` ( `invite_user_id` int(11) DEFAULT NULL, `user_id` int(11) NOT NULL, `plan_id` int(11) NOT NULL, - `type` int(11) NOT NULL COMMENT '1新购2续费3升级', + `type` int(11) NOT NULL COMMENT ''1新购2续费3升级'', `cycle` varchar(255) NOT NULL, `trade_no` varchar(36) NOT NULL, `callback_no` varchar(255) DEFAULT NULL, `total_amount` int(11) NOT NULL, `discount_amount` int(11) DEFAULT NULL, - `surplus_amount` int(11) DEFAULT NULL COMMENT '剩余价值', - `refund_amount` int(11) DEFAULT NULL COMMENT '退款金额', - `status` tinyint(1) NOT NULL DEFAULT '0', - `commission_status` tinyint(1) NOT NULL DEFAULT '0', - `commission_balance` int(11) NOT NULL DEFAULT '0', + `surplus_amount` int(11) DEFAULT NULL COMMENT ''剩余价值'', + `refund_amount` int(11) DEFAULT NULL COMMENT ''退款金额'', + `status` tinyint(1) NOT NULL DEFAULT ''0'', + `commission_status` tinyint(1) NOT NULL DEFAULT ''0'', + `commission_balance` int(11) NOT NULL DEFAULT ''0'', `created_at` int(11) NOT NULL, `updated_at` int(11) NOT NULL, PRIMARY KEY (`id`) @@ -102,9 +102,9 @@ CREATE TABLE `v2_plan` ( `group_id` int(11) NOT NULL, `transfer_enable` int(11) NOT NULL, `name` varchar(255) NOT NULL, - `type` tinyint(1) NOT NULL DEFAULT '0' COMMENT '0: 周期 1:一次性', - `show` tinyint(1) NOT NULL DEFAULT '0', - `renew` tinyint(1) NOT NULL DEFAULT '1', + `type` tinyint(1) NOT NULL DEFAULT ''0'' COMMENT ''0: 周期 1:一次性'', + `show` tinyint(1) NOT NULL DEFAULT ''0'', + `renew` tinyint(1) NOT NULL DEFAULT ''1'', `content` text, `month_price` int(11) DEFAULT NULL, `quarter_price` int(11) DEFAULT NULL, @@ -126,13 +126,13 @@ CREATE TABLE `v2_server` ( `host` varchar(255) NOT NULL, `port` int(11) NOT NULL, `server_port` int(11) NOT NULL, - `tls` tinyint(4) NOT NULL DEFAULT '0', + `tls` tinyint(4) NOT NULL DEFAULT ''0'', `tags` varchar(255) DEFAULT NULL, `rate` varchar(11) NOT NULL, `network` varchar(11) NOT NULL, `settings` text, `rules` text, - `show` tinyint(1) NOT NULL DEFAULT '0', + `show` tinyint(1) NOT NULL DEFAULT ''0'', `created_at` int(11) NOT NULL, `updated_at` int(11) NOT NULL, PRIMARY KEY (`id`) @@ -168,7 +168,7 @@ CREATE TABLE `v2_ticket` ( `last_reply_user_id` int(11) NOT NULL, `subject` varchar(255) NOT NULL, `level` tinyint(1) NOT NULL, - `status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '0:已开启 1:已关闭', + `status` tinyint(1) NOT NULL DEFAULT ''0'' COMMENT ''0:已开启 1:已关闭'', `created_at` int(11) NOT NULL, `updated_at` int(11) NOT NULL, PRIMARY KEY (`id`) @@ -194,17 +194,17 @@ CREATE TABLE `v2_tutorial` ( `title` varchar(255) CHARACTER SET utf8mb4 NOT NULL, `icon` varchar(255) CHARACTER SET utf8mb4 NOT NULL, `steps` text, - `show` tinyint(1) NOT NULL DEFAULT '0', + `show` tinyint(1) NOT NULL DEFAULT ''0'', `created_at` int(11) NOT NULL, `updated_at` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO `v2_tutorial` (`id`, `category_id`, `title`, `icon`, `steps`, `show`, `created_at`, `updated_at`) VALUES -(1, 1, 'V2rayN', 'fab fa-2x fa-windows', '[{\"default_area\":\"
下载 V2rayN 客户端。
下载完成后解压,解压完成后运行V2rayN
运行时请右键,以管理员身份运行
\",\"download_url\":\"/downloads/V2rayN.zip\"},{\"default_area\":\"
点击订阅按钮,选择订阅设置点击添加,输入如下内容后点击确定保存
\",\"safe_area\":\"
备注:{{$app_name}}
\\n
地址(url):{{$subscribe_url}}
\",\"img_url\":\"https://i.loli.net/2019/11/21/UkcHNtERTnjLVS8.jpg\"},{\"default_area\":\"
点击订阅后,从服务器列表选择服务器
\",\"img_url\":\"https://i.loli.net/2019/11/21/BgPGFQ3kCSuIRjJ.jpg\"},{\"default_area\":\"
点击参数设置,找到Http代理,选择PAC模式后按确定保存即启动代理。
\",\"img_url\":\"https://i.loli.net/2019/11/21/vnVykKEFT8Lzo3f.jpg\"}]', 1, 1577972408, 1577980882), -(2, 4, 'V2rayNG', 'fab fa-2x fa-android', '[{\"default_area\":\"
下载 V2rayNG 客户端。
\",\"safe_area\":\"\",\"download_url\":\"/downloads/V2rayNG.apk\"},{\"default_area\":\"
打开 V2rayNG 点击左上角的菜单图标打开侧边栏,随后点击 订阅设置,点击右上角的➕按钮新增订阅。
按照下方内容进行填写,填写完毕后点击右上角的☑️按钮。
\",\"safe_area\":\"
备注:{{$app_name}}
\\n
地址(url):{{$subscribe_url}}
\",\"download_url\":\"\",\"img_url\":\"https://i.loli.net/2019/11/21/ghuVkTe6LBqRxSO.jpg\"},{\"default_area\":\"
再次从侧边栏进入 设置 页面,点击 路由模式 将其更改为 \\b绕过局域网及大陆地址。
\",\"img_url\":\"https://i.loli.net/2019/11/21/Tf1AGoXZuhJrwOq.jpg\"},{\"default_area\":\"
随后从侧边栏回到 配置文件 页面,点击右上角的省略号图标选择更新订阅。
\",\"img_url\":\"https://i.loli.net/2019/11/21/UtfPShQXupRmB4L.jpg\"},{\"img_url\":\"https://i.loli.net/2019/11/21/ZkbNsSrAg3m5Dny.jpg\",\"default_area\":\"
点击选择您需要的节点,点击右下角的V字按钮即可连接。
\"}]', 1, 1577972534, 1577981610), -(3, 2, 'ClashX', 'fab fa-2x fa-apple', '[{\"default_area\":\"
下载 ClashX 客户端,安装后运行。
\",\"download_url\":\"/downloads/ClashX.dmg\",\"img_url\":\"https://i.loli.net/2019/11/20/uNGrjl2noCL1f5B.jpg\"},{\"default_area\":\"
点击通知栏 ClashX 图标保持选中状态,按快捷键 ⌘+M(订阅快捷键),在弹出的窗口点击添加输入下方信息
\",\"safe_area\":\"
Url:{{$subscribe_url}}
\\n
Config Name:{{$app_name}}
\",\"img_url\":\"https://i.loli.net/2019/11/20/8eB13mRbFuszwxg.jpg\"},{\"default_area\":\"
点击通知栏 ClashX 图标保持选中状态,按快捷键 ⌘+S(设置为系统代理快捷键),即连接完成
\"}]', 1, 1577979855, 1577981646), -(4, 3, 'Shadowrocket', 'fab fa-2x fa-apple', '[{\"default_area\":\"
iOS上使用请在iOS浏览器中打开本页
\"},{\"default_area\":\"
在 App Store 登录本站提供的美区 Apple ID 下载客户端。
为了保护您的隐私,请勿在手机设置里直接登录,仅在 App Store 登录即可。
登陆完成后点击下方下载会自动唤起下载。
\",\"safe_area\":\"
Apple ID:{{$apple_id}}
密码:点击复制密码
\",\"download_url\":\"https://apps.apple.com/us/app/shadowrocket/id932747118\",\"img_url\":\"https://i.loli.net/2019/11/21/5idkjJ61stWgREV.jpg\"},{\"default_area\":\"
待客户端安装完成后,点击下方一键订阅按钮会自动唤起并进行订阅
\",\"safe_area\":\"\",\"img_url\":\"https://i.loli.net/2019/11/21/ZcqlNMb3eg5Uhxd.jpg\",\"download_url\":\"shadowrocket://add/sub://{{$b64_subscribe_url}}?remark={{$app_name}}\"},{\"default_area\":\"
选择节点进行链接,首次链接过程授权窗口请一路允许。
\",\"img_url\":\"https://i.loli.net/2019/11/21/9Zdxksr7Ey6hjlm.jpg\"}]', 1, 1577982016, 1577983283); +(1, 1, ''V2rayN'', ''fab fa-2x fa-windows'', ''[{\"default_area\":\"
下载 V2rayN 客户端。
下载完成后解压,解压完成后运行V2rayN
运行时请右键,以管理员身份运行
\",\"download_url\":\"/downloads/V2rayN.zip\"},{\"default_area\":\"
点击订阅按钮,选择订阅设置点击添加,输入如下内容后点击确定保存
\",\"safe_area\":\"
备注:{{$app_name}}
\\n
地址(url):{{$subscribe_url}}
\",\"img_url\":\"https://i.loli.net/2019/11/21/UkcHNtERTnjLVS8.jpg\"},{\"default_area\":\"
点击订阅后,从服务器列表选择服务器
\",\"img_url\":\"https://i.loli.net/2019/11/21/BgPGFQ3kCSuIRjJ.jpg\"},{\"default_area\":\"
点击参数设置,找到Http代理,选择PAC模式后按确定保存即启动代理。
\",\"img_url\":\"https://i.loli.net/2019/11/21/vnVykKEFT8Lzo3f.jpg\"}]'', 1, 1577972408, 1577980882), +(2, 4, ''V2rayNG'', ''fab fa-2x fa-android'', ''[{\"default_area\":\"
下载 V2rayNG 客户端。
\",\"safe_area\":\"\",\"download_url\":\"/downloads/V2rayNG.apk\"},{\"default_area\":\"
打开 V2rayNG 点击左上角的菜单图标打开侧边栏,随后点击 订阅设置,点击右上角的➕按钮新增订阅。
按照下方内容进行填写,填写完毕后点击右上角的☑️按钮。
\",\"safe_area\":\"
备注:{{$app_name}}
\\n
地址(url):{{$subscribe_url}}
\",\"download_url\":\"\",\"img_url\":\"https://i.loli.net/2019/11/21/ghuVkTe6LBqRxSO.jpg\"},{\"default_area\":\"
再次从侧边栏进入 设置 页面,点击 路由模式 将其更改为 \\b绕过局域网及大陆地址。
\",\"img_url\":\"https://i.loli.net/2019/11/21/Tf1AGoXZuhJrwOq.jpg\"},{\"default_area\":\"
随后从侧边栏回到 配置文件 页面,点击右上角的省略号图标选择更新订阅。
\",\"img_url\":\"https://i.loli.net/2019/11/21/UtfPShQXupRmB4L.jpg\"},{\"img_url\":\"https://i.loli.net/2019/11/21/ZkbNsSrAg3m5Dny.jpg\",\"default_area\":\"
点击选择您需要的节点,点击右下角的V字按钮即可连接。
\"}]'', 1, 1577972534, 1577981610), +(3, 2, ''ClashX'', ''fab fa-2x fa-apple'', ''[{\"default_area\":\"
下载 ClashX 客户端,安装后运行。
\",\"download_url\":\"/downloads/ClashX.dmg\",\"img_url\":\"https://i.loli.net/2019/11/20/uNGrjl2noCL1f5B.jpg\"},{\"default_area\":\"
点击通知栏 ClashX 图标保持选中状态,按快捷键 ⌘+M(订阅快捷键),在弹出的窗口点击添加输入下方信息
\",\"safe_area\":\"
Url:{{$subscribe_url}}
\\n
Config Name:{{$app_name}}
\",\"img_url\":\"https://i.loli.net/2019/11/20/8eB13mRbFuszwxg.jpg\"},{\"default_area\":\"
点击通知栏 ClashX 图标保持选中状态,按快捷键 ⌘+S(设置为系统代理快捷键),即连接完成
\"}]'', 1, 1577979855, 1577981646), +(4, 3, ''Shadowrocket'', ''fab fa-2x fa-apple'', ''[{\"default_area\":\"
iOS上使用请在iOS浏览器中打开本页
\"},{\"default_area\":\"
在 App Store 登录本站提供的美区 Apple ID 下载客户端。
为了保护您的隐私,请勿在手机设置里直接登录,仅在 App Store 登录即可。
登陆完成后点击下方下载会自动唤起下载。
\",\"safe_area\":\"
Apple ID:{{$apple_id}}
密码:点击复制密码
\",\"download_url\":\"https://apps.apple.com/us/app/shadowrocket/id932747118\",\"img_url\":\"https://i.loli.net/2019/11/21/5idkjJ61stWgREV.jpg\"},{\"default_area\":\"
待客户端安装完成后,点击下方一键订阅按钮会自动唤起并进行订阅
\",\"safe_area\":\"\",\"img_url\":\"https://i.loli.net/2019/11/21/ZcqlNMb3eg5Uhxd.jpg\",\"download_url\":\"shadowrocket://add/sub://{{$b64_subscribe_url}}?remark={{$app_name}}\"},{\"default_area\":\"
选择节点进行链接,首次链接过程授权窗口请一路允许。
\",\"img_url\":\"https://i.loli.net/2019/11/21/9Zdxksr7Ey6hjlm.jpg\"}]'', 1, 1577982016, 1577983283); DROP TABLE IF EXISTS `v2_user`; CREATE TABLE `v2_user` ( @@ -213,28 +213,27 @@ CREATE TABLE `v2_user` ( `email` varchar(64) NOT NULL, `password` varchar(64) NOT NULL, `password_algo` char(10) DEFAULT NULL, - `balance` int(11) NOT NULL DEFAULT '0', + `balance` int(11) NOT NULL DEFAULT ''0'', `discount` int(11) DEFAULT NULL, `commission_rate` int(11) DEFAULT NULL, - `commission_balance` int(11) NOT NULL DEFAULT '0', - `t` int(11) NOT NULL DEFAULT '0', - `u` bigint(20) NOT NULL DEFAULT '0', - `d` bigint(20) NOT NULL DEFAULT '0', - `transfer_enable` bigint(20) NOT NULL DEFAULT '0', - `enable` tinyint(1) NOT NULL DEFAULT '1', - `banned` tinyint(1) NOT NULL DEFAULT '0', - `is_admin` tinyint(1) NOT NULL DEFAULT '0', + `commission_balance` int(11) NOT NULL DEFAULT ''0'', + `t` int(11) NOT NULL DEFAULT ''0'', + `u` bigint(20) NOT NULL DEFAULT ''0'', + `d` bigint(20) NOT NULL DEFAULT ''0'', + `transfer_enable` bigint(20) NOT NULL DEFAULT ''0'', + `enable` tinyint(1) NOT NULL DEFAULT ''1'', + `is_admin` tinyint(1) NOT NULL DEFAULT ''0'', `last_login_at` int(11) DEFAULT NULL, `last_login_ip` int(11) DEFAULT NULL, `v2ray_uuid` varchar(36) NOT NULL, - `v2ray_alter_id` tinyint(4) NOT NULL DEFAULT '2', - `v2ray_level` tinyint(4) NOT NULL DEFAULT '0', + `v2ray_alter_id` tinyint(4) NOT NULL DEFAULT ''2'', + `v2ray_level` tinyint(4) NOT NULL DEFAULT ''0'', `group_id` int(11) DEFAULT NULL, `plan_id` int(11) DEFAULT NULL, - `remind_expire` tinyint(4) DEFAULT '1', - `remind_traffic` tinyint(4) DEFAULT '1', + `remind_expire` tinyint(4) DEFAULT ''1'', + `remind_traffic` tinyint(4) DEFAULT ''1'', `token` char(32) NOT NULL, - `expired_at` bigint(20) NOT NULL DEFAULT '0', + `expired_at` bigint(20) NOT NULL DEFAULT ''0'', `created_at` int(11) NOT NULL, `updated_at` int(11) NOT NULL, PRIMARY KEY (`id`), @@ -242,4 +241,4 @@ CREATE TABLE `v2_user` ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- 2020-02-28 07:06:17 +-- 2020-02-28 08:19:57 diff --git a/database/update.sql b/database/update.sql index ed01581e..18bf2115 100644 --- a/database/update.sql +++ b/database/update.sql @@ -178,3 +178,6 @@ CHANGE `quarter_price` `quarter_price` int(11) NULL AFTER `month_price`, CHANGE `half_year_price` `half_year_price` int(11) NULL AFTER `quarter_price`, CHANGE `year_price` `year_price` int(11) NULL AFTER `half_year_price`, ADD `onetime_price` int(11) NULL AFTER `year_price`; + +ALTER TABLE `v2_user` +DROP `banned`;