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;
}