DSSUsersManager

public final class DSSUsersManager

Класс для управления и выполнения “активных” действий над пользователями DSS на стороне SDK. Используется для работы с УКЭП (квалифицированная подпись)

Публичные параметры

  • Перечисление доступных объектов DSSUser

    Declaration

    Swift

    public static var users: [DSSUser] { get }

Работа с пользователем

  • Переименование пользователя в хранилище

    После переименования переданный экземпляр пользователя (DSSUser) станет неактуальным. Обновлённый экземпляр можно получить, используя DSSUsersManager.users

    Declaration

    Swift

    public static func rename(
        user: DSSUser,
        newName: String)

    Parameters

    user

    Пользователь, чьё имя нужно переименовать

    newName

    Новое имя пользователя

  • Удаление пользователя из хранилища

    Declaration

    Swift

    public static func delete(
        user: DSSUser)

    Parameters

    user

    Пользователь для удаления

  • Обновление статуса DSSUser информацией с сервера

    Declaration

    Swift

    public static func updateStatus(
        user: DSSUser,
        _ callback: @escaping (_ result: Result<DSSUser, Error>) -> Void)

    Parameters

    user

    Пользователь для обновления

    callback

    Замыкание возвращает результат

    result

    В случае успеха вернет экземпляр обновлённого пользователя. Иначе — возвращает ошибку

Импорт

  • Создание “неподтвержденной” учётной записи в DSS с получением “вектора аутентификации” к ней с использованием QR-кода

    Для запроса используется Kinit, полученный из QR-кода.

    Запускает последовательность экранов SDK: запрос кода активации (при необходимости), задание пароля и использование Face ID / Touch ID (если разрешено).

    После выполнения isReadyToSign = false, созданная учетная запись имеет статус installed.

    Declaration

    Swift

    public static func createDSSUserWithInitQR(
        name: String,
        pushNotificationsData: PushNotificationsData? = nil,
        deviceName: String,
        externalId: String?,
        alias: String?,
        requirePassword: Bool,
        callback: @escaping (_ result: Result<DSSUser, Error>) -> Void)

    Parameters

    name

    Имя для сохранения учётной записи

    pushNotificationsData

    Данные для отправки пуш-уведомлений

    deviceName

    Отображаемое дружественное имя устройства

    externalId

    Внешний идентификатор

    alias

    Уникальный человекочитаемый идентификатор, используемый для подтверждения владения МУ пользователем. Если данный параметр отсутствует в запросе, то его значение будет создано автоматически на стороне сервера.

    requirePassword

    Нужно ли установить пароль

    callback

    Замыкание возвращает результат

    result

    В случае успеха вернет экземпляр неподтверждённого пользователя. Иначе — возвращает ошибку

Саморегистрация

  • Создание “неподтвержденной” учётной записи в DSS с получением “вектора аутентификации” к ней

    Запускает последовательность экранов SDK: задание пароля и использование Face ID / Touch ID (если разрешено).

    После выполнения isReadyToSign = false, созданная учётная запись имеет статус installed.

    Declaration

    Swift

    public static func createDSSUser(
        serviceURL: URL,
        name: String,
        pushNotificationsData: PushNotificationsData? = nil,
        deviceName: String,
        externalId: String?,
        alias: String?,
        requirePassword: Bool,
        callback: @escaping (_ result: Result<DSSUser, Error>) -> Void)

    Parameters

    serviceURL

    Адрес сервера

    name

    Имя для сохранения учётной записи

    pushNotificationsData

    Данные для отправки пуш-уведомлений

    deviceName

    Отображаемое дружественное имя устройства

    externalId

    Внешний идентификатор

    alias

    Уникальный человекочитаемый идентификатор, используемый для подтверждения владения МУ пользователем. Если данный параметр отсутствует в запросе, то его значение будет создано автоматически на стороне сервера.

    requirePassword

    Нужно ли установить пароль

    callback

    Замыкание возвращает результат

    result

    В случае успеха вернет экземпляр неподтверждённого пользователя. Иначе — возвращает ошибку

Функции для персонализации второго и последующего устройств

  • Создание запроса на добавление устройства к учётной записи DSS

    Запускает последовательность экранов SDK: задание пароля и использование Face ID / Touch ID (если разрешено).

    Создаёт нового неподтверждённого пользователя (user.state = .approveRequired) и сохраняет его в хранилище.

    Подтверждение с другого устройства выполняется через DSSDevicesManager.approve(...).

    Declaration

    Swift

    public static func createDSSUserWithApproval(
        serviceURL: URL,
        uid: String,
        name: String,
        pushNotificationsData: PushNotificationsData? = nil,
        deviceName: String,
        externalId: String?,
        alias: String?,
        requirePassword: Bool,
        callback: @escaping (_ result: Result<DSSUser, Error>) -> Void)

    Parameters

    serviceURL

    Адрес сервера

    uid

    Идентификатор пользователя, к которому нужно подключить устройство

    name

    Имя для сохранения учётной записи

    pushNotificationsData

    Данные для отправки пуш-уведомлений

    deviceName

    Отображаемое дружественное имя устройства

    externalId

    Внешний идентификатор

    alias

    Уникальный человекочитаемый идентификатор, используемый для подтверждения владения МУ пользователем. Если данный параметр отсутствует в запросе, то его значение будет создано автоматически на стороне сервера.

    requirePassword

    Нужно ли установить пароль

    callback

    Замыкание возвращает результат

    result

    В случае успеха вернет экземпляр неподтверждённого пользователя. Иначе — возвращает ошибку

  • Подтверждение присоединения мобильного устройства к учётной записи

    Запускает последовательность экранов SDK: подтверждение учётной записи и сканирование QR-кода (если необходимо) Выполнение возможно только при статусе учётной записи DSS notVerified.

    Перед выполнением необходимо выполнить DSSUsersManager.updateStatus для получения актуального статуса учётной записи пользователя.

    Учётная запись пользователя на DSS переводится в статус Active.

    Declaration

    Swift

    public static func acceptAccountChanges(
        user: DSSUser,
        callback: @escaping (_ result: Result<DSSUser, Error>) -> Void)

    Parameters

    user

    Пользователь мобильного устройства

    callback

    Замыкание возвращает результат

    result

    В случае успеха вернёт экземпляр подтверждённого пользователя. Иначе — возвращает ошибку

  • Проверка статуса запроса на добавление устройства к учётной записи DSS

    Проверяет текущий статус устройства. Если статус .approveRequired, то запускает экран SDK с QR-кодом.

    Declaration

    Swift

    public static func checkApprovalStatus(
        unapprovedUser: DSSUser,
        callback: @escaping (_ result: Result<DSSUser, Error>) -> Void)

    Parameters

    unapprovedUser

    Пользователь, чей статус нужно проверить

    callback

    Замыкание возвращает результат

    result

    Возвращает пользователя, если он подтверждён. Иначе — возвращает ошибку

Работа с паролем

  • Предъявление пароля на “вектор аутентификации”

    Запускает последовательность экранов SDK: запрос текущего пароля. Если используется Face ID / Touch ID, то появится системный интерфейс.

    После выполнения user.isReadyToSign станет true

    Declaration

    Swift

    public static func submitPassword(
        user: DSSUser,
        callback: @escaping (_ result: Result<Void, Error>) -> Void)

    Parameters

    user

    Пользователь, для которого предъявляется пароль

    callback

    Замыкание возвращает результат

    result

    В случае успеха не возвращает ничего. Иначе — возвращает ошибку

  • Изменение пароля на “вектор аутентификации”

    Запускает последовательность экранов SDK, выполняющих запрос текущего пароля и установки нового пароля. После выполнения isReadyToSign = false

    Declaration

    Swift

    public static func changePassword(
        user: DSSUser,
        callback: @escaping (_ result: Result<Void, Error>) -> Void)

    Parameters

    user

    Пользователь, для которого устанавливается новый пароль

    callback

    Замыкание возвращает результат

    result

    В случае успеха не возвращает ничего. Иначе — возвращает ошибку

Отзыв ключа

  • Отзыв “вектора аутентификации” на сервере DSS. Делает вектор недействительным

    Declaration

    Swift

    public static func revoke(
        user: DSSUser,
        callback: @escaping (_ result: Result<Void, Error>) -> Void)

    Parameters

    user

    Пользователь, для которого отзывается “вектор аутентификации”

    callback

    Замыкание возвращает результат

    result

    В случае успеха не возвращает ничего. Иначе — возвращает ошибку

История операций

  • Получение истории операций пользователя на сервисе.

    Declaration

    Swift

    public static func getOperationsHistory(
        user: DSSUser,
        count: Int = 1,
        bookmark: Int?,
        operationsCodes: [Int] = [],
        callback: @escaping (_ result: Result<DSSOperationsHistory, Error>) -> Void)

    Parameters

    user

    Пользователь, чью историю операций нужно показать

    count

    Количество операций для показа

    bookmark

    Идентификатор записи

    operationsCodes

    Коды операций для отображения

    callback

    Замыкание возвращает результат

    result

    Возвращает историю операций или ошибку