1. Membuat Database Migration dengan menjalankan cmd
php artisan make:migration add_role_to_users_table --table=users
2. Buka file database/migrations/..._add_role_to_users_table.php, dan ubah
3. Jalankan cmd :
php artisan migrate
4. Secara default column role yang sudah terdaftar di database menjadi role=reader.
5. Kita akan memerlukan 3 users dengan role yang berbeda, silahkan bikin user dengan
role:
- admin
- editor
- reader
6. Selesai
Kebutuhan User Role
Setiap role dari user, memiliki kemampuan yang berbeda-beda, yaitu:
1. Admin
- Bisa read all posts
- Bisa read detail post
- Bisa create posts
- Bisa update post
- Bisa delete post
2. Editor
- Bisa read all posts (yang dibuat oleh user yang lagi login) - Bisa read detail post (yang dibuat oleh user yang lagi login)
- Bisa create posts
- Bisa update post (yang dibuat oleh user yang lagi login)
- Bisa delete post (yang dibuat oleh user yang lagi login)
3. Reader
- Bisa read all posts
- Bisa read detail post
- Bisa memberikan comment pada post tertentu
4. Selesai
3. Login dengan user yang role = ‘user’,
5. Selesai
Membuat Logika Policy Pada Read All Post
1. Buka file app/Providers/AuthServiceProvider.php, codenya seperti ini.
Lihat pada bagian line 5 - 6 dan line 34 - 43.
2. Buka file app/Http/Controllers/PostsController.php, tambahkan Gate class dan ubah
function index. Lihat line 8 dan line 19 - 37.
3. Login dengan user yang role = ‘user’,
4. Login dengan user yang role = ‘admin’ atau ‘editor’,
5. Selesai
Membuat Logika Policy Pada Update Post
1. Buka file app/Providers/AuthServiceProvider.php, codenya seperti dibawah. Lihat line
43 - 54.\\
2. Buka file app/Http/Controllers/PostsController.php, ubah function update. Lihat diline 116 -
133.
3. Login dengan user yang role = ‘user’,
4. Login dengan user yang valid authorization nya,
Tidak ada komentar:
Posting Komentar