• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/userfield/access/model/usermodel.php
  • Класс: BitrixMainUserFieldAccessModelUserModel
  • Вызов: UserModel::getPermissions
private function getPermissions(int $userFieldId = 0): array
{
	if (!$this->permissions || !array_key_exists($userFieldId, $this->permissions))
	{
		$this->permissions[$userFieldId] = [];

		$res = UserFieldPermissionTable::query()
			->addSelect("PERMISSION_ID")
			->addSelect("USER_FIELD_ID")
			->addSelect("VALUE")
			->where("USER_FIELD_ID", $userFieldId)
			->where("ROLE_ID", $this->userId)
			->exec()
			->fetchAll();

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