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