3declare(strict_types=1);
5namespace Bitrix\Socialnetwork\Collab\Provider;
7use Bitrix\Main\ArgumentException;
8use Bitrix\Main\ObjectPropertyException;
9use Bitrix\Main\ORM\Query\Filter\Condition;
10use Bitrix\Main\ORM\Query\Query;
11use Bitrix\Main\SystemException;
12use Bitrix\Main\Type\Collection;
13use Bitrix\Socialnetwork\Collab\Collab;
14use Bitrix\Socialnetwork\Collab\CollabCollection;
15use Bitrix\Socialnetwork\Collab\Registry\CollabRegistry;
16use Bitrix\Socialnetwork\Internals\Registry\UserRegistry;
17use Bitrix\Socialnetwork\Item\Workgroup\Type;
18use Bitrix\Socialnetwork\Provider\FeatureProvider;
19use Bitrix\Socialnetwork\Provider\GroupProvider;
20use Bitrix\Socialnetwork\Helper\InstanceTrait;
32 $items = $ormQuery->exec()->fetchAll();
37 $collab =
new Collab($item);
38 $collection[$collab->getId()] = $collab;
53 $query->setSelect([Query::expr(
'COUNT')->countDistinct(
'ID')]);
57 $result = $ormQuery->exec()->fetch();
64 $registry = UserRegistry::getInstance(
$userId);
70 $userGroups = $registry->getUserGroups(UserRegistry::MODE_COLLAB);
74 $userGroups = array_keys($userGroups);
76 Collection::normalizeArrayValuesByInt($userGroups,
false);
78 if (empty($userGroups))
99 $registry = CollabRegistry::getInstance();
100 if (!$this->useCache)
102 $registry->invalidate($id);
105 $collab = $registry->get($id);
109 if ($collab ===
null)
115 $optionsProvider = CollabOptionProvider::getInstance();
117 $collab->setOptions(...$optionsProvider->get($id));
119 $featuresProvider = FeatureProvider::getInstance();
121 $collab->setFeatures(...$featuresProvider->getFeatures($id));
123 $collab->setPermissions(...$featuresProvider->getPermissions($id));
135 return GroupProvider::getInstance()->getGroupType($id) === Type::Collab;
140 return GroupProvider::getInstance()->isExistingGroup(
$name, $groupId);
145 $this->useCache =
true;
152 $this->useCache =
false;
if(!is_object($USER)||! $USER->IsAuthorized()) $userId
getListByUserId(int $userId, ?CollabQuery $query=null)
getCountByUserId(int $userId)
isExistingGroup(string $name, int $groupId=0)
getList(CollabQuery $query)
getCount(CollabQuery $query)
static build(CollabQuery $collabQuery)
static createFromId(int $itemId)