CakePHP
  • Documentation
    • Book
    • API
    • Videos
    • Reporting Security Issues
    • Privacy Policy
    • Logos & Trademarks
  • Business Solutions
  • Swag
  • Road Trip
  • Team
  • Community
    • Community
    • Get Involved
    • Issues (GitHub)
    • Bakery
    • Featured Resources
    • Training
    • Meetups
    • My CakePHP
    • CakeFest
    • Newsletter
    • Linkedin
    • YouTube
    • Facebook
    • Twitter
    • Mastodon
    • Help & Support
    • Forum
    • Stack Overflow
    • Slack
    • Paid Support
CakePHP

C CakePHP 2.1 API

  • Overview
  • Tree
  • Deprecated
  • Version:
    • 2.1
      • 4.2
      • 4.1
      • 4.0
      • 3.9
      • 3.8
      • 3.7
      • 3.6
      • 3.5
      • 3.4
      • 3.3
      • 3.2
      • 3.1
      • 3.0
      • 2.10
      • 2.9
      • 2.8
      • 2.7
      • 2.6
      • 2.5
      • 2.4
      • 2.3
      • 2.2
      • 2.1
      • 2.0
      • 1.3
      • 1.2

Packages

  • Cake
    • Cache
      • Engine
    • Configure
    • Console
      • Command
        • Task
    • Controller
      • Component
        • Acl
        • Auth
    • Core
    • Error
    • Event
    • I18n
    • Log
      • Engine
    • Model
      • Behavior
      • Datasource
        • Database
        • Session
    • Network
      • Email
      • Http
    • Routing
      • Route
    • TestSuite
      • Coverage
      • Fixture
      • Reporter
    • Utility
    • View
      • Helper

Classes

  • AclComponent
  • AuthComponent
  • CookieComponent
  • DbAcl
  • EmailComponent
  • IniAcl
  • PaginatorComponent
  • RequestHandlerComponent
  • SecurityComponent
  • SessionComponent

Interfaces

  • AclInterface
  1: <?php
  2: /**
  3:  * CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
  4:  * Copyright 2005-2012, Cake Software Foundation, Inc. (http://cakefoundation.org)
  5:  *
  6:  * Licensed under The MIT License
  7:  * Redistributions of files must retain the above copyright notice.
  8:  *
  9:  * @copyright     Copyright 2005-2012, Cake Software Foundation, Inc. (http://cakefoundation.org)
 10:  * @link          http://cakephp.org CakePHP(tm) Project
 11:  * @package       Cake.Controller.Component
 12:  * @since         CakePHP(tm) v 0.10.0.1076
 13:  * @license       MIT License (http://www.opensource.org/licenses/mit-license.php)
 14:  */
 15: App::uses('Component', 'Controller');
 16: App::uses('AclInterface', 'Controller/Component/Acl');
 17: 
 18: /**
 19:  * Access Control List factory class.
 20:  *
 21:  * Uses a strategy pattern to allow custom ACL implementations to be used with the same component interface.
 22:  * You can define by changing `Configure::write('Acl.classname', 'DbAcl');` in your core.php. Concrete ACL
 23:  * implementations should extend `AclBase` and implement the methods it defines.
 24:  *
 25:  * @package       Cake.Controller.Component
 26:  * @link http://book.cakephp.org/2.0/en/core-libraries/components/access-control-lists.html
 27:  */
 28: class AclComponent extends Component {
 29: 
 30: /**
 31:  * Instance of an ACL class
 32:  *
 33:  * @var AclInterface
 34:  */
 35:     protected $_Instance = null;
 36: 
 37: /**
 38:  * Aro object.
 39:  *
 40:  * @var string
 41:  */
 42:     public $Aro;
 43: 
 44: /**
 45:  * Aco object
 46:  *
 47:  * @var string
 48:  */
 49:     public $Aco;
 50: 
 51: /**
 52:  * Constructor. Will return an instance of the correct ACL class as defined in `Configure::read('Acl.classname')`
 53:  *
 54:  * @param ComponentCollection $collection
 55:  * @param array $settings
 56:  * @throws CakeException when Acl.classname could not be loaded.
 57:  */
 58:     public function __construct(ComponentCollection $collection, $settings = array()) {
 59:         parent::__construct($collection, $settings);
 60:         $name = Configure::read('Acl.classname');
 61:         if (!class_exists($name)) {
 62:             list($plugin, $name) = pluginSplit($name, true);
 63:             App::uses($name . 'Component', $plugin . 'Controller/Component');
 64:             App::uses($name, 'Controller/Component/Acl');
 65:             if (class_exists($name . 'Component')) {
 66:                 $name .= 'Component';
 67:             } elseif (!class_exists($name)) {
 68:                 throw new CakeException(__d('cake_dev', 'Could not find %s.', $name));
 69:             }
 70:         }
 71:         $this->adapter($name);
 72:     }
 73: 
 74: /**
 75:  * Sets or gets the Adapter object currently in the AclComponent.
 76:  *
 77:  * `$this->Acl->adapter();` will get the current adapter class while
 78:  * `$this->Acl->adapter($obj);` will set the adapter class
 79:  *
 80:  * Will call the initialize method on the adapter if setting a new one.
 81:  *
 82:  * @param mixed $adapter Instance of AclInterface or a string name of the class to use. (optional)
 83:  * @return mixed either null, or the adapter implementation.
 84:  * @throws CakeException when the given class is not an instance of AclInterface
 85:  */
 86:     public function adapter($adapter = null) {
 87:         if ($adapter) {
 88:             if (is_string($adapter)) {
 89:                 $adapter = new $adapter();
 90:             }
 91:             if (!$adapter instanceof AclInterface) {
 92:                 throw new CakeException(__d('cake_dev', 'AclComponent adapters must implement AclInterface'));
 93:             }
 94:             $this->_Instance = $adapter;
 95:             $this->_Instance->initialize($this);
 96:             return;
 97:         }
 98:         return $this->_Instance;
 99:     }
100: 
101: /**
102:  * Pass-thru function for ACL check instance.  Check methods
103:  * are used to check whether or not an ARO can access an ACO
104:  *
105:  * @param mixed $aro ARO The requesting object identifier. See `AclNode::node()` for possible formats
106:  * @param mixed $aco ACO The controlled object identifier. See `AclNode::node()` for possible formats
107:  * @param string $action Action (defaults to *)
108:  * @return boolean Success
109:  */
110:     public function check($aro, $aco, $action = "*") {
111:         return $this->_Instance->check($aro, $aco, $action);
112:     }
113: 
114: /**
115:  * Pass-thru function for ACL allow instance. Allow methods
116:  * are used to grant an ARO access to an ACO.
117:  *
118:  * @param mixed $aro ARO The requesting object identifier. See `AclNode::node()` for possible formats
119:  * @param mixed $aco ACO The controlled object identifier. See `AclNode::node()` for possible formats
120:  * @param string $action Action (defaults to *)
121:  * @return boolean Success
122:  */
123:     public function allow($aro, $aco, $action = "*") {
124:         return $this->_Instance->allow($aro, $aco, $action);
125:     }
126: 
127: /**
128:  * Pass-thru function for ACL deny instance. Deny methods
129:  * are used to remove permission from an ARO to access an ACO.
130:  *
131:  * @param mixed $aro ARO The requesting object identifier. See `AclNode::node()` for possible formats
132:  * @param mixed $aco ACO The controlled object identifier. See `AclNode::node()` for possible formats
133:  * @param string $action Action (defaults to *)
134:  * @return boolean Success
135:  */
136:     public function deny($aro, $aco, $action = "*") {
137:         return $this->_Instance->deny($aro, $aco, $action);
138:     }
139: 
140: /**
141:  * Pass-thru function for ACL inherit instance. Inherit methods
142:  * modify the permission for an ARO to be that of its parent object.
143:  *
144:  * @param mixed $aro ARO The requesting object identifier. See `AclNode::node()` for possible formats
145:  * @param mixed $aco ACO The controlled object identifier. See `AclNode::node()` for possible formats
146:  * @param string $action Action (defaults to *)
147:  * @return boolean Success
148:  */
149:     public function inherit($aro, $aco, $action = "*") {
150:         return $this->_Instance->inherit($aro, $aco, $action);
151:     }
152: 
153: /**
154:  * Pass-thru function for ACL grant instance. An alias for AclComponent::allow()
155:  *
156:  * @param mixed $aro ARO The requesting object identifier. See `AclNode::node()` for possible formats
157:  * @param mixed $aco ACO The controlled object identifier. See `AclNode::node()` for possible formats
158:  * @param string $action Action (defaults to *)
159:  * @return boolean Success
160:  * @deprecated
161:  */
162:     public function grant($aro, $aco, $action = "*") {
163:         trigger_error(__d('cake_dev', 'AclComponent::grant() is deprecated, use allow() instead'), E_USER_WARNING);
164:         return $this->_Instance->allow($aro, $aco, $action);
165:     }
166: 
167: /**
168:  * Pass-thru function for ACL grant instance. An alias for AclComponent::deny()
169:  *
170:  * @param mixed $aro ARO The requesting object identifier. See `AclNode::node()` for possible formats
171:  * @param mixed $aco ACO The controlled object identifier. See `AclNode::node()` for possible formats
172:  * @param string $action Action (defaults to *)
173:  * @return boolean Success
174:  * @deprecated
175:  */
176:     public function revoke($aro, $aco, $action = "*") {
177:         trigger_error(__d('cake_dev', 'AclComponent::revoke() is deprecated, use deny() instead'), E_USER_WARNING);
178:         return $this->_Instance->deny($aro, $aco, $action);
179:     }
180: 
181: }
182: 
OpenHub
Rackspace
Rackspace
  • Business Solutions
  • Showcase
  • Documentation
  • Book
  • API
  • Videos
  • Reporting Security Issues
  • Privacy Policy
  • Logos & Trademarks
  • Community
  • Get Involved
  • Issues (GitHub)
  • Bakery
  • Featured Resources
  • Training
  • Meetups
  • My CakePHP
  • CakeFest
  • Newsletter
  • Linkedin
  • YouTube
  • Facebook
  • Twitter
  • Mastodon
  • Help & Support
  • Forum
  • Stack Overflow
  • Slack
  • Paid Support

Generated using CakePHP API Docs