Merged revisions 50180 via svnmerge from

http://svn.silverstripe.com/open/modules/sapphire/branches/2.2.2

........
  r50180 | sminnee | 2008-02-26 12:03:24 +1300 (Tue, 26 Feb 2008) | 1 line
  
  Allow use of  on controller extensions
........


git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@50863 467b73ca-7a2a-4603-9d3b-597d59a354a9
This commit is contained in:
Sam Minnee 2008-03-11 01:30:19 +00:00
parent ecec061408
commit 1dd8c7f07c
2 changed files with 14 additions and 0 deletions

View File

@ -13,6 +13,12 @@
* @subpackage core * @subpackage core
*/ */
abstract class Extension extends Object { abstract class Extension extends Object {
/**
* This is used by extensions designed to be applied to controllers.
* It works the same way as {@link Controller::$allowed_actions}.
*/
public static $allowed_actions = null;
/** /**
* The DataObject that owns this decorator. * The DataObject that owns this decorator.
* @var DataObject * @var DataObject

View File

@ -573,6 +573,14 @@ class Controller extends ViewableData {
$className = get_parent_class($className); $className = get_parent_class($className);
} }
// Add $allowed_actions from extensions
if($this->extension_instances) {
foreach($this->extension_instances as $inst) {
$accessPart = $inst->stat('allowed_actions');
if($accessPart !== null) $access = array_merge((array)$access, $accessPart);
}
}
if($access === null || (sizeof($accessParts) > 1 && $accessParts[0] === $accessParts[1])) { if($access === null || (sizeof($accessParts) > 1 && $accessParts[0] === $accessParts[1])) {
// user_error("Deprecated: please define static \$allowed_actions on your Controllers for security purposes", E_USER_NOTICE); // user_error("Deprecated: please define static \$allowed_actions on your Controllers for security purposes", E_USER_NOTICE);
return true; return true;