При добавлении Складского документа (Накладной) в нижней части во вкладке Доступ создаются определенные Группы и Пользователи - автор (a.ivanov,Ответственный) созданного Складского документа (скриншот).
При изменении Ответственного (b.petrov) в этом документе в Доступе появляется этот Пользователь (b.petrov).
При ещё раз изменении Ответственного в этом документе в Доступе появится этот новый Пользователь, но при этом предыдущий Ответственный (b.petrov) останется и может видеть данный документ.
Возникло два вопроса:
1. Как при добавлении в Доступ Пользователя (при смене Ответственного), который находится в определенной группе (к примеру Менеджеры) права этого Пользователя были только Чтение. Сейчас видно, что у a.ivanov права Чтение, Удаление и Изменение доступа.
2. Как при смене Ответственного удалять предыдущего Ответственного (но только, если он находится в группе Менеджеры). А то получается Ответственный поменялся, но предыдущий ответственный может видеть данный складской документ.
Нравится
Добрый день!
Раздача прав доступа ответственному записи происходит на событии AfterPost в скрипте датасета.
За это отвечает функция GiveRightsToRecordOwner скрипта scr_Access, которая используется во всех разделах.
В ней прописана раздача прав на чтение и запись для нового ответственного:
var CanRead = true; var CanWrite = true; var CanDelete = false; var CanChangeAccess = false;
Вы можете модифицировать ее по своему усмотрению или написать похожую функцию, но конкретно для Вашего раздела.
Идентификатор предыдущего ответственного записывается в атрибут InitOwnerID датасета в функции InitRecordOwnerData скрипта scr_Access. Используя его, Вы можете реализовать его удаление с таблицы tbl_[таблица]Right также на событии AfterPost датасета.