Posts Tagged ‘zend’

Tomato CMS

Tomato CMS is a framework based on Zend Framework. The content management and layout are interesting enough, especially for programmer that confusing about template design. Here you can use the default template but you can move the widget / block as you like. The layout is flexible enough, because the CMS use a widget concept. You can drag and drop widget in place you like and the web area divided into 12 grid / coulumn. If you want to know the detail about Tomato CMS, you can find in http://www.tomatocms.com/

Zend_Acl Part II

Membuat ACL
ACL dapat mewakili benda fisik atau object virtual yang diinginkan. Untuk membuat object ACL baru harus diinstansiasi ACL tanpa parameter.

$acl = new Zend_Acl();

Mendaftarkan Role
Aplikasi akan selalu memerlukan hirarki hak akses terhadap penggunanya. Mungkin akan ada kelompok “guest” yang mempunyai hak akses yang terbatas sekedar untuk demonstrasi.Kelompok “staff” sebagai kelompok mayoritas pengguna aplikasi sebagai operator aplikasi, “editor” yang bertanggungjawab dalam proses penerbitan, mengulas, dan mengarsipkan content, dan terakhir seorang “administrator” yang tugasnya mencakup tugas kelompok-kelompok lain serta pemeliharaan informasi, pengaturan user, data konfigurasi, back-up dan export.
Setting hak akses dapat direpresentasikan dalam registry role,memungkinkan setiap grup untuk mewarisi priviledge dari grup parentnya, serta memberikan hak istimewa yang berbeda untuk grup yg unique.Hak akses dapat dinyatakan sebagai berikut :

Nama Hak Akses Unik Mewarisi Hak Akses Dari
Guest View N/A
Staff Edit, Simpan, Update Guest
Editor Publish, Archieve, Delete Staff
Administrator Mendapat Semua Hak Akses N/A

Untuk contoh ini. Zend_Acl_Role digunakan, tetapi setiap object yang menggunakan Zend_Acl_Role_Interface dapat diterima. Grup-grup ini dapat ditambahkan ke registry sebagai berikut :

  $acl = new Zend_Acl(); 
 
 // Add groups to the Role registry using Zend_Acl_Role
 // Guest does not inherit access controls
 $roleGuest = new Zend_Acl_Role('guest');
 $acl->addRole($roleGuest); 
 
 // Staff inherits from guest
 $acl->addRole(new Zend_Acl_Role('staff'), $roleGuest); 
 
 /*
 Alternatively, the above could be written:
 $acl->addRole(new Zend_Acl_Role('staff'), 'guest');
 */ 
 
 // Editor inherits from staff
 $acl->addRole(new Zend_Acl_Role('editor'), 'staff'); 
 
 // Administrator does not inherit access controls
 $acl->addRole(new Zend_Acl_Role('administrator'));

Mendefinisikan Hak Akses
Cara untuk mendefinisikan hak akses bisa dengan cara berikut :

$acl = new Zend_Acl(); 
 
 $roleGuest = new Zend_Acl_Role('guest');
 $acl->addRole($roleGuest);
 $acl->addRole(new Zend_Acl_Role('staff'), $roleGuest);
 $acl->addRole(new Zend_Acl_Role('editor'), 'staff');
 $acl->addRole(new Zend_Acl_Role('administrator')); 
 
 // Guest may only view content
 $acl->allow($roleGuest, null, 'view'); 
 
 /*
 Alternatively, the above could be written:
 $acl->allow('guest', null, 'view');
 //*/ 
 
 // Staff inherits view privilege from guest, but also needs additional
 // privileges
 $acl->allow('staff', null, array('edit', 'submit', 'revise')); 
 
 // Editor inherits view, edit, submit, and revise privileges from
 // staff, but also needs additional privileges
 $acl->allow('editor', null, array('publish', 'archive', 'delete')); 
 
 // Administrator inherits nothing, but is allowed all privileges
 $acl->allow('administrator');

Nilai NULL sebelum allow() adalah parameter yang digunakan untuk menunjukkan bahwa aturan memungkinkan untuk semua sumber daya.

Meng-Query-kan ACL
Untuk mengetahui bahwa user mempunyai hak akses atau tidak, cukup sederhana dengan menggunakan metode isAllowed()

echo $acl->isAllowed('guest', null, 'view') ?
     "allowed" : "denied";
 // allowed 
 
 echo $acl->isAllowed('staff', null, 'publish') ?
     "allowed" : "denied";
 // denied 
 
 echo $acl->isAllowed('staff', null, 'revise') ?
     "allowed" : "denied";
 // allowed 
 
 echo $acl->isAllowed('editor', null, 'view') ?
     "allowed" : "denied";
 // allowed because of inheritance from guest 
 
 echo $acl->isAllowed('editor', null, 'update') ?
     "allowed" : "denied";
 // denied because no allow rule for 'update' 
 
 echo $acl->isAllowed('administrator', null, 'view') ?
     "allowed" : "denied";
 // allowed because administrator is allowed all privileges 
 
 echo $acl->isAllowed('administrator') ?
     "allowed" : "denied";
 // allowed because administrator is allowed all privileges 
 
 echo $acl->isAllowed('administrator', null, 'update') ?
     "allowed" : "denied";
 // allowed because administrator is allowed all privileges

source : http://framework.zend.com/manual/en/zend.acl.html#zend.acl.introduction.creating

Get Adobe Flash playerPlugin by wpburn.com wordpress themes