/** * <p>Изменяет право на операцию, если таковое есть. Иначе добавляет новую запись.</p> * * * @param int $userID Код пользователя. </h * * @param string $feature Название функционала. </ht * * @param string $perm Право.</b * * @return int <p>Код записи при успешном сохранении и false - в случае ошибки.</p> * <br><br> * * @static * @link http://dev.1c-bitrix.ru/api_help/socialnetwork/classes/csocnetuserperms/setperm.php * @author Bitrix */ public 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 (StrLen($errorMessage) <= 0) { $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; }