This commit is contained in:
f4ilji
2024-11-21 23:01:36 +05:00
parent 4bb3e70f1f
commit f9b707b0bb
4 changed files with 119 additions and 0 deletions
@@ -0,0 +1,46 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
use Laravel\Fortify\Fortify;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::table('users', function (Blueprint $table) {
$table->text('two_factor_secret')
->after('password')
->nullable();
$table->text('two_factor_recovery_codes')
->after('two_factor_secret')
->nullable();
if (Fortify::confirmsTwoFactorAuthentication()) {
$table->timestamp('two_factor_confirmed_at')
->after('two_factor_recovery_codes')
->nullable();
}
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::table('users', function (Blueprint $table) {
$table->dropColumn(array_merge([
'two_factor_secret',
'two_factor_recovery_codes',
], Fortify::confirmsTwoFactorAuthentication() ? [
'two_factor_confirmed_at',
] : []));
});
}
};
@@ -0,0 +1,24 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
public function up()
{
Schema::create('settings', function (Blueprint $table): void {
$table->id();
$table->string('group');
$table->string('name');
$table->boolean('locked')->default(false);
$table->json('payload');
$table->timestamps();
$table->unique(['group', 'name']);
});
}
};
@@ -0,0 +1,31 @@
<?php
use Spatie\LaravelSettings\Migrations\SettingsBlueprint;
use Spatie\LaravelSettings\Migrations\SettingsMigration;
return new class extends SettingsMigration
{
public function up(): void
{
$this->migrator->inGroup('checkpoint', function (SettingsBlueprint $migrator) {
$migrator->add('max_attempts', 3);
$migrator->add('lockout_duration', 120);
$migrator->add('notify_on_lockout', false);
$migrator->add('notification_emails', '');
$migrator->add('notify_after_lockouts', 5);
$migrator->add('notification_time_frame', 300);
});
}
public function down(): void
{
$this->migrator->inGroup('checkpoint', function (SettingsBlueprint $migrator) {
$migrator->delete('max_attempts');
$migrator->delete('lockout_duration');
$migrator->delete('notify_on_lockout');
$migrator->delete('notification_emails');
$migrator->delete('notify_after_lockouts');
$migrator->delete('notification_time_frame');
});
}
};
@@ -0,0 +1,18 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
use Vormkracht10\TwoFactorAuth\Enums\TwoFactorType;
return new class extends Migration
{
public function up()
{
if (!Schema::hasColumn('users', 'two_factor_type') && Schema::hasColumn('users', 'two_factor_recovery_codes')) {
Schema::table('users', function (Blueprint $table) {
$table->enum('two_factor_type', TwoFactorType::names())->nullable()->after('two_factor_recovery_codes');
});
}
}
};