# Pondok As Sakinah Backend V6.5.1

Hotfix ini mengaktifkan:

- registrasi akun menggunakan email;
- login email;
- pembuatan atau perubahan kata sandi dari aplikasi;
- reset kata sandi pengguna dari dashboard admin;
- pencabutan seluruh sesi pengguna setelah reset oleh admin;
- penanda `must_change_password` untuk password sementara;
- endpoint pemeriksaan kemampuan autentikasi.

## File yang diperbarui

Upload isi folder `backend/` ke document root backend produksi, misalnya:

```text
/home/sekaija1/sakinah.bgsx.biz.id/backend/
```

File yang akan diperbarui:

```text
auth.php
db.php
admin/index.php
admin/_bootstrap.php
admin/style.css
migration_v6_5_1.php
upgrade_v651.php
```

Jangan menimpa atau menghapus:

```text
config.php
ai-chat.php
sync.php
community.php
api.php
knowledge/
```

## Urutan aktivasi

1. Backup folder backend dan export database melalui phpMyAdmin.
2. Upload file patch ke folder backend produksi.
3. Isi sementara pada `config.php`:

```php
'install_token' => 'TOKEN_UPGRADE_PANJANG_DAN_ACAK',
```

4. Jalankan:

```text
https://sakinah.bgsx.biz.id/backend/upgrade_v651.php?token=TOKEN_UPGRADE_PANJANG_DAN_ACAK
```

Respons berhasil:

```json
{
  "ok": true,
  "version": "6.5.1"
}
```

5. Periksa kemampuan autentikasi:

```text
https://sakinah.bgsx.biz.id/backend/auth.php?action=capabilities
```

Respons harus memuat:

```json
{
  "ok": true,
  "version": "6.5.1",
  "features": [
    "email_signup",
    "email_login",
    "google_login",
    "change_password",
    "admin_password_reset"
  ]
}
```

6. Setelah berhasil:
   - hapus `upgrade_v651.php` dari hosting;
   - kosongkan kembali `install_token`;
   - `migration_v6_5_1.php` boleh dihapus atau disimpan di luar folder publik.

## Reset password dari dashboard admin

Buka:

```text
https://sakinah.bgsx.biz.id/backend/admin/
```

Masuk ke menu **Pengguna**. Role `admin` dan `superadmin` dapat:

1. mengisi password sementara minimal 10 karakter;
2. memastikan password memuat huruf dan angka;
3. menekan **Reset**;
4. seluruh sesi aktif pengguna otomatis dicabut;
5. pengguna masuk kembali dengan password sementara;
6. pengguna menggantinya dari menu **Profil → Atur/Ganti Kata Sandi**.

Password tidak dicatat pada audit log. Audit hanya mencatat admin pelaksana, ID pengguna, email, dan pencabutan sesi.

## Uji wajib

1. Daftar dengan email baru dari aplikasi.
2. Lengkapi profil tanpa nomor WhatsApp.
3. Logout, lalu login kembali menggunakan email dan password.
4. Buka Profil dan ubah password.
5. Pastikan password lama tidak dapat digunakan lagi.
6. Reset password satu akun dari dashboard admin.
7. Pastikan akun tersebut otomatis keluar dari perangkat lama.
8. Login dengan password sementara dan ganti password dari Profil.
