Global SolutionsНижегородская улица, 32 стр. 4Москва, Россия+7-495-585-35-79
Денис Логинов
06.01.2020
Кейс дня "Отключаем разделы и модули для целого отдела в коробке Битрикс24"
ВИДЕОИНСТРУКЦИЯ ДЛЯ СОТРУДНИКОВ КОМПАНИИ:
Коробочная версия Битрикс24 часто используется для работы не только внутри компании, но и для подключения «внештатных» сотрудников, «удаленных» отделов, партнеров, подрядчиков и клиентов.
Обсуждаем вопрос как корректно ограничить таким пользователям доступы к ключевым (к служебным) разделам корпоративного портала, исключить и ограничить им доступ к конфиденциальной информации компании.
КАК РАБОТАЕТ МОДУЛЬ?
Открываем портал, структуру, смотрим пример.
В структуре компании есть большой отдел «Мастерские» с множество филиалов (территориальных подотделов).
Сотрудники филиалов ограничены и не имеют доступа к вкладкам главного меню (левый столбик портала), они их просто не видят на экране. Это наглядно видно если сравнить порталы сотрудника главного офиса и сотрудника «удаленного» отдела. Возможность попасть в закрытую зону с помощью прямых ссылок Битрикс24 у такого сотрудника – заблокирована.
Как это реализовано технически?
Мы собираем информацию о всех удаленных пользователях рекурсивно, считаем их и сохраняем массив этих данных в электронной таблице. Данные таблицы каждые 5 минут пополняются и обновляется.
Как только администратор портала создает (приглашает) нового удаленного пользователя, робот автоматически считывает его и определяет какому отделу он принадлежит. Информация о сотруднике передается в таблицу. Дальше система в автоматическом режиме будет включать ограничения для удаленного сотрудника согласно его роли при работе на корпоративном портале.
Поэтому, как только удаленный пользователь открывает портал, системе необходимо время чтобы распознать его и предоставить доступ согласно его полномочиям.
Как это выглядит в админке?
У нас есть специальный Highload-блок «Masters» Список записей, в него записываются ID наших пользователей, которые принадлежат удаленным отделам и прописаны доступы.
Робот (агент) каждые 5 минут (при необходимости время задержки может быть сокращено до 1 минуты) осуществляет автозапуск проверку и обновление данных. Запуск агента может быть осуществлен вручную с помощью PHP команды.
Как устроена файловая структура? Все рабочие файлы управления функционалом хранятся в папке Local\hph_interface.
Файл agent_function.hph рекурсивно обрабатывает все подотделы и забирает ID сотрудников чтобы для них применить ограничения доступа.
В файле constans.hph находятся 2 константы (masters_HB_ID,1) и (masters_departament_ID,57) которые используются для указания где в какой базе и в какой таблице будет хранится информация. В нашем примере у нас сейчас одна таблица ID 1 и masters_departament_ID содержит значение ID отдела компании, который считается основным и от которого мы рекурсивно начинаем вычислять всех его зависимых пользователей.
Как узнать номер основного отдела?
В структуре компании нужно нажать на иконку «мастерские» и считать номер в командной строке браузера. В нашем примере это 57.
Если нужно изменить доступы к отделу, то необходимо изменить значение ID в константе. Далее после перезапуска агент обновит списки сотрудников, на которых необходимо ввести ограничения.
ВАЖНО!
Обновленный список добавится к первому (введенному ранее) и ограничения будут действовать на оба списка одновременно на старый и новый
Ограничения доступов, их два вида:
Первый (неполный) вид определяет какую директорию пытается открыть пользователь и делает redirect 301(работает файл handlers.hph. в файл содержит массив директорий и возвращает пользователя на главную страницу меню). Одновременно второй специальный файл с расширением custum_stuff.css закрывает в браузере все недоступные (запрещенные к доступу) прописанные в файле разделы.
Как включать ограничения?
Например, необходимо ограничить раздел Диск. Для этого нужно нажать правой кнопкой «мыши» вкладку главного меню «диск», открыть редактор и в теле файла ищем специальный тег id=”bx_left_menu_files, копируем его и переносим его в файл custum_stuff.css. Не забудем поставить «решетку» перед тегом, сохранить внесенные изменения, обновить портал и очистить КЕШ браузера.
ВАЖНО!
Сейчас мы скрыли только лишь диск в отображении браузера и по-прежнему, имеется возможность перехода и доступ к диску по полной ссылке (dogs шерт - общий диск компании). Чтобы полностью закрыть доступ к диску, необходимо еще создать запись в массиве блокировки доступа. Массив блокировки находится в файле header.php. В этом файле необходимо указать путь к диску. Путь можно увидеть в браузере при активации диска.
Процедура – предоставления доступа к закрытым отделам портала, осуществляется в обратном порядке.
ПОДВЕДЕМ ИТОГИ:
Функционал коробочной версии Битркс24, позволяет избирательно и детально настраивать и ограничивать доступы к разделам корпоративного портала для всех категорий сотрудников, включая «дистанционно работающих», как индивидуально, так и для целых отделов с подотделами.
Обновления версий ПО Битрикс24 не нарушает на распределение доступов и ограничений.