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:
Daeng Deni Mardaeni
2025-07-10 14:33:26 +07:00
parent 593a4f0d9c
commit 5b235def37
4 changed files with 110 additions and 25 deletions

View File

@@ -46,6 +46,7 @@ class PrintStatementLog extends Model
'email_sent_at',
'stmt_sent_type',
'is_generated',
'password', // Tambahan field password
];
protected $casts = [
@@ -60,6 +61,10 @@ class PrintStatementLog extends Model
'target_accounts' => 'array',
];
protected $hidden = [
'password', // Hide password dari serialization
];
/**
* Get the formatted period display
*