|
Дополнительная аутентификация 1С предприятие ERP УФ | ☑ | ||
---|---|---|---|---|
0
Родом из детства
16.09.21
✎
12:29
|
Всем здравствуйте. Задача следующая:
Имеется рабочее место(типо цеха). В нем работает бригада. В бригаде, помимо обычных сотрудников(чьих учеток нет в пользователях), имеется начальник бригады(а его учетка уже имеется). Там стоит один комп, с открытой обработкой. В ней они фиксируют произведенную продукцию. Обработка запускается третьим лицом(то есть есть пользователь, который открывает обработку для всех цехов). В ней есть кнопка, позволяющая менять состав бригады, однако, воспользоваться ей может только начальник бригады(а не какой-нибудь другой струдник). Пользователь хочет, чтобы по нажатию на кнопку появлялось окно аутентификации, куда бы начальник вводил свои данные аутентификации, и, в случае, если они верны, он мог менять состав. При этом, текущий пользователь бы не менялся. То есть, по сути, мне нужно проверить - имеется ли пользователь с таким именем/паролем в базе. Но не могу понять, где храняться данные. И, может, уже есть что-то стандартное/готовое? |
|||
1
ДенисЧ
16.09.21
✎
12:35
|
Справочнки.Пользователи?
Да, вряд ли... |
|||
2
Родом из детства
16.09.21
✎
12:37
|
(1) Не нашел там пароля
|
|||
3
polosov
16.09.21
✎
12:53
|
(0) ЗаблокироватьРаботуПользователя() ?
|
|||
4
ДенисЧ
16.09.21
✎
12:54
|
(2) В допсвойства запиши.
|
|||
5
Родом из детства
16.09.21
✎
12:54
|
(3) честно говоря не шарю за эту функцию, но, судя по названию, мужикам из бригады после такого мува придется снова звать человека, который запускает обработку
|
|||
6
polosov
16.09.21
✎
12:57
|
(5) Тогда ПользователиИнформационнойБазу.ПолучитьПользователей() и далее смотри свои пароли
|
|||
7
Родом из детства
16.09.21
✎
12:59
|
(6) хм, попробую, спасибо)
|
|||
8
polosov
16.09.21
✎
13:00
|
(7) И связь со справочником через реквизит ИдентификаторПользователяИБ
|
|||
9
Родом из детства
16.09.21
✎
13:01
|
(8) ок)
|
|||
10
Родом из детства
16.09.21
✎
13:35
|
В общем, все вышло немного иначе
|
|||
11
Родом из детства
16.09.21
✎
13:35
|
&НаКлиенте
Процедура ПроверитьПароль(Команда) Результат = ПроверитьТекущийПарольПользователя(Пользователь, Пароль); Сообщить(?(Результат,"Норм", "Это ошибка")); КонецПроцедуры Функция ПолучитьХешПароля(Пароль) Экспорт Хеш = Новый ХешированиеДанных(ХешФункция.SHA1); Хеш.Добавить(Пароль); Возврат Base64Строка(Хеш.ХешСумма); КонецФункции Функция ПроверитьТекущийПарольПользователя(Пользователь, Пароль, РегистроНезависимый=Истина) Экспорт ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(Пользователь.ИдентификаторПользователяИБ); УстановитьПривилегированныйРежим(Истина); ХешТекущегоПароля = ПользовательИБ.СохраняемоеЗначениеПароля; УстановитьПривилегированныйРежим(Ложь); Если ХешТекущегоПароля = Пароль Тогда Возврат Истина КонецЕсли; // Пароль совпадает с СохраняемоеЗначениеПароля только в случае пустого значения ПозицияРазделителя = Найти(ХешТекущегоПароля, ","); Результат = Ложь; Если РегистроНезависимый Тогда Результат = ПолучитьХешПароля(ВРег(Пароль)) = Прав(ХешТекущегоПароля, СтрДлина(ХешТекущегоПароля) - ПозицияРазделителя); Иначе Результат = ПолучитьХешПароля(Пароль) = Лев(ХешТекущегоПароля, ПозицияРазделителя - 1); КонецЕсли; Возврат Результат; КонецФункции Функция ПолучитьСохраняемоеЗначение(Пароль) Экспорт Возврат ?(ЗначениеЗаполнено(Пароль),ПолучитьХешПароля(Пароль) + "," + ПолучитьХешПароля(ВРег(Пароль)),""); КонецФункции |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |