| Current Path : /var/www/html/mysis/doc/ |
| Current File : /var/www/html/mysis/doc/register-user.md |
# Cara Daftar (Register) User
Dokumentasi ini menerangkan cara mendaftarkan user baru dalam sistem MySIS.
## 1. Akses Form Add User
Buka URL berikut (perlu login sebagai admin):
```
http://127.0.0.1:8000/user/create
```
Atau melalui menu:
**Sidebar → Setting → User → Add User**
## 2. Isi Borang
| Field | Keterangan |
|-------|------------|
| **Name** | Nama penuh user |
| **Email** | Email user (mesti unik — tak boleh sama dengan user lain) |
| **Role** | Pilih peranan dari dropdown (contoh: superadmin, REDD Plus Unit, dll) |
## 3. Click Submit
Selepas klik **Submit**, sistem akan:
1. Semak email unik (validation)
2. Create user dengan **default password: `123456789`**
3. Assign role yang dipilih kepada user
4. Hantar email login details ke email user
5. Redirect ke senarai user dengan mesej kejayaan
## 4. Login User Baru
User baru boleh login dengan:
- **Email:** email yang didaftarkan
- **Password:** `123456789` (default)
## Nota Penting
- **Password default `123456789`** — ditetapkan dalam `app/Http/Controllers/UserController.php` di method `store()`:
```php
$request->merge(['password' => Hash::make('123456789')]);
```
- **Emel login details** dihantar melalui `Mail::send('email.loginDetails_mail', ...)`. Template berada di:
`resources/views/email/loginDetails_mail.blade.php`
Contoh isi email yang dihantar kepada user:
```
Hi, Siti Aminah
Your Login Details :
Email : siti@email.com
Password : 123456789
```
**Nota:** `Hi, {nama}` menggunakan nama user yang didaftarkan (dari field Name). Jika admin daftarkan user bernama "Siti Aminah", email akan bermula dengan "Hi, Siti Aminah".
**Bug yang telah diperbaiki:** Sebelum ini kod dalam `UserController::store()` ada bug di mana `email` diisi dengan nama user (bukan email sebenar):
```php
// SEBELUM (bug) — email tunjuk nama user
$data = array('name'=>$user->name,'email'=>$user->name);
// SELEPAS (betul) — email tunjuk alamat email sebenar
$data = array('name'=>$user->name,'email'=>$user->email);
```
- **Setup mail** perlu betul dalam `.env`:
```env
MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=xxx@email.com
MAIL_PASSWORD=xxx
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=xxx@email.com
MAIL_FROM_NAME="${APP_NAME}"
```
Jika guna `MAIL_MAILER=log`, email tidak benar-benar dihantar — hanya disimpan dalam `storage/logs/laravel.log`.
- **Edit user** — guna `/user/edit/{id}`, borang yang sama boleh ubah nama, email dan role.
## Aliran Ringkas
```
Admin buka /user/create
↓
Isi name, email, pilih role
↓
Submit
↓
Sistem create user (password default: 123456789)
↓
Assign role + hantar email login details
↓
User login guna email + 123456789
```