Sun Aug 6 01:01:17 PHT 2006 Nimrod A. Abing * Resolve conflicts introduced by CakePHP-v-1.1.6.3346. diff -rN -u old-cake/cake/libs/controller/controller.php new-cake/cake/libs/controller/controller.php --- old-cake/cake/libs/controller/controller.php 2006-08-06 01:04:14.000000000 +0800 +++ new-cake/cake/libs/controller/controller.php 2006-08-06 01:04:14.000000000 +0800 @@ -249,6 +249,11 @@ } } parent::__construct(); + if (!empty($this->hiddenMethods)) { + $this->hiddenMethods = array_unique(array_merge($this->hiddenMethods, get_class_methods('Controller'))); + } else { + $this->hiddenMethods = get_class_methods('Controller'); + } } function _initComponents(){ @@ -256,10 +261,32 @@ $component = new Component(); $component->init($this); } + } +/** + * Hide method names from dispatcher, preventing them from being accessed using + * a URL. + * + * @param array $names Method names to hide from dispatcher. If omitted, *all* + * class methods will be hidden. + */ + function hideMethods($names = null) { + if (null === $names) { + $this->hiddenMethods = get_class_methods(get_class($this)); + } if (!empty($this->hiddenMethods)) { - $this->hiddenMethods = array_unique(array_merge($this->hiddenMethods, get_class_methods('Controller'))); + $this->hiddenMethods = array_unique(array_merge($this->hiddenMethods, $names)); } else { - $this->hiddenMethods = get_class_methods('Controller'); + $this->hiddenMethods = $names; + } + } +/** + * Exposes methods in the array $names. + * + * @param unknown_type $names Array of method names to expose. + */ + function exposeMethods($names) { + if (!empty($this->hiddenMethods)) { + $this->hiddenMethods = array_diff($this->hiddenMethods, $names); } } /**