From ba754c6be8eb35ebedf44b69e4c192670bfda72e Mon Sep 17 00:00:00 2001 From: Dave Mc Nicoll Date: Sun, 2 Jun 2024 23:02:56 +0000 Subject: [PATCH] - Removed NULL and added a new Enum instead --- src/Taxus.php | 6 +++++- src/TaxusGrantEnum.php | 12 ++++++++++++ src/UserEntityTrait.php | 4 +++- 3 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 src/TaxusGrantEnum.php diff --git a/src/Taxus.php b/src/Taxus.php index 4c43f77..36d4a6c 100644 --- a/src/Taxus.php +++ b/src/Taxus.php @@ -49,8 +49,12 @@ class Taxus * @param ...$arguments * @return bool|null Return TRUE if granted, FALSE if not and NULL if this call should be skipped */ - public function granted($name, ...$arguments) : null|bool + public function granted(\BackedEnum|string|null $name, ...$arguments) : bool|TaxusGrantEnum { + if ($name === null) { + return true; + } + $name = $name instanceof \BackedEnum ? $name->value : $name; if ( ! isset($this->list[$name]) ) { diff --git a/src/TaxusGrantEnum.php b/src/TaxusGrantEnum.php new file mode 100644 index 0000000..a774bad --- /dev/null +++ b/src/TaxusGrantEnum.php @@ -0,0 +1,12 @@ +taxus->granted($privilegeName, ...$arguments); + $grant = $this->taxus->granted($privilegeName, ...$arguments); + + return is_bool($grant) ? $grant : $grant === TaxusGrantEnum::Authorized; } public function cannot(string $privilegeName, ...$arguments) : bool