Version 5.2.1: No auto-enable system password unlock on macOS.

This commit is contained in:
John Preston 2024-07-01 21:03:05 +04:00
parent 096530c96a
commit dc8c4a8332
2 changed files with 16 additions and 2 deletions

View file

@ -403,6 +403,8 @@ bool Domain::removePasscodeIfEmpty() {
return false; return false;
} }
_local->setPasscode(QByteArray()); _local->setPasscode(QByteArray());
Core::App().settings().setSystemUnlockEnabled(false);
Core::App().saveSettingsDelayed();
return true; return true;
} }

View file

@ -80,6 +80,7 @@ private:
rpl::event_stream<> _setInnerFocus; rpl::event_stream<> _setInnerFocus;
rpl::event_stream<Type> _showOther; rpl::event_stream<Type> _showOther;
rpl::event_stream<> _showBack; rpl::event_stream<> _showBack;
bool _systemUnlockWithBiometric = false;
}; };
@ -97,6 +98,13 @@ rpl::producer<QString> LocalPasscodeEnter::title() {
void LocalPasscodeEnter::setupContent() { void LocalPasscodeEnter::setupContent() {
const auto content = Ui::CreateChild<Ui::VerticalLayout>(this); const auto content = Ui::CreateChild<Ui::VerticalLayout>(this);
base::SystemUnlockStatus(
true
) | rpl::start_with_next([=](base::SystemUnlockAvailability status) {
_systemUnlockWithBiometric = status.available
&& status.withBiometrics;
}, lifetime());
const auto isCreate = (enterType() == EnterType::Create); const auto isCreate = (enterType() == EnterType::Create);
const auto isCheck = (enterType() == EnterType::Check); const auto isCheck = (enterType() == EnterType::Check);
[[maybe_unused]] const auto isChange = (enterType() == EnterType::Change); [[maybe_unused]] const auto isChange = (enterType() == EnterType::Change);
@ -242,8 +250,10 @@ void LocalPasscodeEnter::setupContent() {
} }
SetPasscode(_controller, newText); SetPasscode(_controller, newText);
if (isCreate) { if (isCreate) {
if (Platform::IsWindows() || _systemUnlockWithBiometric) {
Core::App().settings().setSystemUnlockEnabled(true); Core::App().settings().setSystemUnlockEnabled(true);
Core::App().saveSettingsDelayed(); Core::App().saveSettingsDelayed();
}
_showOther.fire(LocalPasscodeManageId()); _showOther.fire(LocalPasscodeManageId());
} else if (isChange) { } else if (isChange) {
_showBack.fire({}); _showBack.fire({});
@ -601,6 +611,8 @@ QPointer<Ui::RpWidget> LocalPasscodeManage::createPinnedToBottom(
.text = tr::lng_settings_passcode_disable_sure(), .text = tr::lng_settings_passcode_disable_sure(),
.confirmed = [=](Fn<void()> &&close) { .confirmed = [=](Fn<void()> &&close) {
SetPasscode(_controller, QString()); SetPasscode(_controller, QString());
Core::App().settings().setSystemUnlockEnabled(false);
Core::App().saveSettingsDelayed();
close(); close();
_showBack.fire({}); _showBack.fire({});