mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 14:05:37 +02:00
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:
parent
ecec061408
commit
1dd8c7f07c
@ -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
|
||||
|
@ -573,6 +573,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 || (sizeof($accessParts) > 1 && $accessParts[0] === $accessParts[1])) {
|
||||
// user_error("Deprecated: please define static \$allowed_actions on your Controllers for security purposes", E_USER_NOTICE);
|
||||
return true;
|
||||
|
Loading…
Reference in New Issue
Block a user