0
alexey-simf
27.03.15
✎
15:22
|
8.3.5, УТ 11.1
В конфигураторе добавил новую роль, назвал её "ИзменениеПринятыхПеремещений" (через подписку на событие хочу реализовать запрет редактирования перемещений со статусом "Принято", всем, у кого нет этой роли, в том числе, администраторам).
Создал подписку и код для её обработки.
Захожу (тонкий клиент) в Администрирование, нахожу там себя, добавляю себе группу прав с профилем "ИзменениеПринятыхПеремещений", в котором включена роль "ИзменениеПринятыхПеремещений".
(запускаю со спец. ключём для обновления каких-то идентификаторов)
Перезапускаю клиента, проверяю работу - не разрешает.
Лезу в отладчик, узнаю что РольДоступна(Метеданные.ИзменениеПринятыхПеремещений) = Ложь.
Один знакомый подсказал в конфигураторе открыть список пользователей и там для себя, на закладке "Прочие", поставить галку напротив упомянутой роли. Я это сделал и всё заработало как надо.
Внимание, вопрос: в чём разница способов включения ролей пользователям (в конфигураторе и в клиенте) и как всё же правильно добавлять свою роль в базу?
|
|
1
Худой
28.03.15
✎
06:46
|
Я так понимаю, что при запуске приложения заполняется массив доступных ролей пользователя, который проставлен в конфигураторе. А если права администратора, то программно никаких ограничений не проверяется. Типа, все можно и так и смотреть массив считанных ролей незачем. Но когда ты сам решил этим делом заняться, вот и наткнулся на то, что у тебя в массиве роли этой нет. И, естественно, РольДоступна(Метеданные.ИзменениеПринятыхПеремещений) = Ложь.
Теперь думай как тебе это дело обходить. Советую не работать под ролью Администратор. Например, заведи АдминРабочий и там уже проставляй в конфигураторе на общем основании все права и проч.
|
|