• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/access/model/usermodel.php
  • Класс: BitrixTasksAccessModelUserModel
  • Вызов: UserModel::getPermissions
private function getPermissions(): array
{
	if (!$this->permissions)
	{
		$this->permissions = [];
		$roles = $this->getRoles();

		if (empty($roles))
		{
			return $this->permissions;
		}

		$res = TasksPermissionTable::query()
			->addSelect("PERMISSION_ID")
			->addSelect("VALUE")
			->whereIn("ROLE_ID", $roles)
			->exec()
			->fetchAll();

		foreach ($res as $row)
		{
			$permissionId = $row["PERMISSION_ID"];
			$value = (int) $row["VALUE"];
			if (!array_key_exists($permissionId, $this->permissions))
			{
				$this->permissions[$permissionId] = 0;
			}
			if ($value > $this->permissions[$permissionId])
			{
				$this->permissions[$permissionId] = $value;
			}
		}
	}
	return $this->permissions;
}