403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/calendar/lib/sharing/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/calendar/lib/sharing/sharinggroup.php
<?php

namespace Bitrix\Calendar\Sharing;

use Bitrix\Calendar\Sharing\Link\Factory;
use Bitrix\Calendar\Sharing\Link\GroupLink;
use Bitrix\Calendar\Sharing\Link\GroupLinkMapper;
use Bitrix\Main\Error;
use Bitrix\Main\Result;

final class SharingGroup
{
	private int $groupId;
	private int $userId;

	public function __construct(int $groupId, int $userId)
	{
		$this->groupId = $groupId;
		$this->userId = $userId;
	}

	public function enable(): Result
	{
		$result = new Result();

		if (!$this->isEnabled())
		{
			Factory::getInstance()->createGroupLink($this->groupId, $this->userId);
		}
		else
		{
			$result->addError(new Error('Sharing is already enabled', 100010));
		}

		return $result;
	}

	public function disable(): Result
	{
		$result = new Result();

		if ($this->isEnabled())
		{
			$groupLinks = $this->getAllGroupLinks();
			if (!empty($groupLinks))
			{
				$groupLinkMapper = new GroupLinkMapper();
				foreach ($groupLinks as $groupLink)
				{
					$groupLinkMapper->delete($groupLink);
				}
			}
		}
		else
		{
			$result->addError(new Error('Sharing is already disabled', 100020));
		}

		return $result;
	}

	public function isEnabled(): bool
	{
		return (bool)$this->getActiveLinkUrl();
	}

	public function getActiveLinkUrl(): ?string
	{
		$groupLink = $this->getGroupLink();

		return $groupLink && $groupLink->isActive() ? $groupLink->getUrl() : null;
	}

	public function getGroupLink(): ?GroupLink
	{
		return $this->getGroupLinkByGroupId($this->groupId, $this->userId);
	}

	public function getLinkInfo(): array
	{
		$linkRuleMapper = new Link\Rule\Mapper();
		$groupLink = $this->getGroupLink();
		if (is_null($groupLink))
		{
			$linkObjectRule = new Link\Rule\GroupRule($this->groupId);
			$sharingRule = $linkRuleMapper->getFromLinkObjectRule($linkObjectRule);
			$sharingHash = null;
			$url = null;
		}
		else
		{
			$sharingRule = $groupLink->getSharingRule();
			$sharingHash = $groupLink->getHash();
			$url = Helper::getShortUrl($groupLink->getUrl());
		}

		return [
			'url' => $url,
			'hash' => $sharingHash,
			'rule' => $linkRuleMapper->convertToArray($sharingRule),
		];
	}

	public function generateGroupJointLink(array $memberIds): Result
	{
		$result = new Result();

		if (!$this->isEnabled())
		{
			$result->addError(new Error('Sharing is disabled', 100050));
		}

		if ($result->isSuccess())
		{
			/** @var GroupLink $groupJointLink */
			$groupJointLink = Factory::getInstance()->createGroupJointLink($this->groupId, $memberIds);

			$linkArray = (new GroupLinkMapper())->convertToArray($groupJointLink);

			$result->setData([
				'url' => $linkArray['shortUrl'],
				'link' => $linkArray,
			]);
		}

		return $result;
	}

	protected function getAllGroupLinks(): array
	{
		return Factory::getInstance()->getGroupLinks($this->groupId, $this->userId);
	}

	protected function getGroupLinkByGroupId(int $groupId, int $userId): ?GroupLink
	{
		$groupLinks = Factory::getInstance()->getGroupLinks($groupId, $userId);

		return !empty($groupLinks) ? array_shift($groupLinks) : null;
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit