Improve phone rules checking.

This commit is contained in:
John Preston 2018-05-05 21:54:54 +03:00
parent 678d2a58c5
commit 257dfa6b3f
2 changed files with 6 additions and 2 deletions

View File

@ -148,6 +148,7 @@ void PhoneWidget::submit() {
_checkRequest->start(1000);
_sentPhone = fullNumber();
Messenger::Instance().mtp()->setUserPhone(_sentPhone);
_sentRequest = MTP::send(MTPauth_CheckPhone(MTP_string(_sentPhone)), rpcDone(&PhoneWidget::phoneCheckDone), rpcFail(&PhoneWidget::phoneSubmitFail));
}

View File

@ -33,13 +33,16 @@ constexpr auto kUserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) "
"AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.117 Safari/537.36";
bool CheckPhoneByPrefixesRules(const QString &phone, const QString &rules) {
const auto check = QString(phone).replace(
QRegularExpression("[^0-9]"),
QString());
auto result = false;
for (const auto &prefix : rules.split(',')) {
if (prefix.isEmpty()) {
result = true;
} else if (prefix[0] == '+' && phone.startsWith(prefix.mid(1))) {
} else if (prefix[0] == '+' && check.startsWith(prefix.mid(1))) {
result = true;
} else if (prefix[0] == '-' && phone.startsWith(prefix.mid(1))) {
} else if (prefix[0] == '-' && check.startsWith(prefix.mid(1))) {
return false;
}
}