uawdijnntqw1x1x1
IP : 3.136.17.118
Hostname : axolotl
Kernel : Linux axolotl 4.9.0-13-amd64 #1 SMP Debian 4.9.228-1 (2020-07-05) x86_64
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
OS : Linux
PATH:
/
var
/
www
/
axolotl
/
data
/
www
/
b24.axolotl.ru
/
.
/
public_html
/
bitrix
/
modules
/
mail
/
lib
/
messageaccess.php
/
/
<?php namespace Bitrix\Mail; use Bitrix\Mail\Internals\MessageAccessTable; /** * @see \Bitrix\Mail\Helper\MessageAccess */ class MessageAccess { // supported entity types public const ENTITY_TYPE_IM_CHAT = MessageAccessTable::ENTITY_TYPE_IM_CHAT; public const ENTITY_TYPE_CALENDAR_EVENT = MessageAccessTable::ENTITY_TYPE_CALENDAR_EVENT; /** @var int */ private $userId; /** @var \Bitrix\Mail\Item\Message */ private $message; /** @var IMessageAccessStorage */ private $storage; protected function __construct(int $userId, \Bitrix\Mail\Item\Message $message, IMessageAccessStorage $storage) { $this->userId = $userId; $this->message = $message; $this->storage = $storage; } public static function createForMessage(\Bitrix\Mail\Item\Message $message, int $userId): self { $storage = new \Bitrix\Mail\Storage\MessageAccess(); return new self($userId, $message, $storage); } public static function createByMessageId(int $messageId, int $userId): self { $messageStorage = new \Bitrix\Mail\Storage\Message(); $message = $messageStorage->getMessage($messageId); return self::createForMessage($message, $userId); } /** * @param \Bitrix\Mail\Item\Message|int $message message id or message item * @return static * @throws \Exception */ public static function createForCurrentUser($message): self { global $USER; $userId = $USER->GetID(); if (!$userId) { throw new \Bitrix\Main\SystemException('message access: user id error'); } return $message instanceof \Bitrix\Mail\Item\Message ? self::createForMessage($message, $userId) : self::createByMessageId((int)$message, $userId); } public function isOwner(): bool { return (bool)self::getUserMailbox($this->getMessage()->getMailboxId(), $this->getUserId()); } /** * @return bool * @todo optionally implement for other entity types */ public function canViewMessage(): bool { if ($this->isOwner()) { return true; } $collection = $this->getCollection($this->getMessage()); /** @var \Bitrix\Mail\Item\MessageAccess $item */ foreach ($collection as $item) { switch ($item->getEntityType()) { case self::ENTITY_TYPE_IM_CHAT: if (\Bitrix\Mail\Helper\MessageAccess::checkAccessForChat($item->getEntityId(), $this->getUserId())) { return true; } break; case self::ENTITY_TYPE_CALENDAR_EVENT: if (\Bitrix\Mail\Helper\MessageAccess::checkAccessForCalendarEvent($item->getEntityId(), $this->getUserId())) { return true; } break; } } return false; } public function canModifyMessage(): bool { return $this->isOwner(); } private function getMessage(): \Bitrix\Mail\Item\Message { return $this->message; } private function getUserId(): int { return $this->userId; } private function getStorage(): IMessageAccessStorage { return $this->storage; } private function getCollection(\Bitrix\Mail\Item\Message $item): \Bitrix\Mail\Collection\MessageAccess { return $this->getStorage()->getCollectionForMessage($item); } private static function getUserMailbox(int $mailboxId, int $userId) { return MailboxTable::getUserMailbox($mailboxId, $userId); } }
/var/www/axolotl/data/www/b24.axolotl.ru/./public_html/bitrix/modules/mail/lib/messageaccess.php