Начиная с версии 1.9.3 в программе "Клиентская база" появилась Расширенная система доступа к полям таблиц.
Систему разграничения доступа можно разделить на две группы:
1. Разграничение доступа на основе группы пользователя. Права доступа определяются, одни и те же для всех членов группы. Более подробно описаны в разделе Группы доступа.
2. Разграничение доступа на основе поля Пользователь. Права доступа определяются отдельно на каждое поле, и настраивается для каждого пользователя отдельно. Данная группа называется "Расширенной системой доступа".
Настройка расширенных прав доступа
1. Чтобы настроить расширенный доступ зайдите в "Настройки" → "Конфигурация"

2. Выберите категорию и нужную таблицу в ней

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

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

5. Обозначение расширенных прав доступа аналогично обозначению общих прав. Т.е. поставив галочку напротив значения "Таблица" вы будете видеть поле в общем списке таблицы. Поставив галочку напротив значения "Просмотр" вы сможете видеть поле при открытии информации о строке. Поставив галочку напротив значения ""Редактирование" вы сможете редактировать значение поля.

Права доступа основанные на поле пользователь перекрывают общие для группы права. Так например если вы в группе разрешили право доступа, а в расширенных правах запретили (не поставили галочку), то доступ будет запрещен.
Примеры использования расширенных прав доступа
Распределение доступа между менеджерами, находящимися в одной группе пользователей
Существует таблица "Клиенты". Есть несколько менеджеров, которые работают с данной таблицей. Все менеджеры входят в группу "Менеджеры", и имеют одинаковые права ко всем строкам. Но возможна ситуация, когда нежелательно, чтобы один менеджер видел клиентов другого менеджера. В этом случае необходимо:
1. В группе доступа "Менеджеры", поставить доступ к нужным полям. О том как это сделать подробнее написано в разделе Группы доступа.
2. Действуя по приведенной выше инструкции, добавить необходимые поля, и назначить у них разрешающие права: таблица, просмотр, редактирование каждому из менеджеров
В этом случае, доступ менеджеру будет разрешен только к тем строкам, который добавил именно он.
Если вам необходимо чтобы часть полей видели все менеджеры, добавьте их в группе доступа "Менеджеры".
В итоге, мы имеем таблицу "Клиенты", и каждый менеджер видит только свои записи.
Создание пользователя "Главный менеджер" с возможностью просмотра всех строк таблицы
Данную задачу можно решить двумя путями:
- Cоздать группу "Главные менеджеры", разрешить данной группе доступ к записям в таблице. Перенести главного менеджера в данную группу.
- Создать дополнительное поле "Главный менеджер" типа "пользователь" в таблице "Клиенты" (Подробнее о добавлении полей в соответствующем разделе). Изменить значение по умолчанию на имя пользователя "Главного менеджера".
Важно: данное поле можно сделать с множественным выбором, поставив галочку в дополнительных настройках напротив значения "Множественный выбор". И заполнять его несколькими пользователями. Т.е. может быть несколько главных менеджеров, как в группе.
Передача Главным менеджером клиента между менеджерами
Рассмотрим ситуацию когда Главный менеджер, решает перевести клиента от одного пользователя к другому, в этом случае необходимо разрешить главному менеджеру, изменять поле "Кто добавил". В случае если главный менеджер изменит в строке поле "Кто добавил", то права автоматически будут применяться уже к другому пользователю.
В случае если несколько полей типа пользователь, имеют противоречивые права, например, одно поле разрешает доступ, а другое запрещает, то приоритет отдается запрещению.
Используя несколько полей типа пользователь и вычисления можно настроить практически любой необходимый доступ к данным в системе.
