Allow use of on controller extensions

git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/branches/2.2.2@50173 467b73ca-7a2a-4603-9d3b-597d59a354a9
This commit is contained in:
Sam Minnee 2008-02-25 23:03:24 +00:00
parent 5fd878e19f
commit d59b8154be
2 changed files with 14 additions and 0 deletions

View File

@ -13,6 +13,12 @@
* @subpackage core
*/
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.
* @var DataObject

View File

@ -547,6 +547,14 @@ class Controller extends ViewableData {
$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 || $accessParts[0] === $accessParts[1]) {
// user_error("Deprecated: please define static \$allowed_actions on your Controllers for security purposes", E_USER_NOTICE);
return true;