• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/classes/general/user_perms.php
  • Класс: CAllSocNetUserPerms
  • Вызов: CAllSocNetUserPerms::SetPerm
static function SetPerm($userID, $feature, $perm)
{
	$userID = intval($userID);
	$feature = Trim($feature);
	$perm = Trim($perm);

	$dbResult = CSocNetUserPerms::GetList(
		array(),
		array(
			"USER_ID" => $userID,
			"OPERATION_ID" => $feature,
		),
		false,
		false,
		array("ID")
	);

	if ($arResult = $dbResult->Fetch())
		$r = CSocNetUserPerms::Update($arResult["ID"], array("RELATION_TYPE" => $perm));
	else
		$r = CSocNetUserPerms::Add(array("USER_ID" => $userID, "OPERATION_ID" => $feature, "RELATION_TYPE" => $perm));

	if (!$r)
	{
		$errorMessage = "";
		if ($e = $GLOBALS["APPLICATION"]->GetException())
			$errorMessage = $e->GetString();
		if ($errorMessage == '')
			$errorMessage = GetMessage("SONET_GF_ERROR_SET").".";

		$GLOBALS["APPLICATION"]->ThrowException($errorMessage, "ERROR_SET_RECORD");
		return false;
	}
	elseif ($feature == "viewprofile")
		unset($GLOBALS["SONET_USER_PERMS_".$userID]);

	return $r;
}