Имя: Пароль:
1C
1С v8
Можно ли программно присвоить другую роль пользователю в 8.2?
0 EvgeniuXP
 
11.08.11
17:56
Т.е. когда система запускается, надо в зависимости от условий присвоить ему роль, либо роль 1, либо роль 2 - у второго человек точно также, но наоборот, можно другими путями, но там долго и лениво... а вот роль можно поменять? пробовал добавить, но он не активный, хотя в списке ролей у текущего пользователя данная роль есть, но если читать права на какой-то объект - то прав нет :(
1 Мимохожий Однако
 
11.08.11
18:08
Завести второго пользователя с тем же ФИО и другими правами не предлагать?
2 Krendel
 
11.08.11
18:16
задача чтобы чел коннектился по удаленке или через веб и имел ограничения по правам доступа, а через терминал полные так чтоли?
3 qeos
 
11.08.11
18:19
есть.. смотри ПользователиИнформационнойБазы
4 unregistered
 
11.08.11
18:21
Если НЕ ПользовательБД.Роли.Содержит(Метаданные.Роли.Найти("назначаемаяРоль")) Тогда
  ПользовательБД.Роли.Добавить(Метаданные.Роли.Найти("назначаемаяРоль"));
  ПользовательБД.Записать();
КонецЕсли;
5 unregistered
 
11.08.11
18:22
+ к (4)

Только делать это придется где-то в привилегированном модуле, т.к. подобные закидоны (добавление ролей) доступно только пользователям - администраторам.
6 zladenuw
 
11.08.11
18:30
так если одну пользователю может проще права определить заранее? если есть условие при запуске, то в РЛС можно передать параметр который сможет определить правила. читай РЛС.
7 Fragster
 
гуру
11.08.11
18:32
роль-то добавить можно, но вот действовать она начнет только после перезахода.
в (0) вообще какой-то маразм, если честно
8 EvgeniuXP
 
11.08.11
19:21
(4) вот это и делал, только права прежние остаются, если применить функцию ПравоДоступа() :(((

(2) нет, просто есть два человека и они друг друга заменяют, кто первый зашел у того более полные права - а уж там они договорятся, кто будет первым заходить, зато когда в отпуск первый уйдет, не надо будет пароль узнавать первого и второй сможет работать спокойно. :)
9 zladenuw
 
11.08.11
19:27
(8) честно гон.... права должны быть определенными а не так. проще тогда проверять кто в отпуске или нет и при запуске давать права или на то или на это.... и все с помощью рлс тогда не прогадаешь.... и не будешь мучатся
10 EvgeniuXP
 
11.08.11
20:00
(9) это понятно, что лучше каждому и свои права, но жизнь есть жизнь и диктует свои условия более сложные :)
11 EvgeniuXP
 
12.08.11
21:00
решение:
1. Сделать параметр сеанса, в который присваивать истина или ложь для помощника администратора (если второй заходит истина, если первый ложь).
2. Сделать константу, которая при первом входе главного администратора (кто первый успел (один из двух) присвоить Истина. При выходе - ложь - на тот случай если много откроют сеансов и можно было в следующий раз зайти как главный администратор.
3. Использовать привилегированный режим, через который можно узнать список активных пользователей относящиеся к одной роли.
4. На форме с помощью параметра сеанса отслеживать интерфейс - простой или сложный отображать для данного пользователя.

и всё - намного легче.
12 AlexNew
 
12.08.11
21:09
А документацию читать не?
13 EvgeniuXP
 
12.08.11
21:57
(12) в документации написано: роль добавить можно, но требуется перезапуск. Пользователи это не поймут двойного запуска :)
14 Dethmont
 
13.08.11
04:06
А обоим поставить одинаковы права нельзя что ли ??? Что за геморой то такой "кто первый зайдет"
15 EvgeniuXP
 
13.08.11
15:01
(14) этот "геморой" всего около 15 строк кода :)
16 Axel2009
 
13.08.11
15:14
(15) на ролях то как это отразится? что может 1ый, из того что 2му запрещено?
17 EvgeniuXP
 
13.08.11
15:16
(16) настройка прав через параметр, где можно одному читать, а другому изменять.
18 Axel2009
 
13.08.11
16:16
(17) ну значит сделано не через роли, а через параметры сеанса?
19 Axel2009
 
13.08.11
16:17
(18) вообще это делается через функциональные опции..
20 EvgeniuXP
 
13.08.11
18:34
(19) если бы кнопка еще бы исчезала на форме в зависимости от функциональной опции - но в данном релизе 8.2.14.528 она не исчезает...
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан