yii\rbac\DbManager::getInheritedPermissionsByUser PHP Метод

getInheritedPermissionsByUser() защищенный Метод

Returns all permissions that the user inherits from the roles assigned to him.
С версии: 2.0.7
protected getInheritedPermissionsByUser ( string | integer $userId ) : Permission[]
$userId string | integer the user ID (see [[\yii\web\User::id]])
Результат Permission[] all inherited permissions that the user has. The array is indexed by the permission names.
    protected function getInheritedPermissionsByUser($userId)
    {
        $query = (new Query())->select('item_name')->from($this->assignmentTable)->where(['user_id' => (string) $userId]);
        $childrenList = $this->getChildrenList();
        $result = [];
        foreach ($query->column($this->db) as $roleName) {
            $this->getChildrenRecursive($roleName, $childrenList, $result);
        }
        if (empty($result)) {
            return [];
        }
        $query = (new Query())->from($this->itemTable)->where(['type' => Item::TYPE_PERMISSION, 'name' => array_keys($result)]);
        $permissions = [];
        foreach ($query->all($this->db) as $row) {
            $permissions[$row['name']] = $this->populateItem($row);
        }
        return $permissions;
    }