Added ability to check cloud password from Api::CloudPassword.
This commit is contained in:
parent
3d6f6cdd8f
commit
2f9dc6ca2a
|
@ -295,4 +295,39 @@ rpl::producer<CloudPassword::SetOk, QString> CloudPassword::set(
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
rpl::producer<rpl::no_value, QString> CloudPassword::check(
|
||||||
|
const QString &password) {
|
||||||
|
return [=](auto consumer) {
|
||||||
|
_api.request(MTPaccount_GetPassword(
|
||||||
|
)).done([=](const MTPaccount_Password &result) {
|
||||||
|
const auto latestState = ProcessMtpState(result);
|
||||||
|
const auto input = [&] {
|
||||||
|
if (password.isEmpty()) {
|
||||||
|
return Core::CloudPasswordResult{
|
||||||
|
MTP_inputCheckPasswordEmpty()
|
||||||
|
};
|
||||||
|
}
|
||||||
|
const auto hash = Core::ComputeCloudPasswordHash(
|
||||||
|
latestState.mtp.request.algo,
|
||||||
|
bytes::make_span(password.toUtf8()));
|
||||||
|
return Core::ComputeCloudPasswordCheck(
|
||||||
|
latestState.mtp.request,
|
||||||
|
hash);
|
||||||
|
}();
|
||||||
|
|
||||||
|
_api.request(MTPaccount_GetPasswordSettings(
|
||||||
|
input.result
|
||||||
|
)).done([=](const MTPaccount_PasswordSettings &result) {
|
||||||
|
consumer.put_done();
|
||||||
|
}).fail([=](const MTP::Error &error) {
|
||||||
|
consumer.put_error_copy(error.type());
|
||||||
|
}).send();
|
||||||
|
}).fail([=](const MTP::Error &error) {
|
||||||
|
consumer.put_error_copy(error.type());
|
||||||
|
}).send();
|
||||||
|
|
||||||
|
return rpl::lifetime();
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace Api
|
} // namespace Api
|
||||||
|
|
|
@ -44,6 +44,7 @@ public:
|
||||||
const QString &hint,
|
const QString &hint,
|
||||||
bool hasRecoveryEmail,
|
bool hasRecoveryEmail,
|
||||||
const QString &recoveryEmail);
|
const QString &recoveryEmail);
|
||||||
|
rpl::producer<rpl::no_value, QString> check(const QString &password);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void apply(Core::CloudPasswordState state);
|
void apply(Core::CloudPasswordState state);
|
||||||
|
|
Loading…
Reference in New Issue