Exemple #1
0
 /**
  * <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;
 }