} if ($arResult["bGetComments"] && intval($arParams["CREATED_BY_ID"]) > 0) { if ($arCommentTmp["EVENT"]["USER_ID"] == $arParams["CREATED_BY_ID"]) { $arCommentsFullListCut[] = $arCommentTmp; } } else { $event_date_log_ts = isset($arCommentTmp["EVENT"]["LOG_DATE_TS"]) ? $arCommentTmp["EVENT"]["LOG_DATE_TS"] : MakeTimeStamp($arCommentTmp["EVENT"]["LOG_DATE"]) - intval($arResult["TZ_OFFSET"]); if ($arParams["COMMENT_ID"] <= 0 && $key >= $arParams["COMMENTS_IN_EVENT"] && (intval($arResult["LAST_LOG_TS"]) <= 0 || $event_date_log_ts <= $arResult["LAST_LOG_TS"])) { // } else { $arCommentsFullListCut[] = $arCommentTmp; } } $arCommentID[] = $arCommentTmp["EVENT"]["RATING_ENTITY_ID"]; } $arCommentRights = CSocNetLogComponent::getCommentRights(array("EVENT_ID" => $arEvent["EVENT"]["EVENT_ID"], "SOURCE_ID" => $arEvent["EVENT"]["SOURCE_ID"])); $arResult["COMMENT_RIGHTS_EDIT"] = $arCommentRights["COMMENT_RIGHTS_EDIT"]; $arResult["COMMENT_RIGHTS_DELETE"] = $arCommentRights["COMMENT_RIGHTS_DELETE"]; $arEvent["COMMENTS"] = array_reverse($arCommentsFullListCut); $arResult["RATING_COMMENTS"] = array(); if (!empty($arCommentID) && $arParams["SHOW_RATING"] == "Y" && strlen($rating_entity_type) > 0) { $arResult["RATING_COMMENTS"] = CRatings::GetRatingVoteResult($rating_entity_type, $arCommentID); } } } else { return; } $arResult["Event"] = $arEvent; $arResult["WORKGROUPS_PAGE"] = COption::GetOptionString("socialnetwork", "workgroups_page", "/workgroups/", SITE_ID); $arResult["GET_COMMENTS"] = $bGetComments ? "Y" : "N"; $this->IncludeComponentTemplate();
public static function canUserChangeComment($arParams) { $res = false; if (!is_array($arParams)) { $arParams = array(); } if (empty($arParams["LOG_EVENT_ID"])) { return $res; } if (!isset($arParams["USER_ID"]) || intval($arParams["USER_ID"]) <= 0) { $arParams["USER_ID"] = $GLOBALS["USER"]->GetId(); } if (!isset($arParams["ACTION"])) { $arParams["ACTION"] = "edit"; } $arParams["ACTION"] = ToUpper($arParams["ACTION"]); $rights = CSocNetLogComponent::getCommentRights(array("EVENT_ID" => $arParams["LOG_EVENT_ID"], "SOURCE_ID" => isset($arParams["LOG_SOURCE_ID"]) ? intval($arParams["LOG_SOURCE_ID"]) : false, "CHECK_ADMIN_SESSION" => isset($arParams["CHECK_ADMIN_SESSION"]) && $arParams["CHECK_ADMIN_SESSION"] == "N" ? "N" : "Y")); $key = $arParams["ACTION"] == "EDIT" ? "COMMENT_RIGHTS_EDIT" : "COMMENT_RIGHTS_DELETE"; if ($rights[$key] == "OWNLAST" && !empty($arParams["LOG_ID"]) && intval($arParams["LOG_ID"]) > 0 && !empty($arParams["COMMENT_ID"]) && intval($arParams["COMMENT_ID"]) > 0) { $rsResCheck = CSocNetLogComments::GetList(array("ID" => "DESC"), array("LOG_ID" => intval($arParams["LOG_ID"])), false, false, array("ID")); if (($arResCheck = $rsResCheck->Fetch()) && $arResCheck["ID"] == intval($arParams["COMMENT_ID"]) && !empty($arParams["COMMENT_USER_ID"]) && intval($arParams["COMMENT_USER_ID"]) > 0 && intval($arParams["COMMENT_USER_ID"]) == intval($arParams["USER_ID"])) { $res = true; } } elseif ($rights[$key] == "ALL" || $rights[$key] == "OWN" && !empty($arParams["COMMENT_USER_ID"]) && intval($arParams["COMMENT_USER_ID"]) > 0 && intval($arParams["COMMENT_USER_ID"]) == intval($arParams["USER_ID"])) { $res = true; } return $res; }