Return error if user tries to send empty login code to API
This commit is contained in:
@@ -195,7 +195,8 @@ class User(DBUser, AbstractUser, BaseUser):
|
|||||||
if self.tgid:
|
if self.tgid:
|
||||||
await self.push_bridge_state(BridgeStateEvent.UNKNOWN_ERROR, message=str(e))
|
await self.push_bridge_state(BridgeStateEvent.UNKNOWN_ERROR, message=str(e))
|
||||||
except UnauthorizedError as e:
|
except UnauthorizedError as e:
|
||||||
self.log.error(f"Authorization error in start(): {type(e)}: {e}")
|
if delete_unless_authenticated or self.tgid:
|
||||||
|
self.log.error(f"Authorization error in start(): {type(e)}: {e}")
|
||||||
if self.tgid:
|
if self.tgid:
|
||||||
await self.push_bridge_state(
|
await self.push_bridge_state(
|
||||||
BridgeStateEvent.BAD_CREDENTIALS,
|
BridgeStateEvent.BAD_CREDENTIALS,
|
||||||
|
|||||||
@@ -126,8 +126,10 @@ class AuthAPI(abc.ABC):
|
|||||||
mxid=user.mxid,
|
mxid=user.mxid,
|
||||||
state="code",
|
state="code",
|
||||||
status=200,
|
status=200,
|
||||||
message="Code requested successfully. Check your SMS "
|
message=(
|
||||||
"or Telegram client and enter the code below.",
|
"Code requested successfully. Check your SMS "
|
||||||
|
"or Telegram client and enter the code below."
|
||||||
|
),
|
||||||
)
|
)
|
||||||
except PhoneNumberInvalidError:
|
except PhoneNumberInvalidError:
|
||||||
return self.get_login_response(
|
return self.get_login_response(
|
||||||
@@ -167,8 +169,10 @@ class AuthAPI(abc.ABC):
|
|||||||
state="request",
|
state="request",
|
||||||
status=429,
|
status=429,
|
||||||
errcode="phone_number_flood",
|
errcode="phone_number_flood",
|
||||||
error="Your phone number has been temporarily blocked for flooding. "
|
error=(
|
||||||
"The ban is usually applied for around a day.",
|
"Your phone number has been temporarily blocked for flooding. "
|
||||||
|
"The ban is usually applied for around a day."
|
||||||
|
),
|
||||||
)
|
)
|
||||||
except FloodWaitError as e:
|
except FloodWaitError as e:
|
||||||
return self.get_login_response(
|
return self.get_login_response(
|
||||||
@@ -176,8 +180,10 @@ class AuthAPI(abc.ABC):
|
|||||||
state="request",
|
state="request",
|
||||||
status=429,
|
status=429,
|
||||||
errcode="flood_wait",
|
errcode="flood_wait",
|
||||||
error="Your phone number has been temporarily blocked for flooding. "
|
error=(
|
||||||
f"Please wait for {format_duration(e.seconds)} before trying again.",
|
"Your phone number has been temporarily blocked for flooding. "
|
||||||
|
f"Please wait for {format_duration(e.seconds)} before trying again."
|
||||||
|
),
|
||||||
)
|
)
|
||||||
except Exception:
|
except Exception:
|
||||||
self.log.exception("Error requesting phone code")
|
self.log.exception("Error requesting phone code")
|
||||||
@@ -237,6 +243,14 @@ class AuthAPI(abc.ABC):
|
|||||||
async def post_login_code(
|
async def post_login_code(
|
||||||
self, user: User, code: int, password_in_data: bool
|
self, user: User, code: int, password_in_data: bool
|
||||||
) -> web.Response | None:
|
) -> web.Response | None:
|
||||||
|
if not code:
|
||||||
|
return self.get_login_response(
|
||||||
|
mxid=user.mxid,
|
||||||
|
state="code",
|
||||||
|
status=400,
|
||||||
|
errcode="phone_code_missing",
|
||||||
|
error="You must provide the code from your phone.",
|
||||||
|
)
|
||||||
try:
|
try:
|
||||||
user_info = await user.client.sign_in(code=code)
|
user_info = await user.client.sign_in(code=code)
|
||||||
await self.postprocess_login(user, user_info)
|
await self.postprocess_login(user, user_info)
|
||||||
|
|||||||
+1
-1
@@ -6,7 +6,7 @@ yarl>=1,<2
|
|||||||
mautrix>=0.14.9,<0.15
|
mautrix>=0.14.9,<0.15
|
||||||
#telethon>=1.24,<1.25
|
#telethon>=1.24,<1.25
|
||||||
# Fork to make session storage async and update to layer 138
|
# Fork to make session storage async and update to layer 138
|
||||||
tulir-telethon==1.25.0a4
|
tulir-telethon==1.25.0a5
|
||||||
asyncpg>=0.20,<0.26
|
asyncpg>=0.20,<0.26
|
||||||
mako>=1,<2
|
mako>=1,<2
|
||||||
setuptools
|
setuptools
|
||||||
|
|||||||
Reference in New Issue
Block a user