Раздача прав на карточку раздела

Добрый день!

возникла проблема: есть раздел (допустим, задач). В разделе "Администрирование" созданы 2 группы пользвателей: 1 имеют право на создание и редактирование задачи, 2 имеют право на просмотр карточки и могут нажать кнопку "принять" на карточке задачи. У задачи есть поле "статус". При создании задачи статус = новая задача, при нажатии кнопки "принять" статус меняется на "в работе"

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

Подскажите, как решить эту проблему?

Есть вариант раздать права на изменение группе 2, при этом при открытии карточки прописать

Window.ComponentsByName('frmData').IsEnabled = false

но почему-то карточка не блокируется.

Нравится

7 комментариев

А просто

frmData.IsEnabled = false;

как?

то же самое. В функции значение false присваивается, но в итоге открывается незаблокированная карточка.

Предполагаю, что где-то в стеке функций значение меняется, но пока не нашла где.

Так же сотается вопрос: есть ли какой-то другой способ решить проблему с правами?

Да. Дать права на запись на уровне базы данных и забрать на уровне карточки.

Могу предложить решение "потупее". Создайте фрейм и вставьте его между frmData и остальным содержимым (т.е. фрейм в frmData (иначе никак), а все остальное входит в этот фрейм).
И уже блокировать этот фрейм.

"Alimova Anna" написал:забрать на уровне карточки.

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

"Сазанов Александр Владимирович" написал: Создайте фрейм и вставьте его между frmData и остальным содержимым

а чем это должно помочь?

есть еще вариант раздавать права на поля

"Росинская Лена" написал:Есть вариант раздать права на изменение группе 2, при этом при открытии карточки прописать

Window.ComponentsByName('frmData').IsEnabled = false
но почему-то карточка не блокируется.


Я написал решение этой проблемы.
Когда я писал "Создайте фрейм и вставьте его между frmData и остальным содержимым" я имел по уровню вложения, а не расположение.
Сейчас у вас все входит в frmData, поставьте между ними посредника, все входит в MainFrame, а MainFrame входит в frmData.
Теперь

MainFrame.IsEnabled = false;

должно блокировать окно.

Показать все комментарии