From 4c5c26033a5f0902dcac507dd94ae32b895bcff8 Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Wed, 24 Apr 2019 17:14:44 +0300 Subject: [PATCH] Added support for configurable actions in Flex --- .../src/Grav/Framework/Flex/Traits/FlexAuthorizeTrait.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/system/src/Grav/Framework/Flex/Traits/FlexAuthorizeTrait.php b/system/src/Grav/Framework/Flex/Traits/FlexAuthorizeTrait.php index 66a467d2c..0029d9fe0 100644 --- a/system/src/Grav/Framework/Flex/Traits/FlexAuthorizeTrait.php +++ b/system/src/Grav/Framework/Flex/Traits/FlexAuthorizeTrait.php @@ -13,6 +13,7 @@ namespace Grav\Framework\Flex\Traits; use Grav\Common\Grav; use Grav\Common\User\Interfaces\UserInterface; +use Grav\Framework\Flex\FlexDirectory; use Grav\Framework\Flex\Interfaces\FlexObjectInterface; /** @@ -44,7 +45,11 @@ trait FlexAuthorizeTrait $action = $this->exists() ? 'update' : 'create'; } - return $user->authorize(sprintf($this->_authorize, $scope, $action)); + $directory = $this instanceof FlexDirectory ? $this : $this->getFlexDirectory(); + $config = $directory->getConfig(); + $allowed = $config->get("{$scope}.actions.{$action}") ?? $config->get("actions.{$action}") ?? true; + + return $allowed && $user->authorize(sprintf($this->_authorize, $scope, $action)); } protected function setAuthorizeRule(string $authorize) : void