mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 12:05:37 +00:00
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:
parent
5fd878e19f
commit
d59b8154be
@ -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
|
||||
|
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user