fix: oauthseeder
This commit is contained in:
@@ -4,6 +4,7 @@ namespace Database\Seeders;
|
|||||||
|
|
||||||
use App\Models\OauthSetting;
|
use App\Models\OauthSetting;
|
||||||
use Illuminate\Database\Seeder;
|
use Illuminate\Database\Seeder;
|
||||||
|
use Illuminate\Support\Facades\Log;
|
||||||
|
|
||||||
class OauthSettingSeeder extends Seeder
|
class OauthSettingSeeder extends Seeder
|
||||||
{
|
{
|
||||||
@@ -12,6 +13,7 @@ class OauthSettingSeeder extends Seeder
|
|||||||
*/
|
*/
|
||||||
public function run(): void
|
public function run(): void
|
||||||
{
|
{
|
||||||
|
try {
|
||||||
$providers = collect([
|
$providers = collect([
|
||||||
'azure',
|
'azure',
|
||||||
'bitbucket',
|
'bitbucket',
|
||||||
@@ -27,27 +29,27 @@ class OauthSettingSeeder extends Seeder
|
|||||||
// Before authentik was a provider, providers started with 0 id
|
// Before authentik was a provider, providers started with 0 id
|
||||||
|
|
||||||
$isOauthAuthentik = OauthSetting::where('provider', 'authentik')->exists();
|
$isOauthAuthentik = OauthSetting::where('provider', 'authentik')->exists();
|
||||||
if ($isOauthSeeded) {
|
if (! $isOauthSeeded || $isOauthAuthentik) {
|
||||||
if (! $isOauthAuthentik) {
|
foreach ($providers as $provider) {
|
||||||
|
OauthSetting::updateOrCreate([
|
||||||
|
'provider' => $provider,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
$allProviders = OauthSetting::all();
|
$allProviders = OauthSetting::all();
|
||||||
$notFoundProviders = $providers->diff($allProviders->pluck('provider'));
|
$notFoundProviders = $providers->diff($allProviders->pluck('provider'));
|
||||||
|
|
||||||
$allProviders->each(function ($provider) {
|
$allProviders->each(function ($provider) {
|
||||||
$provider->delete();
|
$provider->delete();
|
||||||
});
|
});
|
||||||
$allProviders->each(function ($provider) use ($providers) {
|
$allProviders->each(function ($provider) {
|
||||||
$providerName = $provider->provider;
|
$provider = new OauthSetting;
|
||||||
|
$provider->provider = $provider->provider;
|
||||||
$foundProvider = $providers->first(function ($provider) use ($providerName) {
|
unset($provider->id);
|
||||||
return $provider === $providerName;
|
$provider->save();
|
||||||
});
|
|
||||||
|
|
||||||
if ($foundProvider) {
|
|
||||||
$newProvder = new OauthSetting;
|
|
||||||
$newProvder = $provider;
|
|
||||||
unset($newProvder->id);
|
|
||||||
$newProvder->save();
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
foreach ($notFoundProviders as $provider) {
|
foreach ($notFoundProviders as $provider) {
|
||||||
@@ -55,19 +57,9 @@ class OauthSettingSeeder extends Seeder
|
|||||||
'provider' => $provider,
|
'provider' => $provider,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
foreach ($providers as $provider) {
|
} catch (\Exception $e) {
|
||||||
OauthSetting::updateOrCreate([
|
Log::error($e->getMessage());
|
||||||
'provider' => $provider,
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
foreach ($providers as $provider) {
|
|
||||||
OauthSetting::updateOrCreate([
|
|
||||||
'provider' => $provider,
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user