|
Поведение функции РольДоступна() | ☑ | ||
---|---|---|---|---|
0
ildary
20.12.16
✎
08:43
|
Уважаемые специалисты, подскажите пожалуйста, как обойти эту проблему:
в конфигурацию добавил новую роль "_ИзменениеДопДанных" и для проверки этой роли применяю оператор РольДоступна( "_ИзменениеДопДанных" ), но вижу, что возвращается ложь, как у пользователя с полными правами, так и у урезанного, но эта роль привязана не к нему, а к его группе. То есть есть некий профиль _Пользователь, который привязан к группе доступа _Пользователь, в которую входит группа пользователей _Опт, а в этой группе _Опт есть пользователь Иванов, и вот у Иванова РольДоступна( "_ИзменениеДопДанных" ) возвращает Ложь. |
|||
1
DrZombi
гуру
20.12.16
✎
08:48
|
(0) обнови роль для всей группы :)
|
|||
2
Лефмихалыч
20.12.16
✎
08:48
|
открой пользователя в конфигураторе и посмотри, есть ли реально у него эта роль. Наверняка нету.
|
|||
3
DrZombi
гуру
20.12.16
✎
08:49
|
>>> и вот у Иванова РольДоступна( "_ИзменениеДопДанных" ) возвращает Ложь
Это означает, что пользователю "Иванову", не назначена роль. В конфигураторе :) |
|||
4
Лефмихалыч
20.12.16
✎
08:49
|
роли могут не назначаться у пользователей с полными правами, если это все на БСП
|
|||
5
Stepa86
20.12.16
✎
08:52
|
+(4) Поэтому правильнее юзать ПравоДоступа( . А еще правильнее проверять не через строку РольДоступна( "_ИзменениеДопДанных" ) а через метаданные РольДоступна( Метаданные.Роли._ИзменениеДопДанных )
|
|||
6
ildary
20.12.16
✎
08:53
|
Прошу прощения, что не сказал, что речь идет о БСП (УТ11). В конфигураторе ничего не назначал, обновление вспомогательных данных (ИнструментыРазработчикаОбновлениеВспомогательныхДанных) делал.
(5) а ПравоДоступа() будет работать для сложной схемы Роль-Профиль-ГруппаДоступа-ГруппаПользователей-Пользователь? |
|||
7
Лефмихалыч
20.12.16
✎
08:59
|
(6) адова каша. Группа пользователей не дает ни каких прав.
Смотря, что и зачем ты там проверяешь - так сразу не ответить на твой вопрос |
|||
8
ildary
20.12.16
✎
09:16
|
(7) Если зайти в справочник пользователей, с включенной опцией использовать группы, то всех пользователей можно раскидать по группам. При этом присваивать группы доступа можно не пользователям поименно, а их группам (открыть группу пользователя, перейти на закладку "права доступа".
А проверяю я права в совсем другом месте - некая обработка при открытии в зависимости от ролей пользователя показывает или скрывает кнопки на своей форме. Я начал делать проверку прав с помощью РольДоступна() и увидел, что она работает не так, как ожидалось. |
|||
9
VladZ
20.12.16
✎
09:23
|
РольДоступна не проверяет наличие роли у группы. Проверяется доступность роли для текущего пользователя (без учета группы).
|
|||
10
VladZ
20.12.16
✎
09:24
|
(6) Вот такие дикие схемы " Роль-Профиль-ГруппаДоступа-ГруппаПользователей-Пользователь" - нужно проверять самому (дописывать код)
|
|||
11
ildary
20.12.16
✎
09:36
|
(10) автор дикой схемы - фирма 1С. Я в ней ничего не менял, я ей только пользуюсь.
Я нашел - в модуле УправлениеДоступом есть функция ЕстьРоль() и она делает то, что мне нужно. Учебники по новым конфигурациям (УТ11, БП3, ERP) - должны содержать на заглавной странице - "Забудьте все, что вы учили ранее". |
|||
12
VladZ
20.12.16
✎
09:38
|
(11) Учебники по новым конфигурациям (УТ11, БП3, ERP) должны сжигаться вместе с новыми конфигурациями...
|
|||
13
ildary
20.12.16
✎
09:39
|
(12) читаю и плАчу. Но справедливости ради - побившись башкой об конфигуратор - найти решение все-таки можно.
|
|||
14
ildary
20.12.16
✎
09:42
|
Резюме - функция РольДоступна() в новых конфигурациях годится только как РольДоступна( "ПолныеПрава" ) - для проверки на админа
|
|||
15
Лодырь
20.12.16
✎
09:43
|
(12) Вместе с авторами?
|
|||
16
Лефмихалыч
20.12.16
✎
09:46
|
(12) язычник-старовер
|
|||
17
VladZ
20.12.16
✎
09:53
|
(15) Ну, была такая мысль, не скрою. НО озвучивать не стал ибо статья.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |