|
Роль созданная в расширении не отображается у пользователя | ☑ | ||
---|---|---|---|---|
0
lirt82
10.08.23
✎
08:15
|
В расширении создал свою роль, в режиме предприятия добавил ее в новый созданный профиль и назначил этот профиль конкретному пользователю, но в карточке этого пользователя в разрешенных ролях нет моей роли из расширения, соответственно отладчик в расширении проверку РольДоступна() дает ложь пришлось в конфигураторе назначить роль из расширения пользователю, тогда код выполняется но все равно в режиме предприятия в карточке пользователя в списке профилей есть новый созданный профиль но на закладке "Разрешенные действия (роли)" в списке ролей нет этой роли из расширения, Как быть? т.е. нужно чтобы назначенная роль из расширения отобразилась у пользователя, чтобы не устанавливать ее вручную в конфигураторе
|
|||
1
Обработка
10.08.23
✎
08:21
|
(0) С такими вопросами сразу озвучивай релиз платформы и конфа на поддержке с какого релиза...
|
|||
2
lirt82
10.08.23
✎
08:46
|
(1) 8.3.16, ЕРП, на полной поддержке релиз актуальный
|
|||
3
CepeLLlka
10.08.23
✎
08:55
|
(0)У этого пользователя есть роль - "Полные права"?
|
|||
4
lirt82
10.08.23
✎
08:56
|
(3) Да
|
|||
5
CepeLLlka
10.08.23
✎
08:59
|
(4)Значит это нормальное поведение системы. Конфа при записи пользователя анализирует его роли, и если есть роль - "Полные права", то система как бы понимает что и так уже полные права, нафига ещё другие роли добавлять и не добавляет их.
Для пользователей с полными правами добавляйте роль "Полные права" в расширение и там уже указывайте что этой роли доступные ваши объекты. |
|||
6
lirt82
10.08.23
✎
09:33
|
(5) как вариант в расширении дописать код при входе в базу, чтобы была проверка на профиль пользователя, если профиль у пользователя есть то назначаем ему эту роль программно
|
|||
7
CepeLLlka
10.08.23
✎
09:37
|
(6)Да зачем?
Ещё раз. Добавьте роль "Полные права" в расширение. Зайдите в роль, и поставьте нужные галочки на объекты созданные в расширении. Другими словами - Дайте роли "Полные права" доступ на объекты которые вы добавили в расширении. |
|||
8
CepeLLlka
10.08.23
✎
09:48
|
(6)Если же вам всё это нужно для того, чтобы использовать метод РольДоступна(), то тогда наверное роль "ПолныеПрава" тут как-то некорректно добавлена. Уж либо полные, либо нет.
Но я согласен что это не очень удобно. |
|||
9
lirt82
10.08.23
✎
10:24
|
Суть задачи в том чтобы была роль на проведение документа Операция рег учет, если у пользователя нет этой роли то провести он не может даже при наличии полных прав
|
|||
10
vicof
10.08.23
✎
11:00
|
"если у пользователя нет этой роли то провести он не может даже при наличии полных прав"
Полные они на то и полные, чтобы могли делать все в базе. И выдавать их не нужно всем подряд. |
|||
11
lirt82
10.08.23
✎
11:00
|
вопрос а где делать добавление роли?
|
|||
12
vicof
10.08.23
✎
11:15
|
В конфигураторе)
|
|||
13
lirt82
10.08.23
✎
11:18
|
(12) пример, в каком модуле?
|
|||
14
lirt82
10.08.23
✎
11:24
|
||||
15
lirt82
15.08.23
✎
08:54
|
апну...., сделал расширение все работает как надо, за исключением одной особенности, если пользователю установлю роль и перезайду то проверка на РольДоступна() говорит что роль не назначена, но если еще раз (второй) перезайти то РольДоступна() Истина, т.е. после второго раза входа в базу роль назначается, проверил расширение на файловой и на SQL базе, в обоих случаях после второго входа в базу роль назначается и если убираем роль из профиля то со второго раза входа в базу роль отменяется. Кто в курсе почему так? по логике после изменении и нового входа (нового сеанса пользователя) должно же сработать.
&Перед("ПередНачаломРаботыСистемы") Процедура Расш1_ПередНачаломРаботыСистемы() esc_ОбщийМодульДляНазначенияРоли.ДобавитьРоль(); КонецПроцедуры /////////////////////////////////////////////////////////// Процедура ДобавитьРоль() Экспорт Пользователь = ПользователиИнформационнойБазы.ТекущийПользователь(); Если Пользователь.Роли.Содержит(Метаданные.Роли.esc_ПроведениеОперации) Тогда Возврат; КонецЕсли; Пользователь.Роли.Добавить(Метаданные.Роли.esc_ПроведениеОперации); Пользователь.Записать(); КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |