2025-04-10 23:19:13 +08:00

53 lines
1.4 KiB
PHP
Executable File

<?php
namespace mdm\admin\components;
/**
* DbManager represents an authorization manager that stores authorization information in database.
*
* The database connection is specified by [[$db]]. The database schema could be initialized by applying migration:
*
* ```
* yii migrate --migrationPath=@yii/rbac/migrations/
* ```
*
* If you don't want to use migration and need SQL instead, files for all databases are in migrations directory.
*
* You may change the names of the three tables used to store the authorization data by setting [[\yii\rbac\DbManager::$itemTable]],
* [[\yii\rbac\DbManager::$itemChildTable]] and [[\yii\rbac\DbManager::$assignmentTable]].
*
* @author Misbahul D Munir <misbahuldmunir@gmail.com>
* @since 1.0
*/
class DbManager extends \yii\rbac\DbManager
{
/**
* Memory cache of assignments
* @var array
*/
private $_assignments = [];
private $_childrenList;
/**
* @inheritdoc
*/
public function getAssignments($userId)
{
if (!isset($this->_assignments[$userId])) {
$this->_assignments[$userId] = parent::getAssignments($userId);
}
return $this->_assignments[$userId];
}
/**
* @inheritdoc
*/
protected function getChildrenList()
{
if ($this->_childrenList === null) {
$this->_childrenList = parent::getChildrenList();
}
return $this->_childrenList;
}
}