Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/security/Security.php b/security/Security.php
- index ec99a6c..205b9a0 100644
- --- a/security/Security.php
- +++ b/security/Security.php
- @@ -158,6 +158,8 @@ class Security extends Controller {
- * to log in.
- */
- static function permissionFailure($controller = null, $messageSet = null) {
- + self::set_ignore_disallowed_actions(true);
- +
- if(!$controller) $controller = Controller::curr();
- if(Director::is_ajax()) {
- @@ -864,4 +866,18 @@ class Security extends Controller {
- return self::$default_login_dest;
- }
- + protected static $ignore_disallowed_actions = false;
- +
- + /**
- + * Set to true to ignore access to disallowed actions, rather than returning permission failure
- + * Note that this is just a flag that other code needs to check with Security::ignore_disallowed_actions()
- + * @param $flag True or false
- + */
- + public static function set_ignore_disallowed_actions($flag) {
- + self::$ignore_disallowed_actions = $flag;
- + }
- + public static function ignore_disallowed_actions() {
- + return self::$ignore_disallowed_actions;
- + }
- +
- }
- diff --git a/view/SSViewer.php b/view/SSViewer.php
- index 23b1f4e..70215db 100644
- --- a/view/SSViewer.php
- +++ b/view/SSViewer.php
- @@ -612,7 +612,9 @@ class SSViewer {
- if(Director::isDev() || Director::is_cli() || Permission::check('ADMIN')) {
- self::flush_template_cache();
- } else {
- - return Security::permissionFailure(null, 'Please log in as an administrator to flush the template cache.');
- + if(!Security::ignore_disallowed_actions()) {
- + return Security::permissionFailure(null, 'Please log in as an administrator to flush the template cache.');
- + }
- }
- }
Add Comment
Please, Sign In to add comment