action(); * * @var string */ public $actionPath = null; /** * Constructor * * @param Controller $controller The controller for this request. * @param string $settings An array of settings. This class does not use any settings. */ public function __construct(Controller $controller, $settings = array()) { $this->controller($controller); } /** * Checks user authorization. * * @param array $user Active user data * @param CakeRequest $request * @return boolean */ abstract public function authorize($user, CakeRequest $request); /** * Accessor to the controller object. * * @param mixed $controller null to get, a controller to set. * @return mixed. */ public function controller($controller = null) { if ($controller) { if (!$controller instanceof Controller) { throw new CakeException(__('$controller needs to be an instance of Controller')); } $this->_controller = $controller; return true; } return $this->_controller; } /** * Get the action path for a given request. Primarily used by authorize objects * that need to get information about the plugin, controller, and action being invoked. * * @param CakeRequest $request The request a path is needed for. * @return string the action path for the given request. */ public function action($request, $path = '/:plugin/:controller/:action') { $plugin = empty($request['plugin']) ? null : Inflector::camelize($request['plugin']) . '/'; return str_replace( array(':controller', ':action', ':plugin/'), array(Inflector::camelize($request['controller']), $request['action'], $plugin), $this->actionPath . $path ); } }