diff --git a/mautrix_telegram/commands/telegram/auth.py b/mautrix_telegram/commands/telegram/auth.py
index efe34763..815dce98 100644
--- a/mautrix_telegram/commands/telegram/auth.py
+++ b/mautrix_telegram/commands/telegram/auth.py
@@ -126,41 +126,20 @@ async def login(evt: CommandEvent) -> Optional[Dict]:
if evt.config["appservice.public.enabled"]:
prefix = evt.config["appservice.public.external"]
url = f"{prefix}/login?token={evt.public_website.make_token(evt.sender.mxid, '/login')}"
- if allow_matrix_login:
- if override_sender:
- return await evt.reply(
- "This bridge instance allows you to log in inside or outside of Matrix, but "
- "logging in as another user is only possible via the web interface.\n\n"
- f"Please visit [the login page]({url}) to log in as "
- f"[{evt.sender.mxid}](https://matrix.to/#/{evt.sender.mxid}).\n\n")
- return await evt.reply(
- "This bridge instance allows you to log in inside or outside Matrix.\n\n"
- "If you would like to log in within Matrix, please send your phone number or bot "
- "auth token here.\n"
- "If you would like to log in outside of Matrix, please visit [the login page]"
- f"({url}).\n\n"
- "Logging in outside of Matrix is recommended if you have two-factor authentication "
- "enabled, because in-Matrix login would save your password in the message history."
- f"\n\n{nb}")
if override_sender:
- return await evt.reply(
- "This bridge instance does not allow logging in inside Matrix, and logging in as "
- "another user inside Matrix isn't possible anyway.\n\n"
- f"Please visit [the login page]({url}) to log in as "
- f"[{evt.sender.mxid}](https://matrix.to/#/{evt.sender.mxid}).")
- return await evt.reply(
- "This bridge instance does not allow logging in inside Matrix.\n\n"
- f"Please visit [the login page]({url}) to log in.\n\n"
- f"{nb}")
+ return await evt.reply(f"[Click here to log in]({url}) as "
+ f"[{evt.sender.mxid}](https://matrix.to/#/{evt.sender.mxid}).")
+ elif allow_matrix_login:
+ return await evt.reply(f"[Click here to log in]({url}). Alternatively, send your phone"
+ f" number (or bot auth token) here to log in.\n\n{nb}")
+ return await evt.reply(f"[Click here to log in]({url}).\n\n{nb}")
elif allow_matrix_login:
if override_sender:
return await evt.reply(
"This bridge instance does not allow you to log in outside of Matrix. "
"Logging in as another user inside Matrix is not currently possible.")
- return await evt.reply(
- "This bridge instance does not allow you to log in outside of Matrix.\n\n"
- "Please send your phone number or bot auth token here to start the login process.\n\n"
- f"{nb}")
+ return await evt.reply("Please send your phone number (or bot auth token) here to start "
+ f"the login process.\n\n{nb}")
return await evt.reply("This bridge instance has been configured to not allow logging in.")
diff --git a/mautrix_telegram/matrix.py b/mautrix_telegram/matrix.py
index 1830416d..dab864da 100644
--- a/mautrix_telegram/matrix.py
+++ b/mautrix_telegram/matrix.py
@@ -136,12 +136,31 @@ class MatrixHandler:
if not inviter.whitelisted:
await self.az.intent.send_notice(
- room_id, text="",
- html="You are not whitelisted to use this bridge.
"
+ room_id,
+ text="You are not whitelisted to use this bridge.\n\n"
"If you are the owner of this bridge, see the "
- "bridge.permissions section in your config file.")
+ "`bridge.permissions` section in your config file.",
+ html="
You are not whitelisted to use this bridge.
" + "If you are the owner of this bridge, see the "
+ "bridge.permissions section in your config file.
{cmd_prefix} help for help"
+ f" or {cmd_prefix} login to log in.")
+ pass
+ else:
+ text += f"Use `{cmd_prefix} help` for help."
+ html += f"Use {cmd_prefix} help for help."
+ await self.az.intent.send_notice(room_id, text=text, html=html)
+
async def handle_invite(self, room_id: MatrixRoomID, user_id: MatrixUserID,
inviter_mxid: MatrixUserID) -> None:
self.log.debug(f"{inviter_mxid} invited {user_id} to {room_id}")
diff --git a/mautrix_telegram/web/common/auth_api.py b/mautrix_telegram/web/common/auth_api.py
index 4fc6dbcc..ccb4e53c 100644
--- a/mautrix_telegram/web/common/auth_api.py
+++ b/mautrix_telegram/web/common/auth_api.py
@@ -79,7 +79,8 @@ class AuthAPI(abc.ABC):
try:
await user.client.sign_in(phone.strip())
return self.get_login_response(mxid=user.mxid, state="code", status=200,
- message="Code requested successfully.")
+ message="Code requested successfully. Check your SMS "
+ "or Telegram client and enter the code below.")
except PhoneNumberInvalidError:
return self.get_login_response(mxid=user.mxid, state="request", status=400,
errcode="phone_number_invalid",
diff --git a/mautrix_telegram/web/public/login.html.mako b/mautrix_telegram/web/public/login.html.mako
index 12c9bc63..1afec769 100644
--- a/mautrix_telegram/web/public/login.html.mako
+++ b/mautrix_telegram/web/public/login.html.mako
@@ -95,8 +95,8 @@ along with this program. If not, see