feat(webstatement): tambah field password untuk proteksi PDF statement
Perubahan yang dilakukan: - Menambahkan kolom password (nullable) pada tabel print_statement_logs melalui migrasi baru. - Menambahkan field password di model PrintStatementLog dengan atribut hidden untuk keamanan serialisasi. - Menambahkan input password pada form request print statement. - Menambahkan validasi sisi klien agar password minimal 6 karakter. - Menambahkan konfirmasi melalui SweetAlert untuk pengisian password dan email tujuan. - Menambahkan index pada kolom password untuk optimasi pencarian jika dibutuhkan. - Menggunakan field password untuk proteksi file PDF melalui PDFPasswordProtect. - Menambahkan helper text dan placeholder pada form untuk meningkatkan pengalaman pengguna. - Menambahkan atribut autocomplete="new-password" untuk menghindari autofill browser yang tidak aman. - Menjaga kompatibilitas ke belakang dengan membuat field bersifat opsional (nullable). Tujuan perubahan: - Memberikan opsi proteksi file PDF dengan password yang diatur oleh pengguna. - Meningkatkan keamanan distribusi file statement melalui email. - Memastikan pengalaman pengguna tetap aman dan nyaman saat mengatur proteksi.
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Menjalankan migrasi untuk menambahkan kolom password ke tabel print_statement_logs
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::table('print_statement_logs', function (Blueprint $table) {
|
||||
// Menambahkan kolom password setelah kolom stmt_sent_type
|
||||
$table->string('password', 255)->nullable()->after('stmt_sent_type')
|
||||
->comment('Password untuk proteksi PDF statement');
|
||||
|
||||
// Menambahkan index untuk performa query jika diperlukan
|
||||
$table->index(['password'], 'idx_print_statement_logs_password');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Membalikkan migrasi dengan menghapus kolom password
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::table('print_statement_logs', function (Blueprint $table) {
|
||||
// Hapus index terlebih dahulu
|
||||
$table->dropIndex('idx_print_statement_logs_password');
|
||||
|
||||
// Hapus kolom password
|
||||
$table->dropColumn('password');
|
||||
});
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user