Added read availability of passkeys from appConfig.

This commit is contained in:
23rd
2025-12-05 10:39:04 +03:00
committed by John Preston
parent feb1ea6502
commit f506f1b830
8 changed files with 25 additions and 2 deletions

View File

@@ -125,6 +125,10 @@ bool Passkeys::canRegister() const {
return Platform::WebAuthn::IsSupported() && _passkeys.size() < max;
}
bool Passkeys::possible() const {
return _session->appConfig().settingsDisplayPasskeys();
}
void InitPasskeyLogin(
MTP::Sender &api,
Fn<void(const Data::Passkey::LoginData&)> done) {

View File

@@ -51,6 +51,7 @@ public:
[[nodiscard]] const std::vector<PasskeyEntry> &list() const;
[[nodiscard]] bool listKnown() const;
[[nodiscard]] bool canRegister() const;
[[nodiscard]] bool possible() const;
private:
void loadList();

View File

@@ -21,6 +21,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "ui/text/text_utilities.h"
#include "ui/image/image_prepare.h"
#include "ui/painter.h"
#include "main/main_app_config.h"
#include "main/main_account.h"
#include "ui/boxes/confirm_box.h"
#include "core/application.h"
@@ -209,6 +210,8 @@ QrWidget::QrWidget(
api().request(base::take(_requestId)).cancel();
refreshCode();
}, lifetime());
_passkeyPossible = account->appConfig().settingsDisplayPasskeys();
}
QString QrWidget::accessibilityName() {
@@ -333,7 +336,7 @@ void QrWidget::setupControls() {
_skip = Ui::CreateChild<Ui::LinkButton>(
this,
tr::lng_intro_qr_phone(tr::now));
if (Platform::WebAuthn::IsSupported()) {
if (Platform::WebAuthn::IsSupported() && _passkeyPossible) {
_passkey = Ui::CreateChild<Ui::LinkButton>(
this,
tr::lng_intro_qr_passkey(tr::now));

View File

@@ -58,6 +58,7 @@ private:
base::Timer _refreshTimer;
mtpRequestId _requestId = 0;
bool _forceRefresh = false;
bool _passkeyPossible = false;
};

View File

@@ -267,6 +267,10 @@ int AppConfig::passkeysAccountPasskeysMax() const {
return get<int>(u"passkeys_account_passkeys_max"_q, 10);
}
bool AppConfig::settingsDisplayPasskeys() const {
return get<bool>(u"settings_display_passkeys"_q, false);
}
void AppConfig::refresh(bool force) {
if (_requestId || !_api) {
if (force) {

View File

@@ -124,6 +124,7 @@ public:
[[nodiscard]] TimeId groupCallMessageTTL() const;
[[nodiscard]] int passkeysAccountPasskeysMax() const;
[[nodiscard]] bool settingsDisplayPasskeys() const;
using StarsColoring = Calls::Group::Ui::StarsColoring;
[[nodiscard]] std::vector<StarsColoring> groupCallColorings() const;

View File

@@ -7,6 +7,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
*/
#include "settings/settings_experimental.h"
#include "data/components/passkeys.h"
#include "main/main_session.h"
#include "ui/boxes/confirm_box.h"
#include "ui/wrap/vertical_layout.h"
#include "ui/wrap/slide_wrap.h"
@@ -168,7 +170,11 @@ void SetupExperimental(
}
addToggle(Window::kOptionDisableTouchbar);
addToggle(Info::kAlternativeScrollProcessing);
addToggle("webauthn-mac");
if (const auto controller = window->sessionController()) {
if (controller->session().passkeys().possible()) {
addToggle("webauthn-mac");
}
}
addToggle("text-recognition-mac");
}

View File

@@ -580,6 +580,9 @@ void SetupPasskeys(
not_null<Window::SessionController*> controller,
not_null<Ui::VerticalLayout*> container) {
const auto session = &controller->session();
if (!session->passkeys().possible()) {
return;
}
auto label = rpl::combine(
tr::lng_profile_loading(),
(rpl::single(rpl::empty_value())