diff --git a/framework/CHANGELOG.md b/framework/CHANGELOG.md index 9b4710405a..19fc9bcb3b 100644 --- a/framework/CHANGELOG.md +++ b/framework/CHANGELOG.md @@ -10,6 +10,7 @@ Yii Framework 2 Change Log - Enh #18236: Allow `yii\filters\RateLimiter` to accept a closure function for the `$user` property in order to assign values on runtime (nadar) - Bug #18248: Render only one stack trace on console for chained exceptions (mikehaertl) - Bug #18233: Add PHP 8 support (samdark) +- Enh #18196: `yii\rbac\DbManager::$checkAccessAssignments` is now `protected` (alex-code) - Bug #18239: Fix support of no-extension files for `FileValidator::validateExtension()` (darkdef) - Bug #18229: Add flag for recognize SyBase databases on uses pdo_dblib (darkdef) diff --git a/framework/rbac/DbManager.php b/framework/rbac/DbManager.php index b6b6f6bac8..51947bdb7b 100644 --- a/framework/rbac/DbManager.php +++ b/framework/rbac/DbManager.php @@ -100,7 +100,11 @@ class DbManager extends BaseManager * @var array auth item parent-child relationships (childName => list of parents) */ protected $parents; - + /** + * @var array user assignments (user id => Assignment[]) + * @since `protected` since 2.0.38 + */ + protected $checkAccessAssignments = []; /** * Initializes the application component. @@ -115,18 +119,16 @@ class DbManager extends BaseManager } } - private $_checkAccessAssignments = []; - /** * {@inheritdoc} */ public function checkAccess($userId, $permissionName, $params = []) { - if (isset($this->_checkAccessAssignments[(string) $userId])) { - $assignments = $this->_checkAccessAssignments[(string) $userId]; + if (isset($this->checkAccessAssignments[(string) $userId])) { + $assignments = $this->checkAccessAssignments[(string) $userId]; } else { $assignments = $this->getAssignments($userId); - $this->_checkAccessAssignments[(string) $userId] = $assignments; + $this->checkAccessAssignments[(string) $userId] = $assignments; } if ($this->hasNoAssignments($assignments)) { @@ -857,7 +859,7 @@ class DbManager extends BaseManager 'created_at' => $assignment->createdAt, ])->execute(); - unset($this->_checkAccessAssignments[(string) $userId]); + unset($this->checkAccessAssignments[(string) $userId]); return $assignment; } @@ -870,7 +872,7 @@ class DbManager extends BaseManager return false; } - unset($this->_checkAccessAssignments[(string) $userId]); + unset($this->checkAccessAssignments[(string) $userId]); return $this->db->createCommand() ->delete($this->assignmentTable, ['user_id' => (string) $userId, 'item_name' => $role->name]) ->execute() > 0; @@ -885,7 +887,7 @@ class DbManager extends BaseManager return false; } - unset($this->_checkAccessAssignments[(string) $userId]); + unset($this->checkAccessAssignments[(string) $userId]); return $this->db->createCommand() ->delete($this->assignmentTable, ['user_id' => (string) $userId]) ->execute() > 0; @@ -970,7 +972,7 @@ class DbManager extends BaseManager */ public function removeAllAssignments() { - $this->_checkAccessAssignments = []; + $this->checkAccessAssignments = []; $this->db->createCommand()->delete($this->assignmentTable)->execute(); } @@ -982,7 +984,7 @@ class DbManager extends BaseManager $this->rules = null; $this->parents = null; } - $this->_checkAccessAssignments = []; + $this->checkAccessAssignments = []; } public function loadFromCache()