private static function checkUserCanViewGroupExtended($userId, $groupId) { if (!isset(self::$cache['GROUP_ACCESS_EXT'][$groupId][$userId]) || !self::$cacheData) { self::$cache['GROUP_ACCESS_EXT'][$groupId][$userId] = CTasksTools::HasUserReadAccessToGroup($userId, $groupId); } return self::$cache['GROUP_ACCESS_EXT'][$groupId][$userId]; }
public static function GetNotificationPath($arUser, $taskID, $bUseServerName = true, $arSites = array()) { $bExtranet = false; $siteID = false; $effectiveSiteId = (string) SITE_ID; $rsTask = CTasks::GetByID($taskID, false); if ($arTask = $rsTask->Fetch()) { if (CModule::IncludeModule('extranet') && !CTaskNotifications::__isIntranetUser($arUser["ID"])) { $bExtranet = true; $siteID = (string) CExtranet::GetExtranetSiteID(); } if ($siteID) { $effectiveSiteId = (string) $siteID; } elseif (isset($arSites['INTRANET']['SITE_ID'])) { $effectiveSiteId = (string) $arSites['INTRANET']['SITE_ID']; } if (!is_string($siteID)) { $siteID = (string) SITE_ID; } if ($arTask['GROUP_ID'] && CTasksTools::HasUserReadAccessToGroup($arUser['ID'], $arTask['GROUP_ID'])) { $pathTemplate = str_replace("#group_id#", $arTask["GROUP_ID"], CTasksTools::GetOptionPathTaskGroupEntry($effectiveSiteId, "/workgroups/group/#group_id#/tasks/task/view/#task_id#/")); $pathTemplate = str_replace("#GROUP_ID#", $arTask["GROUP_ID"], $pathTemplate); } else { $pathTemplate = CTasksTools::GetOptionPathTaskUserEntry($siteID, "/company/personal/user/#user_id#/tasks/task/view/#task_id#/"); } $server_name_tmp = false; if ($arTask["GROUP_ID"] && count($arSites) > 0) { $server_name_tmp = $arSites[$bExtranet ? "EXTRANET" : "INTRANET"]["SERVER_NAME"]; } $strUrl = ($bUseServerName ? tasksServerName($server_name_tmp) : "") . CComponentEngine::MakePathFromTemplate($pathTemplate, array('user_id' => $arUser['ID'], 'USER_ID' => $arUser['ID'], 'task_id' => $taskID, 'TASK_ID' => $taskID, 'action' => 'view')); return $strUrl; } return false; }