Your IP : 216.73.216.79


Current Path : /var/www/html/mysis/doc/
Upload File :
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
```