1: <?php
 2: /**
 3:  * CakePHP(tm) : Rapid Development Framework (https://cakephp.org)
 4:  * Copyright (c) Cake Software Foundation, Inc. (https://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. (https://cakefoundation.org)
11:  * @link          https://cakephp.org CakePHP(tm) Project
12:  * @package       Cake.Controller.Component.Acl
13:  * @since         CakePHP(tm) v 0.10.0.1076
14:  * @license       https://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: