mirror of
https://github.com/lkddi/nexusphp.git
synced 2026-04-24 12:07:23 +08:00
user add provider_id
This commit is contained in:
@@ -125,7 +125,7 @@ class OauthController extends Controller
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$newUser = $this->createUser($providerUsername, $providerEmail);
|
$newUser = $this->createUser($providerUsername, $providerEmail, $provider->id);
|
||||||
$socialAccountData = [
|
$socialAccountData = [
|
||||||
'user_id' => $newUser->id,
|
'user_id' => $newUser->id,
|
||||||
'provider_id' => $provider->id,
|
'provider_id' => $provider->id,
|
||||||
@@ -139,7 +139,7 @@ class OauthController extends Controller
|
|||||||
return redirect($homeUrl);
|
return redirect($homeUrl);
|
||||||
}
|
}
|
||||||
|
|
||||||
private function createUser($username, $email): User
|
private function createUser($username, $email, $providerId): User
|
||||||
{
|
{
|
||||||
if ($username) {
|
if ($username) {
|
||||||
if (User::query()->where('username', $username)->exists()) {
|
if (User::query()->where('username', $username)->exists()) {
|
||||||
@@ -154,6 +154,7 @@ class OauthController extends Controller
|
|||||||
'email' => $email,
|
'email' => $email,
|
||||||
'password' => $password,
|
'password' => $password,
|
||||||
'password_confirmation' => $password,
|
'password_confirmation' => $password,
|
||||||
|
'provider_id' => $providerId,
|
||||||
];
|
];
|
||||||
$userRep = new UserRepository();
|
$userRep = new UserRepository();
|
||||||
for ($i = 0; $i < 3; $i++) {
|
for ($i = 0; $i < 3; $i++) {
|
||||||
|
|||||||
+1
-1
@@ -185,7 +185,7 @@ class User extends Authenticatable implements FilamentUser, HasName
|
|||||||
'username', 'email', 'passhash', 'secret', 'stylesheet', 'editsecret', 'added', 'enabled', 'status',
|
'username', 'email', 'passhash', 'secret', 'stylesheet', 'editsecret', 'added', 'enabled', 'status',
|
||||||
'leechwarn', 'leechwarnuntil', 'page', 'class', 'uploaded', 'downloaded', 'clientselect', 'showclienterror', 'last_home',
|
'leechwarn', 'leechwarnuntil', 'page', 'class', 'uploaded', 'downloaded', 'clientselect', 'showclienterror', 'last_home',
|
||||||
'seedbonus', 'downloadpos', 'vip_added', 'vip_until', 'title', 'invites', 'attendance_card',
|
'seedbonus', 'downloadpos', 'vip_added', 'vip_until', 'title', 'invites', 'attendance_card',
|
||||||
'seed_points_per_hour', 'passkey', 'auth_key', 'last_login', 'lang'
|
'seed_points_per_hour', 'passkey', 'auth_key', 'last_login', 'lang', 'provider_id'
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ use App\Models\ExamUser;
|
|||||||
use App\Models\Invite;
|
use App\Models\Invite;
|
||||||
use App\Models\LoginLog;
|
use App\Models\LoginLog;
|
||||||
use App\Models\Message;
|
use App\Models\Message;
|
||||||
|
use App\Models\OauthProvider;
|
||||||
use App\Models\Setting;
|
use App\Models\Setting;
|
||||||
use App\Models\Snatch;
|
use App\Models\Snatch;
|
||||||
use App\Models\Torrent;
|
use App\Models\Torrent;
|
||||||
@@ -89,7 +90,7 @@ class UserRepository extends BaseRepository
|
|||||||
/**
|
/**
|
||||||
* create user
|
* create user
|
||||||
*
|
*
|
||||||
* @param array $params must: username, email, password, password_confirmation. optional: id, class
|
* @param array $params must: username, email, password, password_confirmation. optional: id, class, provider_id
|
||||||
* @return User
|
* @return User
|
||||||
*/
|
*/
|
||||||
public function store(array $params)
|
public function store(array $params)
|
||||||
@@ -155,6 +156,13 @@ class UserRepository extends BaseRepository
|
|||||||
do_log("[CREATE_USER], specific id: " . $params['id']);
|
do_log("[CREATE_USER], specific id: " . $params['id']);
|
||||||
$user->id = $params['id'];
|
$user->id = $params['id'];
|
||||||
}
|
}
|
||||||
|
if (!empty($params['provider_id'])) {
|
||||||
|
if (!OauthProvider::query()->find($params['provider_id'])) {
|
||||||
|
throw new \InvalidArgumentException("provider_id: {$params['provider_id']} not exists.");
|
||||||
|
}
|
||||||
|
do_log("[CREATE_USER], specific provider_id: " . $params['provider_id']);
|
||||||
|
$user->provider_id = $params['provider_id'];
|
||||||
|
}
|
||||||
$user->save();
|
$user->save();
|
||||||
fire_event("user_created", $user);
|
fire_event("user_created", $user);
|
||||||
return $user;
|
return $user;
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*/
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
Schema::table('users', function (Blueprint $table) {
|
||||||
|
$table->bigInteger("provider_id")->default(0);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*/
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::table('users', function (Blueprint $table) {
|
||||||
|
$table->dropColumn("provider_id");
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
Reference in New Issue
Block a user