Поиск

Личный кабинет

Доступы:
--------


Принцип работы:
---------------
Доступы для таблиц задаются в интеграторе через грид, который можно запустить из командной строки с помощью "RunCommand CreateAccessBook". Каждая строка в этом гриде является описанием доступа для одной конкретной таблицы.
Для одной таблицы в гриде может быть только одна строка с описанием доступа. Система это контролирует.
По кнопке "Сгенериров" генерируются доступы для всех таблиц из грида и сохраняются в файл "AccessData.xml".
Этот файл должен лежать в корне каталога, где лежат схемы клиента. Далее, интегратор при выполнении запроса к конкретной таблице ищет определение доступа для таблицы в этом файле (элемент "ResultAccess" в файле). И если находит, то добавляет соответствующее условие в запрос после "where".


Для того, чтобы изменения по доступам стали актуальными, нужно просто нажать кнопку "Сгенериров"!!!!!  Система автоматически пробежит по всем таблицам, определенным в гриде, и переформирует для них доступы, после чего сохранит в файл "AccessData.xml". При старте интегратора доступы из этого файла загружаются в память и используются в запросах к таблицам. Интегратор следит за временем изменения этого файла. И как только он определяет, что файл обновился, загружает заново в память доступы из этого файла.

Описание полей в карточке задания доступа на таблицу:
-----------------------------------------------------


Базовая схема для таблицы    - в этом поле указывается схема, из определения которой вычисляется таблица, для которой будет задаваться доступ

Таблица             - имя таблицы для которой задается доступ; вычисляется на основании предыдущего поля; это поле только для чтения

Поле схемы для доступа для справочника - указывается поле схемы, в котором будет храниться код доступа; это поле нужно обязательно заполнять, если стоит галочка "Справочник, определ. доступ"

Поле таблицы для доступа для справочника - имя поля в таблице, в котором будет храниться код доступа; вычисляется на основании предыдущего поля; это поле только для чтения

Использовать доступ справочников - указывается тип доступа для справочника (возможные значения берутся из справочника "RunDict AccessDataType" плюс значения "Null - не использовать" и "All - все") Если выбрано значение "Null" (по-умолчанию), то в итоговое условие для этой таблицы не будет добавлено условие как для справочника, определяющего доступ

Справочник,определ. доступ - определяет будет ли использоваться данная таблица как справочник, определяющий доступ

Активный         - определяет является ли доступ на таблицу активным; если галочка не стоит, то это значит, что поле "Итоговое условие"(закладка в карточке Доступа) останется пустым и следовательно никакого условия по доступу на данную таблицу не будет

Сформировать итоговое условие - при нажатии на эту гиперссылку, в поле "Итоговое условие"(закладка в карточке Доступа) сформируется итоговое условие по доступу для данной таблицы; сделано для тестирования;формирование итогового условия происходит также при нажатии кнопки "Ok" в карточке Доступа

Закладка "Ручное условие"  - в этом поле можно написать вручную(язык SQL) свое собственное условие для таблицы, которое в конечном результате будет добавлено в поле "Итоговое условие"

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

Закладка "Итоговое условие" -  в этом поле отображается итоговое условие по доступу для данной таблицы;  это поле только для чтения

Порядок формирования итогового условия
--------------------------------------
Итоговое условие состоит из:
1) условия, сгенерированного на основе галочки "Справочник,определ. доступ" (если она включена и задан тип доступа
   для справочника)
2) условий для каждого поля таблицы из закладки "Поля доступа" (если есть)
3) условия, заданного на закладке "Ручное условие" (если есть)


Описание полей в карточке задания доступа на конкретное поле таблицы(Закладка "Поля доступа"):
----------------------------------------------------------------------------------------------

Поле схемы          - указывается поле схемы, для которого будет определятся доступ

Поле таблицы     - имя поля в таблице, для которого будет определятся доступ; это поле только для чтения

Таблица с доступом - имя таблицы, через которую будет задаваться доступ для этого поля; это поле только для чтения; заполняется это поле именем таблицы для схемы, которая указана в атрибуте "RefBook" для выбранного поля схемы; это поле всегда должно быть заполнено; таким  образом задать доступ можно только для поля схемы, у которого есть атрибут "RefBook"

Тип доступа        - указывается тип доступа для справочника (возможные значения берутся из справочника "RunDict AccessDataType")

Важно!!!
--------
Таблица, через которую будет задаваться доступ на поле, должна уже быть задана в гриде для доступов и для нее должны стоять галочки "Справочник,определ. доступ" и "Активный". Иначе система не даст сохранить доступ для 
данного поля.


Например, если есть уже заданные доступы. И для одной из таблиц, у которой стоят галочки
"Справочник,определ. доступ" и "Активный", снять одну из галочек, то при нажатии кнопки "Сгенериров",
в перегенерированных доступах для всех таблиц будут отсутствовать все условия, связанные с данной таблицей.
И напротив, если потом включить эти галочки, то при перегенирации все условия, связанные с этой таблицей будут добавлены.



Задание доступа на данные из справочников, определяющих доступ
---------------------------------------------------------------
Доступ на строки в гриде можно задать, если будет доступен пункт меню "Доступ" из попап-меню.
Он будет доступен, если выполняется два условия:
1) текущий пользователь должен быть Администратором (т.е. он должен входить хотя бы в одну группу, у которой
   стоит галочка "Администратор"). Определение групп задается с помощью команды "RunDict Group".
2) на таблицу, которая отображена в гриде, должен быть задан доступ и в определении доступа должна стоять
   галочка "Справочник, определяющий доступ"



При выборе пункта меню "Доступ" в гриде, откроется карточка для задания доступа. В ней выбираются группы, для
которых Вы хотите дать доступ. И для каждой группы можно определить для каждого разреза доступа 4 вида доступа:
1) R - чтение, 2) W - изменение, 3) I - вставка, 4) D - удаление.


Важно !!!
---------
   При задании доступа на строку в гриде, администратор обязательно должен дать доступ и для себя,
   иначе эта строка ему будет потом недоступна.


1.Установка прав на доступы через таблицы - RunCommand CreateAccessBook.

2.Добавлен режим проверки прав доступа к записи - по F3 в окне свойств записи, для администратора появилась кнопка Доступ,

  которая позволяет детально разобрать права доступа к указанной записи для пользователя, а также увидеть принадлежность

  его к группам.

3.Добавлено наследование(с возможностью дальнейшего копирования) прав пользователей (RunDict UserInheritAccess).

4. Добавлена утилита для Импорта из схем прав доступа, и преобразования в файл нового формата.

Запуск - RunCommand ImportAccessBook.

Лог ошибок находится в \log\AccessDataErrors_ХХХХ.sql, где ХХХХ – имя пользователя.

5. В меню редактора реестра(RegEdit) появилась команда контроля доступа к записям реестра. Теперь можно устанавливать  доступ к командам меню на уровне зачитки записей из базы.

Для получения возможности задания Доступов к меню(при попытке установить доступы к пунктам меню - система сообщает «Доступы не назначены.»), следует задать доступ на таблицу sy_registry(например через схему - Registry), с типом доступа CM – команда интегратора.

Пример настройки прав доступа к данным

Пример настройки прав доступа к данным (для версии 3.3.ххх.хх).
Нужно ограничить доступ к вьюву «Реестр кадровых приказов» (RunView STOrders) по признаку «Вид учета» (AccModel).

1.  Создаем новые (или используем существующие) группы пользователей в справочнике групп (RunDict Group). Например, группа «Менеджмент» (и ее пользователи) должны видеть в «Реестре кадровых приказов» только приказы с признаком «Вид учета» «3-Управленческий». Группа «Бухгалтерия» - только с признаком «Вид учета» «1-Бухгалтерский». Добавляем соответствующих пользователей в группы.

2.  Назначаем доступы группам. Для этого открываем справочник видов учета (RunDict AccModel). На строке «1-Бухгалтерский» вызываем из контекстного меню пункт «Доступ…». В отрывшемся окне нажимаем «Добавить» и выбираем группу «Бухгалтерия». В нижней части окна устанавливаем флажки напротив типов доступа «Зарплата и кадры (PR)» и «Справочник (RF)». Доступ на «Справочник (RF)» в версии 3.3 нужно устанавливать всегда. Другие типы доступа (напр., «Зарплата и кадры (PR)») мы отмечаем в зависимости от текущей цели. 
Важно!: При назначении доступа всегда нужно сначала добавить группу «Администраторы» (в которую включены настройщики системы) и установить этой группе «Полный доступ».
Аналогично устанавливаем по строке «3-Управленческий» доступ группе «Менеджмент» (и «Администраторы»!).


3.  Поскольку реестр с данными (RunView STOrders) построен на схеме DocHeaderBP (можно узнать по F1), нужно добавить в схему DocHeaderBP элемент «Вид учета». Для этого в описание схемы (в файле «\Schemas\DocHeaderBP.xml») нужно добавить строку:
  <element name="AccModel" type="string" size="15" FieldName="AccModel" RefBook="AccModel" Title="Вид учета" Help="В поле указывается вид учета"/>
При добавлении нового элемента в схему обязательно нужно перегрузить и проинсталлировать схему.


4.  Нужно задать тип доступа для нового элемента. Для этого через кастом-схему (\Settings\Schemas\DocHeaderBP.custom.xml) устанавливаем атрибуты:
  <element name="DocHeaderBP" Access="True">
    <element name="AccModel"  Access="PR"/>
  </element>
Это для случая, когда необходимо задать тип доступа «PR».

Документация