Archived
1
0
Fork 0
This repository has been archived on 2026-05-10. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
fiktivkod/application/Acl.php
2010-10-03 01:36:38 +02:00

70 lines
No EOL
1.5 KiB
PHP

<?php
class Acl extends Zend_Acl
{
public function __construct()
{
// Add roles
$this->loadRoles();
// Add resources
$this->loadResources();
// Set accessrights
$this->loadAccess();
}
protected function loadRoles()
{
$this->addRole(new Zend_Acl_Role('visitor'));
$this->addRole(new Zend_Acl_Role('member'), 'visitor');
$this->addRole(new Zend_Acl_Role('team'), 'member');
}
protected function loadResources()
{
$this->add(new Zend_Acl_Resource('blog'));
$this->add(new Zend_Acl_Resource('profile'));
$this->add(new Zend_Acl_Resource('admin'));
}
protected function loadAccess()
{
// Set default rules
$this->_setDefaultAccess();
// Blog
$this->allow('member', 'blog', 'comment');
// Profile
$this->deny('visitor','profile','read');
// Admin
$this->allow('team', 'admin', array('read', 'write', 'delete'));
}
protected function _setDefaultAccess()
{
$defaults = array(
'visitor' => array('read'),
'member' => array('read'),
'team' => array('read','write', 'delete')
);
foreach ($defaults as $role => $privileges) {
foreach ($this->getResources() as $resource) {
$this->allow($role,$resource,$privileges);
}
}
}
}