Added read availability of passkeys from appConfig.
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -58,6 +58,7 @@ private:
|
||||
base::Timer _refreshTimer;
|
||||
mtpRequestId _requestId = 0;
|
||||
bool _forceRefresh = false;
|
||||
bool _passkeyPossible = false;
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
|
||||
|
||||
@@ -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())
|
||||
|
||||
Reference in New Issue
Block a user