Tutorial Codeigniter Part 10 – Membatasi Akses User

codeigniter-kcdev
Advertisements

Sebelumnya kita telah berhasil membuat modul login dan melakukan proses CRUD pada codeigniter. Akan tetapi pada saat kita login baik sebagai administrator maupun sebagai alumni, kita tetap bisa melihat menu users pada sidebar di sebelah kiri dan melakukan penambahan data pada tabel users. Tujuan utama kita adalah hanya administrator yang bisa melihat menu users dan menambah datanya sedangkan alumni hanya bisa menambah data events dan lowongan kerja yang akan kita buat nanti. Jadi pada tutorial ini kita akan membatasi akses user pada menu atau modul tertentu.

1. Membuat Fungsi Cek Level User Pada Core Controller

Buka file application/core/MY_Controller.php kemudian update kode di dalamnya sehingga core controller kita akan terlihat seperti di bawah.

Dari kode di atas, kita menambahkan 2 function baru yang bertugas sebagai:

  • getUserData, untuk mengambil data user yang berada di session. $this->session->userdata() adalah library codeigniter yang pada dasarnya sama dengan $_SESSION pada native php.
  • isAdmin, tugas utama fungsi ini adalah untuk memeriksa apakah user yang sedang login merupakan administrator atau bukan. Jika bukan maka redirect user ke halaman 404.

2. Mengupdate Controller Users

Pada controller users kita akan memanggil fungsi isAdmin pada bagian constructor nya. Jadi setiap kali controller users ini dipanggil, maka level user yang sedang login akan langsung diperksa.

3. Mengupdate Template Sidebar

Advertisements

Tugas terakhir kita pada tutorial ini adalah, memperbarui template sidebar kita agar menu users hanya ditampilkan jika user yang telah login adalah seorang administrator. File application/views/template/sidebar.php akan berisi kode berikut:

4. Testing

Untuk melakukan testing apakah pekerjaan kita berhasil, silahkan login menggunakan akun alumni. Setelah berhasil login maka menu users pada sidebar tidak akan muncul. Begitu juga jika kita memasukkan url http://localhost/codeigniter/users secara manual pada address bar maka akan ditampilkan halaman 404 Not Found.

File yang digunakan pada tutorial ini bisa di dapatkan di github saya. Semoga bermanfaat bagi adiks sekalian. Terima kasih.

Advertisements

Salam Codeigniter,

kaceManaf

Author: kaceManaf

Founders of kcdev.id, freelance full stack web developer and also a web-tech wanderer. Passionate about code readability and simplicity. https://www.linkedin.com/in/nafplann/

3 Replies to “Tutorial Codeigniter Part 10 – Membatasi Akses User

  1. gan mau nanya, kalau misalkan saya login sebagai admin, dan saya bisa edit dan hapus bagian lokernya, bagaimana ya, ini kan bisa edit dan hapus by username aja, sedangkan admin aja gak bisa punya akses edit dan delete kalau misal user lain (selain admin) yang create.

    1. ditambahkan saja kondisi lain bro di bagian logicnya. misalnya:
      if ($loker->username !== $this->session->userdata(‘username’) || $this->session->userdata(‘level’) === ‘administrator) show_404();

  2. Thank you for your source code min. Kalo seandainya ada 3 hak akses untuk admin-user-dan investor gimana cara nya agar si investor itu bisa lihat data2 dari si user juga? Mohon informasi nya ya min Thanks

Leave a Reply

Your email address will not be published. Required fields are marked *