Задача [CRM42]: доработка форм для реализации разграничения прав доступа

Формулировка проблемы: для возможности указания ограничений доступа к отдельным подмножествам записей реестров в зависимости от подразделения пользователя необходимо дополнить формы полями, содержащими подразделения, которым должны быть доступны соответствующие записи реестров.

Связанные задачи:

Решение:

Во-первых, на все формы, записи по которым должны быть доступны автору и всем его родительским подразделениям, необходимо добавить поля:

Поле Тип компонента Имя компонента

Владелец

выбор подразделения

crm_owner

Доступно

выбор подразделения

crm_all_accessible

Поле "Владелец" заполняется автоматически подразделением создающего пользователя. Поле обязательно для заполнения, мультивыбор недоступен.

Поле "Доступно" автоматически заполняется подразделением, указанным в поле "Владелец", и всеми его родительскими подразделеними, включая корневое подразделение оргструктуры. Доступен мультивыбор подразделений, поле скрыто.

Изменения применяются к формам:

Во-вторых, на форму "Сделка" необходимо добавить поля:

Поле Тип компонента Имя компонента

Владелец

выбор подразделения

crm_owner

Доступно

выбор подразделения

crm_all_accessible

Поле "Владелец":

Поле "Доступно" автоматически заполняется подразделением, указанным в поле "Владелец", и всеми его родительскими подразделеними, включая корневое подразделение оргструктуры. Доступен мультивыбор подразделений, поле скрыто.

Кроме того, для существующего компонента формы "Отделение" crm_form_deal_sales_pk1 настроена связь с компонентом "Ответственный менеджер" crm_form_deal_responsibleManager_responsible.

В-третьих, на формы "Маркетинговое мероприятие", "Товар (услуга)" и "Тема сотрудничества" необходимо добавить поля:

Поле Тип компонента Имя компонента

Владелец

выбор подразделения

crm_owner

Для кого

выбор подразделения

crm_has_access

Доступно

выбор подразделения

crm_all_accessible

Поле "Владелец" заполняется автоматически подразделением создающего пользователя. Поле обязательно для заполнения, мультивыбор недоступен.

В поле "Для кого" доступен мультивыбор подразделений.

Поле "Доступно" автоматически заполняется:

  1. подразделением, указанным в поле "Владелец", и всеми его родительскими подразделеними, включая корневое подразделение оргструктуры;

  2. подразделениями, указанными в поле "Для кого", и всеми дочерними подразделениями каждого из них.

Доступен мультивыбор подразделений, поле скрыто.