Fix 生成用户错误

This commit is contained in:
兔姬桑
2020-12-28 13:52:12 +08:00
parent e8383021f6
commit 12318aa359
5 changed files with 44 additions and 12 deletions

View File

@@ -50,6 +50,37 @@ class Helpers
return $code;
}
/**
* 添加用户.
*
* @param string $email 用户邮箱
* @param string $password 用户密码
* @param int $transfer_enable 可用流量
* @param int|null $date 可使用天数
* @param int|null $inviter_id 邀请人
* @param string|null $username 昵称
* @return User
*/
public static function addUser(string $email, string $password, int $transfer_enable, int $date = null, int $inviter_id = null, string $username = null): User
{
return User::create([
'username' => $username ?? $email,
'email' => $email,
'password' => $password,
'port' => self::getPort(), // 生成一个可用端口
'passwd' => Str::random(),
'vmess_id' => Str::uuid(),
'method' => self::getDefaultMethod(),
'protocol' => self::getDefaultProtocol(),
'obfs' => self::getDefaultObfs(),
'transfer_enable' => $transfer_enable,
'expired_at' => date('Y-m-d', strtotime('+'.$date.' days')),
'user_group_id' => null,
'reg_ip' => IP::getClientIp(),
'inviter_id' => $inviter_id,
]);
}
// 获取一个有效端口
public static function getPort(): int
{

View File

@@ -263,7 +263,7 @@ class UserController extends Controller
try {
for ($i = 0; $i < (int) request('amount', 1); $i++) {
$user = factory(User::class)->create($preset);
$user = Helpers::addUser(Str::random(8).'@auto.generate', Str::random(), 1024 * GB, 365);
// 写入用户流量变动记录
Helpers::addUserTrafficModifyLog($user->id, null, 0, 1024 * GB, '后台批量生成用户');
}

View File

@@ -241,13 +241,13 @@ class AuthController extends Controller
if (Invite::whereCode($code)->whereStatus(0)->doesntExist()) {
return Redirect::back()->withInput($request->except('code'))->withErrors(trans('auth.code_error'));
}
} elseif (sysConfig('is_invite_register') == 2) { // 必须使用邀请码
} elseif ((int) sysConfig('is_invite_register') === 2) { // 必须使用邀请码
return Redirect::back()->withInput()->withErrors(trans('auth.code_null'));
}
}
// 注册前发送激活码
if (sysConfig('is_activate_account') == 1) {
if ((int) sysConfig('is_activate_account') === 1) {
if (! $verify_code) {
return Redirect::back()->withInput($request->except('verify_code'))->withErrors(trans('auth.captcha_null'));
}
@@ -288,9 +288,7 @@ class AuthController extends Controller
$transfer_enable = MB * ((int) sysConfig('default_traffic') + ($inviter_id ? (int) sysConfig('referral_traffic') : 0));
// 创建新用户
$user = factory(User::class)->create([
'username' => $username, 'email' => $email, 'password' => $password, 'transfer_enable' => $transfer_enable, 'inviter_id' => $inviter_id,
]);
$user = Helpers::addUser($email, $password, $transfer_enable, sysConfig('default_days'), $inviter_id, $username);
// 注册失败,抛出异常
if (! $user) {
@@ -306,7 +304,10 @@ class AuthController extends Controller
// 更新邀请码
if ($affArr['code_id'] && sysConfig('is_invite_register')) {
Invite::find($affArr['code_id'])->update(['invitee_id' => $user->id, 'status' => 1]);
$invite = Invite::find($affArr['code_id']);
if ($invite) {
$invite->update(['invitee_id' => $user->id, 'status' => 1]);
}
}
// 清除邀请人Cookie
@@ -510,7 +511,7 @@ class AuthController extends Controller
$password = $request->input('password');
// 校验账号
$verify = Verify::type(1)->whereToken($token)->first();
$verify = Verify::type(1)->whereToken($token)->firstOrFail();
$user = $verify->user;
if (! $verify) {
return Redirect::route('login');
@@ -573,7 +574,7 @@ class AuthController extends Controller
$email = $request->input('email');
// 是否开启账号激活
if (sysConfig('is_activate_account') != 2) {
if ((int) sysConfig('is_activate_account') !== 2) {
return Redirect::back()->withInput()->withErrors(trans('auth.active_close', ['email' => sysConfig('webmaster_email')]));
}
@@ -620,7 +621,7 @@ class AuthController extends Controller
return Redirect::route('login');
}
$verify = Verify::type(1)->with('user')->whereToken($token)->first();
$verify = Verify::type(1)->with('user')->whereToken($token)->firstOrFail();
$user = $verify->user;
if (! $verify) {
return Redirect::route('login');

View File

@@ -19,5 +19,6 @@ $factory->define(User::class, function (Faker $faker) {
'obfs' => Helpers::getDefaultObfs(),
'transfer_enable' => (int) sysConfig('default_traffic') * MB,
'expired_at' => date('Y-m-d', strtotime('+'.sysConfig('default_days').' days')),
'user_group_id' => null,
];
});

View File

@@ -7,7 +7,6 @@ use App\Models\Label;
use App\Models\Level;
use App\Models\Rule;
use App\Models\SsConfig;
use App\Models\User;
use Illuminate\Database\Seeder;
class PresetSeeder extends Seeder
@@ -514,7 +513,7 @@ class PresetSeeder extends Seeder
}
// 生成初始管理账号
$user = factory(User::class)->create(['username' => '管理员', 'email' => 'test@test.com', 'password' => '123456']);
$user = Helpers::addUser('test@test.com', '123456', 100 * GB, sysConfig('default_days'), null, '管理员');
$user->assignRole('Super Admin');
}
}