Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- class App_Resources
- {
- /* list of resources for Acl */
- const PUBLIC_PAGE = 'publicpages';
- const ACCOUNT_FREE = 'freeaccount';
- const ACCOUNT_PREMIUM = 'premiumaccount';
- const ADMIN_SECTION = 'adminpages';
- }
- class App_Roles
- {
- // list of roles for acl
- const GUEST = 'guest';
- const FREE = 'free';
- const PREMIUM = 'premium';
- const ADMIN = 'admin';
- }
- class App_Acl extends Zend_Acl {
- function __construct() {
- // add resources
- $this->add(new Zend_Acl_Resource(App_Resources::PUBLIC_PAGE))
- ->add(new Zend_Acl_Resource(App_Resources::ACCOUNT_FREE))
- ->add(new Zend_Acl_Resource(App_Resources::ACCOUNT_PREMIUM))
- ->add(new Zend_Acl_Resource(App_Resources::ADMIN_SECTION));
- // add roles
- $this->addRole(new Zend_Acl_Role(App_Roles::GUEST))
- ->addRole(new Zend_Acl_Role(App_Roles::FREE, App_Roles::GUEST))
- ->addRole(new Zend_Acl_Role(App_Roles::PREMIUM, App_Roles::FREE))
- ->addRole(new Zend_Acl_Role(App_Roles::ADMIN, App_Roles::PREMIUM));
- // link roles with resources
- $this->allow(App_Roles::GUEST, App_Resources::PUBLIC_PAGE)
- ->allow(App_Roles::FREE, App_Resources::ACCOUNT_FREE)
- ->allow(App_Roles::PREMIUM, App_Resources::ACCOUNT_PREMIUM)
- ->allow(App_Roles::ADMIN, App_Resources::ADMIN_SECTION);
- // premium account cannot access free account pages
- $this->deny(App_Roles::PREMIUM, App_Resources::ACCOUNT_FREE);
- // restor admin access to free account pages
- $this->allow(App_Roles::ADMIN, App_Resources::ACCOUNT_FREE);
- }
- }
- ?>
Add Comment
Please, Sign In to add comment