From 7cb13457f273423fd2db5102a6eafeca46600f25 Mon Sep 17 00:00:00 2001 From: Kartik Visweswaran Date: Fri, 13 Oct 2017 23:30:03 +0530 Subject: [PATCH 1/3] Update AccessRuleFilter to evaluate roleParams The `roleParams` was not being evaluated earlier and has been included. --- src/User/Filter/AccessRuleFilter.php | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/User/Filter/AccessRuleFilter.php b/src/User/Filter/AccessRuleFilter.php index 72ee1cb..9d11310 100644 --- a/src/User/Filter/AccessRuleFilter.php +++ b/src/User/Filter/AccessRuleFilter.php @@ -41,8 +41,13 @@ class AccessRuleFilter extends AccessRule if (!$user->getIsGuest() && $identity->getIsAdmin()) { return true; } - } elseif ($user->can($role)) { - return true; + } else { + if (!isset($roleParams)) { + $roleParams = $this->roleParams instanceof Closure ? call_user_func($this->roleParams, $this) : $this->roleParams; + } + if ($user->can($role, $roleParams)) { + return true; + } } } From 9cd494ccc47a491b364040d6a37037dc2fa52486 Mon Sep 17 00:00:00 2001 From: Kartik Visweswaran Date: Fri, 13 Oct 2017 23:33:10 +0530 Subject: [PATCH 2/3] Add Closure namespace --- src/User/Filter/AccessRuleFilter.php | 1 + 1 file changed, 1 insertion(+) diff --git a/src/User/Filter/AccessRuleFilter.php b/src/User/Filter/AccessRuleFilter.php index 9d11310..e0e2402 100644 --- a/src/User/Filter/AccessRuleFilter.php +++ b/src/User/Filter/AccessRuleFilter.php @@ -11,6 +11,7 @@ namespace Da\User\Filter; +use Closure; use Da\User\Model\User; use yii\filters\AccessRule; From 839e40e50008621435bbacc3251af7cf238465f7 Mon Sep 17 00:00:00 2001 From: Kartik Visweswaran Date: Sun, 15 Oct 2017 14:34:32 +0530 Subject: [PATCH 3/3] Update CHANGELOG fixes #81 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ec7d996..2a62be1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ # CHANGELOG ## 1.0.14 - Work in progress +- Enh #81: Update `AccessRuleFilter` to evaluate `roleParams` (kartik-v) - Enh #56: Added two factor authentication (tonydspaniard) - Fix #63: Fix selectize version (tonydspaniard) - Enh #65: Updated Romanian translation (mrbig00)