1: <?php
2: /**
3: * CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
4: * Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
5: *
6: * Licensed under The MIT License
7: * For full copyright and license information, please see the LICENSE.txt
8: * Redistributions of files must retain the above copyright notice.
9: *
10: * @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
11: * @link http://cakephp.org CakePHP(tm) Project
12: * @package Cake.Controller.Component.Acl
13: * @since CakePHP(tm) v 0.10.0.1076
14: * @license http://www.opensource.org/licenses/mit-license.php MIT License
15: */
16:
17: /**
18: * Access Control List interface.
19: * Implementing classes are used by AclComponent to perform ACL checks in Cake.
20: *
21: * @package Cake.Controller.Component.Acl
22: */
23: interface AclInterface {
24:
25: /**
26: * Empty method to be overridden in subclasses
27: *
28: * @param string $aro ARO The requesting object identifier.
29: * @param string $aco ACO The controlled object identifier.
30: * @param string $action Action (defaults to *)
31: * @return bool Success
32: */
33: public function check($aro, $aco, $action = "*");
34:
35: /**
36: * Allow methods are used to grant an ARO access to an ACO.
37: *
38: * @param string $aro ARO The requesting object identifier.
39: * @param string $aco ACO The controlled object identifier.
40: * @param string $action Action (defaults to *)
41: * @return bool Success
42: */
43: public function allow($aro, $aco, $action = "*");
44:
45: /**
46: * Deny methods are used to remove permission from an ARO to access an ACO.
47: *
48: * @param string $aro ARO The requesting object identifier.
49: * @param string $aco ACO The controlled object identifier.
50: * @param string $action Action (defaults to *)
51: * @return bool Success
52: */
53: public function deny($aro, $aco, $action = "*");
54:
55: /**
56: * Inherit methods modify the permission for an ARO to be that of its parent object.
57: *
58: * @param string $aro ARO The requesting object identifier.
59: * @param string $aco ACO The controlled object identifier.
60: * @param string $action Action (defaults to *)
61: * @return bool Success
62: */
63: public function inherit($aro, $aco, $action = "*");
64:
65: /**
66: * Initialization method for the Acl implementation
67: *
68: * @param Component $component The AclComponent instance.
69: * @return void
70: */
71: public function initialize(Component $component);
72:
73: }
74: