Документация
ОС Аврора 5.0.1

Класс DeviceLock

(Sailfish::Mdm::DeviceLock)

Класс DeviceLock управляет кодами безопасности и блокировкой устройства. Подробнее…

Заголовочный файл: #include <mdm-devicelock.h>

Публичные типы

  • enum ClearOption { ShutdownAfterClear, RebootAfterClear, WipePartitions, ClearExternalMedia }
  • flags ClearOptions
  • enum ManagerLockoutMode { NoManagerLockout, RecoverableManagerLockout, PermanentManagerLockout }
  • enum Result { Success, Failure, SecurityCodeExpired, SecurityCodeInHistory, ..., NoSuchUser }
  • enum State { Unlocked, Locked, ManagerLockout, CodeEntryLockout, Undefined }

Свойства

Публичные методы

Публичные слоты

void handleMethodActionCompleted(const QString &method, const QString &action)
void handleMethodOptionChanged(const QString &method, const QString &key, const QDBusVariant &value)
void handleStateChanged(int state)
void handleUserMethodActionCompleted(uint uid, const QString &method, const QString &action)

Сигналы

Статические публичные члены

DeviceLock::Result authInputResult(const QDBusError &err)
DeviceLock::Result authInputResult(const QString &err)

Подробное описание

Класс DeviceLock управляет кодами безопасности и блокировкой устройства.

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

Для использования данного класса в qmake-настройки проекта клиента следует добавить следующее:

 CONFIG += link_pkgconfig
 PKGCONFIG += sailfishmdm

и затем #include <mdm-devicelock.h>.

Пример использования:

 #include <mdm-devicelock.h>
 void setOrClearDeviceLock(bool lockout, QObject *parent)
 {
     Sailfish::Mdm::DeviceLock *lock = new Sailfish::Mdm:DeviceLock(parent);
     if (lockout) {
         lock->setLockoutMode(Sailfish::Mdm::DeviceLock::RecoverableManagerLockout);
         QObject::connect(lock, &Sailfish::Mdm::DeviceLock::lockoutModeChanged, [] {
             qInfo() << "Устройство заблокировано";
         });
         QObject::connect(lock, &Sailfish::Mdm::DeviceLock::lockoutModeError, [] {
             qInfo() << "Не удалось выполнить блокировку устройства";
         });
     } else {
         lock->setLockoutMode(Sailfish::Mdm::DeviceLock::NoManagerLockout);
         QObject::connect(lock, &Sailfish::Mdm::DeviceLock::lockoutModeChanged, []() {
             qInfo() << "Блокировка снята";
         });
         QObject::connect(lock, &Sailfish::Mdm::DeviceLock::lockoutModeError, []() {
             qInfo() << "Не удалось снять блокировку";
         });
     }
 }

Описание типов класса

enum DeviceLock::ClearOption flags DeviceLock::ClearOptions

В данном перечислении описаны опции, которые могут применяться при выполнении clearDevice. При выполнении этой функции можно указать несколько параметров с помощью поразрядного OR.

Константа Значение Описание
Sailfish::Mdm::DeviceLock::ShutdownAfterClear 0x00 После очистки устройство автоматически выключится
Sailfish::Mdm::DeviceLock::RebootAfterClear 0x01 После очистки устройство будет автоматически перезагружено
Sailfish::Mdm::DeviceLock::WipePartitions 0x02 В результате очистки все разделы будут обнулены
Sailfish::Mdm::DeviceLock::ClearExternalMedia 0x04 Данные из внешнего хранилища также будут удалены

Тип ClearOptions type — это typedef для QFlags<ClearOption>. Он хранит комбинацию OR значений ClearOption.

enum DeviceLock::ManagerLockoutMode

В данном перечислении описаны изменения, которые диспетчер устройств может внести в состояние блокировки устройств.

Константа Значение Описание
Sailfish::Mdm::DeviceLock::NoManagerLockout 0 Сбрасывает любое восстанавливаемое состояние блокировки
Sailfish::Mdm::DeviceLock::RecoverableManagerLockout 1 Переводит устройство в обратимое состояние ManagerLockout
Sailfish::Mdm::DeviceLock::PermanentManagerLockout 2 Переводит устройство в необратимое состояние ManagerLock

enum DeviceLock::Result

В данном перечислении описаны возможные результаты операций с изменением и истечением срока годности паролей или кодов безопасности.

Константа Значение Описание
Sailfish::Mdm::DeviceLock::Success 0
Sailfish::Mdm::DeviceLock::Failure -1
Sailfish::Mdm::DeviceLock::SecurityCodeExpired -2
Sailfish::Mdm::DeviceLock::SecurityCodeInHistory -3
Sailfish::Mdm::DeviceLock::LockedOut -4
Sailfish::Mdm::DeviceLock::Evaluating -5
Sailfish::Mdm::DeviceLock::UserSettingsSyntaxFail -6
Sailfish::Mdm::DeviceLock::LoginTTLFail -7
Sailfish::Mdm::DeviceLock::LoginScheduleFail -8
Sailfish::Mdm::DeviceLock::LoginPassFail -9
Sailfish::Mdm::DeviceLock::NoMeetRequirements -10 Некорректный ввод
Sailfish::Mdm::DeviceLock::NoSuchUser -11

enum DeviceLock::State

В данном перечислении описаны возможные состояния устройства, возвращаемые службой блокировки устройства.

Примечание — Экстренные вызовы доступны, даже если устройство заблокировано.

Константа Значение Описание
Sailfish::Mdm::DeviceLock::Unlocked 0 Устройство разблокировано и может использоваться
Sailfish::Mdm::DeviceLock::Locked 1 Устройство заблокировано пользователем, для использования устройства его следует разблокировать
Sailfish::Mdm::DeviceLock::ManagerLockout 2 Устройство заблокировано приложением MDM, разблокировка возможна только через приложение MDM
Sailfish::Mdm::DeviceLock::CodeEntryLockout 3 Устройство было заблокировано в результате ввода некорректных кодов безопасности
Sailfish::Mdm::DeviceLock::Undefined 4 Неизвестное состояние блокировки устройства

Описание свойств

changingSecurityCode : const bool

Истинно, если в настоящий момент выполняется смена кода безопасности для устройства.

Значение этого свойства обновляется при изменении состояния операции (начало, завершение или отказ) в результате вызова метода setSecurityCode.

Методы доступа:

  • bool isChangingSecurityCode() const

Сигнал уведомления:

  • void changingSecurityCodeChanged()

clearingDevice : const bool

Истинно, если в настоящий момент устройство очищается.

Значение этого свойства обновляется при изменении состояния операции (начало, завершение или отказ) в результате вызова метода clearDevice.

Методы доступа:

  • bool isClearingDevice() const

Сигнал уведомления:

  • void clearingDeviceChanged()

homeEncrypted : const bool

Истинно, если домашний раздел зашифрован.

Методы доступа:

  • bool isHomeEncrypted()

settingLockoutMode : const bool

Истинно, если в настоящий момент изменяется режим блокировки устройства.

Значение этого свойства обновляется при изменении состояния операции (начало, завершение или отказ) в результате вызова метода setLockoutMode.

Методы доступа:

  • bool isSettingLockoutMode() const

Сигнал уведомления:

  • void settingLockoutModeChanged()

state : const State

Содержит текущее состояние блокировки устройства.

Значение этого свойства обновляется при изменении состояния блокировки устройства, возвращаемого соответствующей службой.

Методы доступа:

  • State state() const

Сигнал уведомления:

  • void stateChanged()

Описание методов класса

DeviceLock::DeviceLock(QObject *parent = nullptr)

Конструктор по умолчанию для класса DeviceLock.

DeviceLock::~DeviceLock()

Деструктор для класса DeviceLock.

[static] DeviceLock::Result DeviceLock::authInputResult(const QDBusError &err)

[static] DeviceLock::Result DeviceLock::authInputResult(const QString &err)

Конвертирует error, полученную через D-Bus, в DeviceLock::Result.

void DeviceLock::clearDevice(ClearOptions options = ShutdownAfterClear)

Пытается очистить устройство в соответствии с указанными options.

Эта операция асинхронная.

При успехе испускается сигнал deviceCleared. Иначе испускается сигнал clearDeviceError.

Следующие опции options могут быть указаны: ShutdownAfterClear, RebootAfterClear, WipePartitions.

[signal] void DeviceLock::clearDeviceError()

Сигнал испускается, если в результате попытки очистки файловой системы устройства путём вызова метода clearDevice произошла ошибка.

void DeviceLock::clearPassword(uid_t uid)

Очищает пароль заданного пользователя uid. Пользователь должен выбрать новый пароль, который должен соответствовать текущей политике паролей. Пользователь не сможет перезагрузить или включить устройство до установки нового пароля, так как для разблокировки зашифрованного раздела /home требуется ввести правильный пароль.

Эта операция асинхронная.

При успехе испускается сигнал clearPasswordChanged. Иначе испускается сигнал clearPasswordError.

[signal] void DeviceLock::clearPasswordChanged()

Сигнал испускается, когда пароль для указанного пользователя сброшен вызовом clearPassword.

[signal] void DeviceLock::clearPasswordError(Result err)

[signal] void DeviceLock::deviceCleared()

Сигнал испускается после успешной очистки файловой системы устройства путём вызова метода clearDevice.

void DeviceLock::expirePassword(uid_t uid)

Завершает срок действия пароля данного пользователя uid. Пользователь должен изменить пароль при следующем входе в систему после успешной аутентификации с использованием текущего пароля.

Эта операция асинхронная.

В случае успеха испускается сигнал expirePasswordChanged. В противном случае испускается сигнал expirePasswordError.

[signal] void DeviceLock::expirePasswordChanged()

Сигнал испускается, когда пароль для указанного пользователя просрочен в результате вызова метода expirePassword.

[signal] void DeviceLock::expirePasswordError(DeviceLock::Result err)

void DeviceLock::expirePasswordForAll()

Завершает срок действия паролей всех пользователей, включая администраторов. Все пользователи должны изменить свои пароли при следующем входе в систему после успешной аутентификации.

Эта операция асинхронная. В случае успеха испускается сигнал expirePasswordForAllChanged. Иначе испускается сигнал expirePasswordForAllError.

[signal] void DeviceLock::expirePasswordForAllChanged()

Сигнал испускается, когда пароли для всех пользователей просрочены в результате вызова метода expirePasswordForAll.

[signal] void DeviceLock::expirePasswordForAllError()

Сигнал испускается, если вызов метода expirePasswordForAll окончился неудачей.

[slot] void DeviceLock::handleMethodActionCompleted(const QString &method, const QString &action)

[slot] void DeviceLock::handleMethodOptionChanged(const QString &method, const QString &key, const QDBusVariant &value)

[slot] void DeviceLock::handleStateChanged(int state)

[slot] void DeviceLock::handleUserMethodActionCompleted(uint uid, const QString &method, const QString &action)

[signal] void DeviceLock::lockoutModeChanged()

Сигнал испускается после изменения режима блокировки устройства в результате вызова метода setLockoutMode.

[signal] void DeviceLock::lockoutModeError()

Сигнал испускается, если вызов метода setLockoutMode окончился неудачей.

[signal] void DeviceLock::securityCodeChangeError(DeviceLock::Result err)

[signal] void DeviceLock::securityCodeChanged()

Сигнал испускается после успешного изменения кода безопасности в результате вызова метода setSecurityCode.

[signal] void DeviceLock::securityCodeUidChangeError(DeviceLock::Result err)

[signal] void DeviceLock::securityCodeUidChanged()

Сигнал испускается, когда удачно установлен код безопасности в результате вызова метода setSecurityCodeUid.

void DeviceLock::setLockoutMode(ManagerLockoutMode mode, const QVariantMap &feedback = QVariantMap())

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

Эта операция асинхронная.

При успехе испускается сигнал lockoutModeChanged. Иначе испускается сигнал lockoutModeError.

Устройство в состоянии ManagerLockout не может быть разблокировано, кроме как клиентом MDM, состояние PermanentManagerLockout не может быть удалено никогда.

Обратная связь по умолчанию, предоставляемая пользователю, когда ему сообщают о блокировке, может быть перезаписана путём заполнения feedback. Поддерживаются следующие ключи:

  • warning — текст предупреждения с описанием причины блокировки.

void DeviceLock::setLockoutWarning(const QString &warning)

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

Эта операция асинхронная.

  • warning — текст предупреждения с описанием причины блокировки.

void DeviceLock::setOneTimePassword(uid_t uid, const QString &password)

Устанавливает одноразовый пароль password для заданного пользователя uid. После успешной аутентификации с этим паролем пользователь uid должен сменить его. Новый пароль должен соответствовать текущей политике паролей.

Эта операция асинхронная. При успехе испускается сигнал setOneTimePasswordChanged. Иначе испускается сигнал setOneTimePasswordError.

[signal] void DeviceLock::setOneTimePasswordChanged()

Сигнал испускается, когда удачно установлен одноразовый пароль в результате вызова метода setOneTimePassword.

[signal] void DeviceLock::setOneTimePasswordError(DeviceLock::Result err)

void DeviceLock::setSecurityCode(const QString &password)

Пытается изменить код безопасности на указанный code.

Эта операция асинхронная.

При успехе испускается сигнал securityCodeChanged. Иначе испускается сигнал securityCodeChangeError.

void DeviceLock::setSecurityCodeUid(uid_t uid, const QString &password)

Пытается изменить код безопасности указанного пользовател uid на указанный code.

Эта операция асинхронная.

При успехе испускается сигнал securityCodeUidChanged. Иначе испускается сигнал securityCodeUidChangeError.

[signal] void DeviceLock::settingLockoutWarningFinished(DeviceLock::Result err)

ClearOptions DeviceLock::supportedResetOptions() const

Это свойство содержит поддерживаемое значение для аргумента опции очистки устройства.

Значения, не входящие в это множество, будут игнорироваться и не должны быть доступны для выбора в пользовательском интерфейсе.

void DeviceLock::updateSupportedOptions()

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.