|
РольДоступна() или ПравоДоступа() ? | ☑ | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
0
OldCondom
25.07.18
✎
10:46
|
Извечный вопрос.
Всегда использовал конструкцию "и РольДоступна("ПолныеПрава"). Но тут возник спор с саповцами, что нарушаем саму парадигму разграничения прав(сам ни**я не понял). В целом, правда похоже на костыль дополнительная проверка на полные права. Допустим, надо всем ограничить доступ к справочнику, если нет прав "МожноРедактироватьЭтотСправочник". Как правильнее? Если РольДоступна("МожноРедактироватьЭтотСправочник") или РольДоступна("ПолныеПрава")
или Если ПравоДоступа("Изменение", Метаданные.Справочники.ЭтотСправочник)
? |
||||||||||
1
OldCondom
25.07.18
✎
10:48
|
Не понял, откуда здесь голосовалка?
|
||||||||||
2
lodger
25.07.18
✎
10:53
|
ПравоДоступа позволяет рулить правами из одного окна с ролями, тогда как РольДоступна заставляет тебя носится по коду и искать вызовы функции.
|
||||||||||
3
lodger
25.07.18
✎
10:53
|
имхо, РольДоступна только для совместимости со старыми конфами нужна.
ПравоДоступа |
||||||||||
4
rphosts
25.07.18
✎
10:54
|
(1) ну а как ты определишь предпочтения среди дочитавших до конца нулевой пост?
|
||||||||||
5
OldCondom
25.07.18
✎
10:58
|
(4) а, понял. Я думал это что-то нажал и оно само(с).
А по вопросу, я бы хотел уяснить, как правильно, желательно со ссылками на одноэс. Понимаю, что "правильно" - понятие растяжимое и будет немного каша, но все же какое-то понятие хочется усвоить. |
||||||||||
6
Serg_1960
25.07.18
✎
11:07
|
(0) А что тут не понятно? Пользователю может быть назначено несколько ролей и к конкретному объекту он может иметь конкретные права доступа на основании их. В зависимости от цели алгоритма можно требование наличие у пользователя конкретной роли (или совокупности их), но это нарушает сам принцип разграничения прав.
Ваш "саповец", в принципе, прав - вспомните об RLS. |
||||||||||
7
Локи-13
25.07.18
✎
11:11
|
(0) Зависит от задачи.
Право доступа у него может быть, а вот роли нет. Что тогда? Давать доступ или нет? Это две разные функции для разных задач. ПравоДоступа - проверяем перед выполнением операции с БД, чтобы не получить ошибку. РольДоступна - проверка по бизнес-процессу. У роли может вообще не быть галочек к объектам. Другое |
||||||||||
8
Serg_1960
25.07.18
✎
11:22
|
(7) "У роли может вообще не быть галочек к объектам" - эээ... то есть роль в качестве логического значения? Не эффективно, имхо, но имеет право быть.
|
||||||||||
9
lodger
25.07.18
✎
11:24
|
(7) для таких кейсов придумали привилегированный режим\модуль.
|
||||||||||
10
Cthulhu
25.07.18
✎
11:29
|
(7) угумц.. утрированно - возможность и способ, что нужно проверять - зависит от контекста.
Другое |
||||||||||
11
ildary
25.07.18
✎
11:32
|
А как быть с РольДоступна("ПолныеПрава") - у него разве есть аналоги?
|
||||||||||
12
Локи-13
25.07.18
✎
11:32
|
(9) причем тут привилегированный модель?
|
||||||||||
13
Локи-13
25.07.18
✎
11:34
|
(8) кстати еще бывают роли на формы, команды, печать документов
это вообще не доступ к базе |
||||||||||
14
Дебет
25.07.18
✎
11:46
|
написано же на ИТС про это
|
||||||||||
15
VladZ
25.07.18
✎
11:48
|
(0) Зависит от задачи. И это... Совет: не спорь с САПовцами. У них свои тараканы в голове.
|
||||||||||
16
Timon1405
25.07.18
✎
12:12
|
переделайте пункты в голосовалке:
-Роль я дрожащая или -право имею |
||||||||||
17
rastat150
25.07.18
✎
12:13
|
https://its.1c.ru/db/v8std/content/2149184386/hdoc
Для проверки прав доступа в коде следует использовать метод ПравоДоступа. Например, неправильно: Если РольДоступна("ДобавлениеИзменениеСтранМира") Тогда ... Если РольДоступна("ПросмотрОтчетаПопулярныеСтраны") Тогда ... правильно: Если ПравоДоступа("Редактирование", Метаданные.Справочники.СтраныМира) Тогда ... Если ПравоДоступа("Просмотр", Метаданные.Отчеты.ПопулярныеСтраны) Тогда ... Такой подход позволяет повысить устойчивость кода к пересмотру состава ролей в конфигурации. 4. В тех случаях, где роль не дает никаких прав на объекты метаданных, а служит только для определения того или иного дополнительного права, следует использовать метод РольДоступна. При использовании в конфигурации Библиотеки стандартных подсистем (БСП) следует использовать функцию РолиДоступны общего модуля Пользователи: Например, без использования БСП: Если РольДоступна(...) Или <ЭтоПолноправныйПользователь> Или ПривилегированныйРежим() Тогда ... Либо аналогичная проверка с использованием БСП: Если Пользователи.РолиДоступны(...) Тогда ... |
||||||||||
18
Tonik992
25.07.18
✎
12:16
|
(17) По-моему самый исчерпывающий ответ.
Другое |
||||||||||
19
OldCondom
25.07.18
✎
12:20
|
(17) Огромное спасибо!
(18) во истину! |
||||||||||
20
Cool_Profi
25.07.18
✎
12:35
|
(17) @Либо аналогичная проверка с использованием БСП:@
За использование БСП нужно лицом к стенке и пулю в лоб... |
||||||||||
21
ildary
25.07.18
✎
12:37
|
(20) А как быть с типовыми? Отказаться от БСП и постоянно костылить своё?
|
||||||||||
22
MUXACb
25.07.18
✎
12:41
|
(17) Не работает если нужно проверить наличие запрещающей роли у пользователя с полными правами
|
||||||||||
23
Tonik992
25.07.18
✎
12:47
|
(22) Запрещающая роль?
А можете пример привести. Никогда не приходился стакливаться с выдачей роли, которая что-то бы запрещала. |
||||||||||
24
ildary
25.07.18
✎
12:50
|
(23) наверное что-то вроде
Если РольДоступна( ЗапретПродаж ) Тогда Отказ = Истина; КонецЕсли; |
||||||||||
25
MUXACb
25.07.18
✎
12:51
|
(23) В ЗУП 3 запретить редактирование среднего заработка
(24) Вернет Ложь если доступны полные права |
||||||||||
26
Мандалай
25.07.18
✎
12:57
|
Читаем стандарты разработки
ПравоДоступа |
||||||||||
27
MUXACb
25.07.18
✎
13:11
|
(26) Можно пример для ситуации в (22)?
|
||||||||||
28
YaFedor
25.07.18
✎
13:14
|
(27) Не существует "запрещающих" ролей в 1с 8, а жаль
|
||||||||||
29
Tonik992
25.07.18
✎
15:03
|
(28) Зато существует "запрещающая проверка" на наличие роли :-)
|
||||||||||
30
YaFedor
25.07.18
✎
15:37
|
(29) Об этом все уже написано в (17)
|
||||||||||
31
Мандалай
25.07.18
✎
15:43
|
(27)Значит неверная архитектура решения, если требуется применять методику, нерекомендованную вендором.
|
||||||||||
32
Nikoss
20.11.18
✎
11:21
|
А когда темы в архив сдаются? почти 4 месяца теме...
из (17) [не рекомендуется использовать ролевую настройку видимости в элементах форм] так а нахрена они вообще сделали эту возможность? |
||||||||||
33
Остап Сулейманович
20.11.18
✎
11:23
|
(32) Рулить нужно доступностью, а не видимостью. Причин много.
|
||||||||||
34
Nikoss
20.11.18
✎
11:49
|
(33) можно подробнее про причин много?
так зачем в платформе 1С дают возможно делать то, что не рекомендует делать таже 1С? |
||||||||||
35
Cyberhawk
20.11.18
✎
11:58
|
(34) Не слушай его. На ИТС в том пункте речь только о корневых подсистемах и начальной страницы. Про формы объектов там конечно же речи нет и видимость по ролям использовать можно и нужно.
|
||||||||||
36
Nikoss
20.11.18
✎
14:12
|
(35) По тексту речь как раз о формах объектов:
1. В случае большого количества ролей в конфигурации (от нескольких десятков) не рекомендуется использовать ролевую настройку видимости в элементах форм (просмотр и редактирование реквизитов по ролям, пользовательскую видимость полей формы по ролям, использование команд по ролям). Вместо этого следует придерживаться следующих подходов: ..... |
||||||||||
37
Cyberhawk
20.11.18
✎
14:16
|
(36) Этот пункт только про значительное количество ролей и про то, что вместо этого (в случае большого количества) надо использовать проверку кодом
|
||||||||||
38
Nikoss
20.11.18
✎
14:29
|
(37) несколько десятков ролей наверное даже в самописках уже нормой считается. Поэтому, видимо, можно брать за правило этот пункт.
|
||||||||||
39
Cyberhawk
20.11.18
✎
14:30
|
(38) Скорее не на абсолютное количество надо смотреть, а на их "качество": если это атомарные роли (где на каждый справочник или документ как минимум две роли - отдельно на просмотр и отдельно на добавление+изменение), тогда про видимость по ролям на формах объектов можно забыть
|
||||||||||
40
Cyberhawk
20.11.18
✎
14:31
|
А если это "функциональные" роли (прям по должностям, например), тогда видимость по ролям хорошо заходит
|
||||||||||
41
Вафель
20.11.18
✎
14:55
|
видимость по ролям очень сложно отлаживать
|
||||||||||
42
Вафель
20.11.18
✎
14:56
|
поэтому видимость лучше в коде. кстате по этой же причине 1с рекомендует условное оформление в коде
|
||||||||||
43
Nikoss
21.11.18
✎
07:50
|
(42) тьфу, еще и условное кодом делать...((
Эти рекомендации тоже с ИТС стандартов разработки? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |