1: <?php
2: /**
3: * Magento
4: *
5: * NOTICE OF LICENSE
6: *
7: * This source file is subject to the Open Software License (OSL 3.0)
8: * that is bundled with this package in the file LICENSE.txt.
9: * It is also available through the world-wide-web at this URL:
10: * http://opensource.org/licenses/osl-3.0.php
11: * If you did not receive a copy of the license and are unable to
12: * obtain it through the world-wide-web, please send an email
13: * to license@magentocommerce.com so we can send you a copy immediately.
14: *
15: * DISCLAIMER
16: *
17: * Do not edit or add to this file if you wish to upgrade Magento to newer
18: * versions in the future. If you wish to customize Magento for your
19: * needs please refer to http://www.magentocommerce.com for more information.
20: *
21: * @category Mage
22: * @package Mage_Api
23: * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24: * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25: */
26:
27:
28: /**
29: * Acl model
30: *
31: * @category Mage
32: * @package Mage_Api
33: * @author Magento Core Team <core@magentocommerce.com>
34: */
35: class Mage_Api_Model_Acl extends Zend_Acl
36: {
37: /**
38: * All the group roles are prepended by G
39: *
40: */
41: const ROLE_TYPE_GROUP = 'G';
42:
43: /**
44: * All the user roles are prepended by U
45: *
46: */
47: const ROLE_TYPE_USER = 'U';
48:
49: /**
50: * User types for store access
51: * G - Guest customer (anonymous)
52: * C - Authenticated customer
53: * A - Authenticated admin user
54: *
55: */
56: const USER_TYPE_GUEST = 'G';
57: const USER_TYPE_CUSTOMER = 'C';
58: const USER_TYPE_ADMIN = 'A';
59:
60: /**
61: * Permission level to deny access
62: *
63: */
64: const RULE_PERM_DENY = 0;
65:
66: /**
67: * Permission level to inheric access from parent role
68: *
69: */
70: const RULE_PERM_INHERIT = 1;
71:
72: /**
73: * Permission level to allow access
74: *
75: */
76: const RULE_PERM_ALLOW = 2;
77:
78: /**
79: * Get role registry object or create one
80: *
81: * @return Mage_Api_Model_Acl_Role_Registry
82: */
83: protected function _getRoleRegistry()
84: {
85: if (null === $this->_roleRegistry) {
86: $this->_roleRegistry = Mage::getModel('api/acl_role_registry');
87: }
88: return $this->_roleRegistry;
89: }
90:
91: /**
92: * Add parent to role object
93: *
94: * @param Zend_Acl_Role $role
95: * @param Zend_Acl_Role $parent
96: * @return Mage_Api_Model_Acl
97: */
98: public function addRoleParent($role, $parent)
99: {
100: $this->_getRoleRegistry()->addParent($role, $parent);
101: return $this;
102: }
103: }
104: