Membatasi Penyajian Data di Tabel dengan Mendeteksi Permission User

druid's picture

Dalam modul Demo Sistem Informasi Advanced, kita bisa bebas menyajikan sesuatu berdasarkan permission user aktif (yang sedang login). Ternyata caranya sangat mudah sekali, yaitu cukup menggunakan fungsi user_access(). Fungsi juga sudah sering kita gunakan di dispatcher, dan bisa kita manfaatkan untuk keperluan apapun, contoh:

  • Tombol aksi delete hanya tampil jika user memiliki permission "admin".
  • User dengan permission "admin" dapat melihat semua data.

Catatan: Seluruh contoh kode di tutorial ini diambil dari source code Demo Sistem Informasi Advanced.

Sekadar menyegarkan, seluruh permission yang ada dalam suatu module ada di fungsi dengan akhiran _perm(). Jangan lupa untuk mengeset permission tiap role di menu "Access Control" di halaman Admin. Contoh dalam modul ini:

function dqs_demo2_perm() {
return array('dqs_demo2 user', 'dqs_demo2 admin');
}

Cara membuat pembatasan penyajian data adalah menggunakan fungsi user_access() untuk membedakan SQL. Contoh: seorang admin dapat melihat semua data, jika tidak maka dibatasi hanya data yang dibuat oleh user tersebut. Perhatikan bahwa di tabel dqs_demo2 terdapat field created_uid yang berisi uid user yang membuat data. Field ini diisi pada fungsi dqs_demo2_form_submit().

Contoh kode untuk menggunakan user_access():

// admin bisa melihat semua data
if (user_access('dqs_demo2 admin')) {
// SQL code for admin here...
} else {
// SQL code for non-admin here...
}

Belum terlalu rumit ya, selamat mengembangkan sistem informasi dengan fitur hak akses user yang keren Smiling



Tutorial Module Drupal 6

Memenuhi harapan dari member, sekarang seluruh tutorial DQS sudah kompatibel dengan Drupal 6. Klik disini untuk detailnya.

Promo Hosting Ekstra!

Reseller Hosting Indonesia sedang ada promo Ekstra Disk Space (tambahan 1GB-3GB) dan Ekstra Sewa Hosting (tambahan 1-3 bulan sewa gratis). Jangan lewatkan kesempatan ini, diskon 20% bagi member DQS juga tetap berlaku.

Rekan yang berminat gunakan form Kontak Kami, pilih kategori Hosting.

Live Buddies

There are currently 0 users and 2 guests online.

DQS Members

  • Registered Users: 313

Partners

GrowUrl.com - growing your website