/
home
/
desid573
/
book.familycab.com.au
/
pdd
/
lib
/
Cake
/
Controller
/
Component
/
Acl
/
/home/desid573/book.familycab.com.au/pdd/lib/Cake/Controller/Component/Acl
mkdir
upload
Name
Size
Mode
Actions
AclInterface.php
2339
0644
edit
dl
rm
DbAcl.php
5195
0644
edit
dl
rm
IniAcl.php
4740
0644
edit
dl
rm
PhpAcl.php
13781
0644
edit
dl
rm
Edit:
/home/desid573/book.familycab.com.au/pdd/lib/Cake/Controller/Component/Acl/IniAcl.php
(4740B)
<?php /** * CakePHP(tm) : Rapid Development Framework (http://cakephp.org) * Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org) * * Licensed under The MIT License * For full copyright and license information, please see the LICENSE.txt * Redistributions of files must retain the above copyright notice. * * @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org) * @link http://cakephp.org CakePHP(tm) Project * @package Cake.Controller.Component.Acl * @since CakePHP(tm) v 0.10.0.1076 * @license http://www.opensource.org/licenses/mit-license.php MIT License */ App::uses('AclInterface', 'Controller/Component/Acl'); /** * IniAcl implements an access control system using an INI file. An example * of the ini file used can be found in /config/acl.ini.php. * * @package Cake.Controller.Component.Acl */ class IniAcl extends Object implements AclInterface { /** * Array with configuration, parsed from ini file * * @var array */ public $config = null; /** * The Hash::extract() path to the user/aro identifier in the * acl.ini file. This path will be used to extract the string * representation of a user used in the ini file. * * @var string */ public $userPath = 'User.username'; /** * Initialize method * * @param Component $component The AclComponent instance. * @return void */ public function initialize(Component $component) { } /** * No op method, allow cannot be done with IniAcl * * @param string $aro ARO The requesting object identifier. * @param string $aco ACO The controlled object identifier. * @param string $action Action (defaults to *) * @return bool Success */ public function allow($aro, $aco, $action = "*") { } /** * No op method, deny cannot be done with IniAcl * * @param string $aro ARO The requesting object identifier. * @param string $aco ACO The controlled object identifier. * @param string $action Action (defaults to *) * @return bool Success */ public function deny($aro, $aco, $action = "*") { } /** * No op method, inherit cannot be done with IniAcl * * @param string $aro ARO The requesting object identifier. * @param string $aco ACO The controlled object identifier. * @param string $action Action (defaults to *) * @return bool Success */ public function inherit($aro, $aco, $action = "*") { } /** * Main ACL check function. Checks to see if the ARO (access request object) has access to the * ACO (access control object).Looks at the acl.ini.php file for permissions * (see instructions in /config/acl.ini.php). * * @param string $aro ARO * @param string $aco ACO * @param string $action Action * @return bool Success */ public function check($aro, $aco, $action = null) { if (!$this->config) { $this->config = $this->readConfigFile(APP . 'Config' . DS . 'acl.ini.php'); } $aclConfig = $this->config; if (is_array($aro)) { $aro = Hash::get($aro, $this->userPath); } if (isset($aclConfig[$aro]['deny'])) { $userDenies = $this->arrayTrim(explode(",", $aclConfig[$aro]['deny'])); if (array_search($aco, $userDenies)) { return false; } } if (isset($aclConfig[$aro]['allow'])) { $userAllows = $this->arrayTrim(explode(",", $aclConfig[$aro]['allow'])); if (array_search($aco, $userAllows)) { return true; } } if (isset($aclConfig[$aro]['groups'])) { $userGroups = $this->arrayTrim(explode(",", $aclConfig[$aro]['groups'])); foreach ($userGroups as $group) { if (array_key_exists($group, $aclConfig)) { if (isset($aclConfig[$group]['deny'])) { $groupDenies = $this->arrayTrim(explode(",", $aclConfig[$group]['deny'])); if (array_search($aco, $groupDenies)) { return false; } } if (isset($aclConfig[$group]['allow'])) { $groupAllows = $this->arrayTrim(explode(",", $aclConfig[$group]['allow'])); if (array_search($aco, $groupAllows)) { return true; } } } } } return false; } /** * Parses an INI file and returns an array that reflects the * INI file's section structure. Double-quote friendly. * * @param string $filename File * @return array INI section structure */ public function readConfigFile($filename) { App::uses('IniReader', 'Configure'); $iniFile = new IniReader(dirname($filename) . DS); return $iniFile->read(basename($filename)); } /** * Removes trailing spaces on all array elements (to prepare for searching) * * @param array $array Array to trim * @return array Trimmed array */ public function arrayTrim($array) { foreach ($array as $key => $value) { $array[$key] = trim($value); } array_unshift($array, ""); return $array; } }
Save
cmd:
run