fix: oauthseeder

This commit is contained in:
Andras Bacsai
2024-12-16 09:48:41 +01:00
parent c4cee62ff6
commit 65ba6b947a

View File

@@ -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,
]);
}
} }
} }
} }