Пользователи
Стд::Пользователи::Пользователи Тип-одиночка Доступность: Сервер
Менеджер пользователей приложения.
Сравнение
Ссылочное
Иерархия типа
Базовые типы: Объект, Одиночка
Примеры
Общие примеры
Создание пользователя
метод СоздатьПользователя(Представление: Строка, Телефон: Строка, ЭлПочта: Строка): Пользователи.Ссылка
// У пользователя может быть несколько учетных записей, созданных в разных сервисах аутентификации.
// Здесь создание локального сервиса учетных записей выполняется с целью упрощения примера.
знч УчетныеЗаписи = {СоздатьУчетнуюЗапись(Представление, СоздатьСервисУчетныхЗаписейЛокальный())}
// Создание описания пользователя в списке пользователей по умолчанию
пер ОписаниеПользователяСервиса = новый ОписаниеПользователяСервиса(СпискиПользователей.ПолучитьСписокПоУмолчанию().Ид, Представление)
ОписаниеПользователяСервиса = ОписаниеПользователяСервиса
.СЛогином(Представление)
.СТелефоном(Телефон)
.СЭлектроннойПочтой(ЭлПочта)
.СУчетнымиЗаписями(УчетныеЗаписи)
// Требуются права администратора или привилегированный режим, иначе будет исключение
ПользователиСервиса.Создать(ОписаниеПользователяСервиса)
// Подключение пользователя к приложению
// Требуются права администратора или привилегированный режим, иначе будет исключение
знч ПользовательСсылка = Пользователи.Подключить(ОписаниеПользователяСервиса.Ид).Ссылка
// Выдать пользователю права администратора
Пользователи.СделатьАдминистратором(ПользовательСсылка, Истина)
возврат ПользовательСсылка
;
метод СоздатьУчетнуюЗапись(Ид: Строка, СервисУчетныхЗаписей: СервисУчетныхЗаписей): УчетнаяЗапись
возврат новый УчетнаяЗапись(Ид, СервисУчетныхЗаписей)
;
метод СоздатьСервисУчетныхЗаписейЛокальный(): СервисУчетныхЗаписей
знч Сервис = новый СервисУчетныхЗаписей(ВидСервисаУчетныхЗаписей.Локальный, "LOCAL")
знч НастройкиСервиса = новый НастройкиСервисаУчетныхЗаписей(Сервис)
НастройкиСервиса.Включено = Истина
НастройкиСервиса.СоздаватьПользователяПриВходе = Ложь
возврат Сервис
;
Создание токена доступа для пользователя
метод СоздатьТокенДоступаПользователя(Ид: ИдПользователя): ДанныеЗапросаТокенаДоступа
// Генерация токена доступа
знч ДанныеЗапросаТокенаДоступа = ПользователиСервиса.СгенерироватьДанныеЗапросаТокенаДоступа(Ид)
// Поиск ссылки пользователя
знч ПользовательСсылка = Пользователи.Найти(Ид)
// Разрешить доступ по токену
Пользователи.РазрешитьДоступПоТокену(ПользовательСсылка, Истина)
возврат ДанныеЗапросаТокенаДоступа
;
Изменение контактных данных пользователя
метод ИзменитьКонтактныеДанныеПользователя(Ид: ИдПользователя, НовыйТелефон: Строка, НоваяЭлПочта: Строка)
// Поиск описания пользователя
знч ОписаниеПользователяСервиса = ПользователиСервиса.Найти(Ид)
если ОписаниеПользователяСервиса == Неопределено
возврат
;
// Создание копии описания пользователя с новыми контактными данными
знч ОписаниеПользователяНовый = ОписаниеПользователяСервиса
.СТелефоном(НовыйТелефон)
.СЭлектроннойПочтой(НоваяЭлПочта)
ПользователиСервиса.Изменить(ОписаниеПользователяНовый)
;
Получение признака запрета входа пользователя
метод ПолучитьПризнакЗапретаВходаПользователя(Ид: ИдПользователя): Булево?
// Поиск описания пользователя
знч ОписаниеПользователя = ПользователиСервиса.Найти(Ид)
если ОписаниеПользователя == Неопределено
возврат Неопределено
;
// Поиск ссылки на справочник по идентификатору пользователя
знч ПользовательСсылка = Пользователи.Найти(ОписаниеПользователя.Ид)
если ПользовательСсылка == Неопределено
возврат Неопределено
;
// Загрузка объекта справочника с блокировкой, требуется транзакция
исп Транзакции.Начать()
знч ПользовательОбъект = ПользовательСсылка.ЗагрузитьОбъект(Истина)
возврат ПользовательОбъект == Неопределено ? Неопределено : ПользовательОбъект.ЗапрещенВход
;
Свойства
ТекущийИдАутентификации
Доступность: Сервер
ТолькоЧтение
ТекущийИдАутентификации: ИдАутентификации?Текущий идентификатор аутентификации или Неопределено, если вход выполнен анонимно.
Позволяет понять, каким способом вошел пользователь (через обычный логин, Active Directory или другие сторонние сервисы).
ТекущийИдПользователя
Дос тупность: Сервер
ТолькоЧтение
ТекущийИдПользователя: ИдПользователя?Текущий идентификатор пользователя или Неопределено, если вход выполнен анонимно.
Этот идентификатор совпадает во всех приложениях, где подключен пользователь.
ТекущийПользователь
Доступность: Сервер
ТолькоЧтение
ТекущийПользователь: Пользователи.Ссылка?Текущий пользователь или Неопределено, если вход выполнен анонимно.
В отличие от идентификатора, ссылка специфична для приложения.
Методы
ЗапретитьВход
Доступность: Сервер
ЗапретитьВход(
Пользователь: Пользователи.Ссылка,
ЗапретитьВход: Булево)Исключения
ИсключениеДоступЗапрещен - если текущий пользователь не является администратором (или не включен привилегированный режим). ИсключениеНедопустимыйАргумент - если пользователь с данной ссылкой не существует.