[TUTORIAL] Membuat CMS Company Profile dengan Panada Framework–Bag.11


Membuat ‘User Managemen’

Harus saya mulai darimana nih untuk pembahasan tentang ‘user managemen’ ini, soalnya ada banyak teknik dalam mengatur hak akses siapa saja yang boleh akses dan yang tidak boleh. Biasanya misalkan saya sebagai admin, ketika sukses ‘login’ harus masuk ke menu admin. Dan untuk operator harus masuk hanya ke menu khusus operator. Atau ada bagian kasir yang hanya boleh mengakses bagian kasir saja. Atau ada juga sesama admin walaupun sama-sama admin, admin level 3 tidak boleh mengakses menu admin level 1, walaupun mereka sama-sama admin. Bisa kita mulai?

Baiklah sebelum masuk ke pembuatan sistem dalam ‘panada framework’ kemungkinan akan di bahas di sesi selanjutnya, sebaiknya kita tahu dahulu bagaimana logikanya sistem managemen pengguna ini. Kita harus membuat juga sistem kelola para pengguna ini, harus seperti apa.

Perlu di ingat saya hanya menerangkan dari dalam kode saja, sementara untuk kelola pengguna (user) saya anggap anda suda bisa membuatnya , yaitu fitur untuk menampilkan semua user, input user baru , edit user dan hapus user. Lihat lagi pada bagian sebelumnya bagaimana membat kelola halaman maupun slides. Mari kita mulai.

Misalkan saya mempunyai tabel ‘master_user’ (agar nyambung dengan tutorial sebelumnya, saya ambil contoh pada tutorial panada bagian 5 ) dalam hal ini saya buat aturan untuk 3 level saja, yang dipakai sebagai berikut :

user managemen

Buatlah aturan untuk ke-tiga level di atas

Apa peraturannya nih? karena programernya saya sendiri, ya saya harus bisa mengatur dong hak akses seperti apa untuk para ‘username’ ini.

Dan karena saya membicarakan hak akses untuk CMS yang kita buat ini, ya contohnya kita pakai CMS ini saja. Ambil contoh pada bagian ‘boardadmin’ pada tutorial terdahulu, setelah login sukses akan masuk ke area admin dimana nun jauh di dalam sana ada beberapa fitur yang bisa di akses, seperti : tampilkan halaman, input halaman baru, edit halaman, dan hapus halaman. Tetapi agar sesuai dengan ketiga usename di atas, kita sedikit berimaginasi saja, anggap saja bukan halaman tetapi artikel , jadi : tampilkan artikel, input artikel baru, edit artikel dan hapus artikel.

Setelah menganalisa dengan cara seksama dan dalam tempo yang sesingkat-singkatnya akhirnya di putuskan lah pengaturan untuk ketiga level di atas sebagai berikut.

user managemen

Dari mana memulai dalam kode yang kita buat?

Baiklah tingkatan level sudah kita buat, peraturan untuk tiap level sudah di atur juga , sekarang saatnya masuk ke dalam sistem CMS kita, tapi ingat saya tidak akan meng-copy paste script yang lengkap, hanya pada bagian-bagian yang berhubungan dengan pembahasan ini. Jadi pahamilah dan bacalah dengan hati yang tenang dan jauh dari keramaian.

Semua berawal dari proses login/masuk.

Ya semua berawal dari proses ‘login’ , pada saat sukses memasukkan ‘username’ dan ‘password’ , di sinilah mulai di tanamkan jejak-jejak yang menandakan anda petugas level berapa? Tidak perlu anda membuat stiker atau name tag atau bahkan spanduk yang menandakan level yang anda pegang, cukup tanamkan dalam ‘session’ saja, ya ‘session’ saja …. apakah cukup? Dalam kasus ini cukup saja, kalau di bahas semua tekniknya akan panjang artikelnya.

Di bagian mana dan seperti apa? Lihat di bagian proses login, kita akan menemukan kode berikut :

user managemen

Kita hanya tambahkan satu variabel dalam array di atas, menjadi seperti ini :

user managemen

Hanya seperti itu? Ya hanya seperti itu saja, terlihat baris baru array index level. Selanjutnya kita akan membahas bagian cara pengunaannya.

Kembali ke pengaturan hak akses, fitur tampilkan dan tambah baru dapat di lihat oleh semua level (1,2,3) jadi tidak perlu lagi kita ubah di bagian tampilan link menunya (tampilkan). Fitur edit hanya bisa di lihat dan di gunakan oleh level 1 dan level 2 (1,2) saja. Sementara untuk fitur menghapus hanya terlihat dan bisa di gunakan oleh level 1 saja . Jadi yang perlu di atur hanyalah bagian edit dan delete saja.

Pada CMS yang sudah kita buat file tampilkan yang terlihat adanya icon edit dan hapus yaitu file: dashboard.php ( /views/dash/dashboard.php ), buka filenya dan lihat pada bagian di bawah ini :

user managemen

Langkah pertama kita harus ambil session yang memuat level dari pengguna, pada panada pengambilan dengan perintah seperti ini :

$ceklevel=$this->session->getValue(‘level’);

Kemudian kita tambahkan saja script berikut ini , sehingga lengkapnya seperti ini :

user managemen

Terlihat pada baris kedua, memakai tanda || yang artinya sama dengan ‘or’ = atau , jika $ceklevel==1 atau $ceklevel==2 , jalankan perintah di dalamnya.

Lihat kembali manual PHP tentang operator logika

http://www.php.net/manual/en/language.operators.logical.php

Bagaimana sudah sesuaikah? Sudah selesaikah sampai di sini? Biasannya yang pemula merasa sudah selesai sampai di sini, karena ketika login sesuai loginnya yang tampil sudah sesuai aturan yang di buatnya…. tampil dan tidak tampil aksi edit dan hapusnya sudah benar.

Pertanyaannya bagaimana kalau saya login dengan user level 3 , dan kemudiann iseng melakukan edit dengan mengetik http://localhost/panada/app/boardpages/edit/_kodena ? Ternyata bisa masuk. Untuk mengantisipasi langkah ini, kita juga harus melakukan pengecekan level pada masing-masing method, sesuai dengan aturann yang kita buat. Misalnya dalam kasus ini adalah method edit dan hapus. Buka method edit , dalam kasus di sini ada pada controller Boardpages.php , lihat bagian method edit. Lihat pada bagian yang di cetak tebal, itulah baris yang di tambahkan.

user managemen

Begitu juga pada bagian method delete, hanya saja $ceklevel-nya khusus yang level 1 saja.

if($ceklevel== 1)

Demikian tutorial multi user ini , saya tutup. Ada yang tidak/kurang jelas tanyakan saja.

Salam berbagi ilmu.

Hasan nuh BZ

Kamis, 29 Mei 2014 jam 08:17:05

 

 

 

 

 

 

 

 

Iklan

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s