Битрикс24: как определить внешнего пользователя
Всех пользователей «Битрикс24» можно поделить на две большие группы: внешних и внутренних. Внутренние пользователи (Intranet-пользователь) — это сотрудники компании, они имеют привязку к департаменту в структуре компании. Для них может быть доступен широкий функционал: контроль рабочего времени, CRM, телефония и многое другое. Внешние пользователи (Extranet-пользователь) — пользователи с сильно ограниченными правами доступа. Такие пользователи не являются полноценными сотрудниками на портале и создаются в рамках внешних групп. Как правило, в качестве внешних пользователей добавляют поставщиков, партнеров и подрядчиков.
Внешнего пользователя можно перевести в статус сотрудника компании, то есть — сделать внутренним пользователем. Обратный процесс не предусмотрен. Если вы решите перевести сотрудника в экстранет, то потребуется заблокировать текущую учетную запись (уволить сотрудника), изменить его e-mail и заново выслать приглашение.
От теории переходим к практике. Задача: написать условие, с помощью которого можно было бы ограничить доступ внешним пользователям. Звучит достаточно просто, но у данной задачи есть несколько способов решения. Все примеры могут быть использованы на коробочной версии «Битрикс24».
Привязка к структуре компании
Как я уже упоминал ранее, сотрудник компании имеет привязку к департаменту. Соответственно, у extranet-пользователя такой привязки нет. Отсюда первое решение задачи. Поможет нам класс CUser . В примере я буду выполнять проверку с помощью метода CUser::GetByID, но вы можете воспользоваться и CUser::GetList .
$rsUser = CUser::GetByID($user_id); $arUser = $rsUser->Fetch(); if (empty($arUser[‘UF_DEPARTMENT’][0]))< echo 'Это внешний пользователь'; >else
$user_id — уникальный идентификатор пользователя. Не забывайте, привязка сотрудника к департаментам может быть множественной.
Принадлежность к определенной группе пользователей
Ознакомиться со списком пользовательских групп можно в админ-панели: Настройки > Группы пользователей . Или просто перейти по ссылке вида /bitrix/admin/group_admin.php .
В моем случае все пользователи экстранета входят в группу с уникальным ID 14. У вас это значение может отличаться. Условие будет выглядеть так:
if(CSite::InGroup(array(14)))< echo 'Это внешний пользователь'; >else
Переходим к третьем и последнему способу.
Определение внешнего пользователя методами «Битрикс24»
Предыдущие два способа достаточно универсальны и работают как в «Битрикс Управление Сайтом», так и в коробочной версии «Битрикс24». Логично предположить, что внутри Б24 присутствуют альтернативные методы решения данной задачи. И здесь их тоже несколько. Есть устаревший метод CExtranet::IsExtranetUser() внутри которого осуществляется вызов CExtranet::GetExtranetUserGroupID() . Данный метод по сути повторяет наше второе решение задачи, проверяя группу пользователя, правда здесь ее идентификатор получают из настроек сайта.
Есть и вполне актуальная конструкция, которую можно найти в исходном коде, выглядит она следующим образом:
$user_type = ( Loader::includeModule(«extranet») && \CExtranet::isExtranetSite() && !\CExtranet::isIntranetUser() ? ‘extranet’ : » ); if ($user_type==»extranet»)< echo 'Это внешний пользователь'; >else
Передавать ID пользователя в данном случае не требуется. Методы берут идентификатор пользователя, под которым данный код выполняется. CExtranet::IsExtranetSite() — проверяет на какой версии сайта выполняется запрос: для внешних пользователей предусмотрена отдельная версия сайта. CExtranet::isIntranetUser() — проверяет является ли пользователь сотрудником компании. Ознакомиться с исходным кодом метода можно здесь. Базируется он все на той же проверке привязки пользователя к департаментам.
Каким из вариантов пользоваться — решать вам. Все три — вполне жизнеспособны, на мой взгляд, для решения большинства задач — достояно первых двух.
Опубликовано: 27 февраля 2021 года, в рубрике «Битрикс».
Контакты и компании Битрикс24. Получаем ID сделок
Оформите подписку Битрикс24 Маркет Плюс и используйте более 3000 полезных приложений, представленных в каталоге.
Контакты и компании Битрикс24. Получаем ID сделок
Установить
Информация
Опубликовано : 08.11.2021
Установок : 404
Другие приложения разработчика
Сервисный чат-бот WAZZUP
По подписке
Медицина.Ready
По подписке

Интеграция Инфоклиника и Битрикс24
По подписке
Событие в календарь
По подписке
Интеграция с iDent Управление клиникой
По подписке
Интеграция Битрикс24 с Dental4Windows
По подписке
Интеграция с 1С:Медицина
По подписке
Узнай страну по телефону. Робот для CRM
По подписке
Слияние PDF. Робот для CRM
По подписке
Сократи ссылку. Робот для CRM
По подписке

Активити бизнес-процесса получает множественное значение ID сделок контактов или компаний и возвращает их значение в дополнительные результаты.
Активити удобно использовать, например:
1. Для контроля наличия сделок в контакте или компании.
2. Для подсчета общего количества сделок контакта или компании через бизнес-процесс.
3. Для подсчета общей суммы сделок контакта или компании через бизнес-процесс.
С активити можно использовать итератор значений переменных в сочетании с действием «Выбор данных CRM».
Скачать пример бизнес-процесса для расчета общей суммы сделок компании по ссылке.
Активити требует визуального редактора бизнес-процессов, поэтому будет работать на тарифах с этой функцией (не ниже Команды (архив) или Профессиональный с 01.08.2021).
Версия 1
Активити бизнес-процесса. Позволяет получить множественное значение ID сделок контакта или компании и возвращает их в дополнительные результаты.
Техническая поддержка приложения осуществляется через чат технической поддержки компании BIZZUP.
В остальных случаях техническая поддержка осуществляется на платной основе либо через чат технической поддержки, либо по электронной почте spv@bizzup.ru
Никаких специальных действий не требуется. После установки необходимо добавить действие в бизнес-процессе.
Как посмотреть привязанные идентификаторы Битрикс24 к объектам 1С
Когда данные выгружаются из 1С в Битрикс24, или загружаются в 1С из Битрикс24, то для предотвращения дублей – в 1С хранятся идентификаторы Битрикс24. Поэтому эти данные очень важны, и удалять их нельзя. Если во время выгрузки 1С в Битрикс24 не будет найден объект с таким id, то в 1С этот идентификатор будет удален. Идентификаторы объектам 1С можно вводить вручную.
Откройте раздел Битрикс24 > Идентификаторы Битрикс24.

При заполнении идентификаторов вручную стоит учесть, что сущности в Битрикс24 и 1С отличаются. Например, в Битрикс24 компания/клиент, реквизит, юр.адрес, физ.адрес — это разные сущности, а в 1С — одна (две, если есть партнеры). Для этого был заведен реквизит «Тип данных», разделяющий один и тот же объект 1С.
Идентификаторы Битрикс24 можно перемещать между модулями интеграции 1С, используя функцию выгрузки идентификаторов в файл и загрузки идентификаторов из файла. Но нужно учесть, что идентификаторы через файл можно передавать только в разрезе одной базы 1С.
