本文整理汇总了PHP中CSocNetFeaturesPerms::canPerformOperation方法的典型用法代码示例。如果您正苦于以下问题:PHP CSocNetFeaturesPerms::canPerformOperation方法的具体用法?PHP CSocNetFeaturesPerms::canPerformOperation怎么用?PHP CSocNetFeaturesPerms::canPerformOperation使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CSocNetFeaturesPerms
的用法示例。
在下文中一共展示了CSocNetFeaturesPerms::canPerformOperation方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: canRead
/**
* @param $userId
* @return bool
*/
public function canRead($userId)
{
if ($this->canRead !== null) {
return $this->canRead;
}
if (($res = $this->getDataToCheck($this->entityId)) && !empty($res)) {
list($message, $topic) = $res;
$entityId = null;
$entityType = null;
if (!empty($topic["XML_ID"])) {
$entityId = substr($topic["XML_ID"], strrpos($topic["XML_ID"], "_") + 1);
$entityType = substr($topic["XML_ID"], 0, strrpos($topic["XML_ID"], "_"));
}
switch ($entityType) {
case "TASK":
if (Loader::includeModule("tasks")) {
$connector = new TaskConnector($entityId, $this->attachedObject);
$this->canRead = $connector->canRead($userId);
return $this->canRead;
}
break;
case "EVENT":
if (Loader::includeModule("calendar")) {
$connector = new CalendarEventConnector($entityId, $this->attachedObject);
$this->canRead = $connector->canRead($userId);
return $this->canRead;
}
break;
case "IBLOCK":
if ((int) $topic["USER_ID"] > 0 && Loader::includeModule("socialnetwork")) {
$codes = array();
if (($res = \CSocNetLog::getList(array(), array("SOURCE_ID" => $entityId, "EVENT_ID" => array("photo_photo", "news", "wiki")), false, false, array("ID"))->fetch()) && $res) {
$db_res = \CSocNetLogRights::getList(array(), array("LOG_ID" => $res["ID"]));
while ($res = $db_res->fetch()) {
$codes[] = $res["GROUP_CODE"];
}
}
$this->canRead = $this->canAccess($userId, $codes);
return $this->canRead;
}
$this->canRead = true;
return $this->canRead;
case "MEETING":
$this->canRead = (int) $message["FORUM_ID"] == (int) \COption::getOptionInt('meeting', 'comments_forum_id', 0, SITE_ID);
return $this->canRead;
case "TIMEMAN_ENTRY":
if (Loader::includeModule("timeman")) {
$dbEntry = \CTimeManEntry::getList(array(), array("ID" => $entityId), false, false, array("ID", "USER_ID"));
if ($arEntry = $dbEntry->fetch()) {
if ($arEntry["USER_ID"] == $userId) {
$this->canRead = true;
return $this->canRead;
} else {
$arManagers = \CTimeMan::getUserManagers($arEntry["USER_ID"]);
$this->canRead = in_array($userId, $arManagers);
return $this->canRead;
}
}
}
$this->canRead = false;
return $this->canRead;
case "TIMEMAN_REPORT":
if (Loader::includeModule("timeman")) {
$dbReport = \CTimeManReportFull::getList(array(), array("ID" => $entityId), array("ID", "USER_ID"));
if ($arReport = $dbReport->fetch()) {
if ($arReport["USER_ID"] == $userId) {
$this->canRead = true;
return $this->canRead;
} else {
$arManagers = \CTimeMan::getUserManagers($arReport["USER_ID"]);
$this->canRead = in_array($userId, $arManagers);
return $this->canRead;
}
}
}
$this->canRead = false;
return $this->canRead;
case "WF":
$this->canRead = false;
if (Loader::includeModule("bizproc")) {
$currentUserId = (int) $this->getUser()->getId();
$participants = \CBPTaskService::getWorkflowParticipants($entityId);
if (in_array($currentUserId, $participants)) {
$this->canRead = true;
} else {
$state = \CBPStateService::getWorkflowStateInfo($entityId);
if ($state && $currentUserId === (int) $state['STARTED_BY']) {
$this->canRead = true;
}
}
}
return $this->canRead;
}
if ((!empty($topic["SOCNET_GROUP_ID"]) || !empty($topic["OWNER_ID"])) && Loader::includeModule("socialnetwork")) {
if (!empty($topic["SOCNET_GROUP_ID"])) {
$this->canRead = \CSocNetFeatures::isActiveFeature(SONET_ENTITY_GROUP, $topic["SOCNET_GROUP_ID"], "forum") && \CSocNetFeaturesPerms::canPerformOperation($userId, SONET_ENTITY_GROUP, $topic["SOCNET_GROUP_ID"], "forum", "view");
//.........这里部分代码省略.........