Security says why a mail app won't connect, when legacy protocols are off
When the mail server has turned off legacy mail protocols -- IMAP, POP3,
ManageSieve and sending from mail apps -- for this account, whether for
the whole server or for the account's organization, Settings › Security
says so at the top of App passwords, the section people come to when a
phone won't connect:
Your organization allows only {app} and JMAP apps, so phone and desktop
mail apps can't connect to this account.
This is INBUXA's legacy-protocols LP-19. The server reports it per
account as legacyProtocols on the urn:inbuxa:jmap account capability
(contract C-1); anything short of a plain "disabled" -- an older server,
another server, no session yet -- reads as on, so the line never appears
where it isn't true.
The app's name comes from {app}, as everywhere else. Translated into all
nine languages, in the register each catalog already uses.
This commit is contained in:
1 parent
1cde6f3032
commit
4cac9088dd
12 files changed
+61
-1
No files matched your search
@@ -1,7 +1,7 @@
|
||||
import { useCallback, useEffect, useState } from "react";
|
||||
import { useAppName } from "@/lib/brand";
|
||||
import { Copy, KeyRound, ShieldCheck, Smartphone } from "lucide-react";
|
||||
import { apiFetch, ApiError } from "@/jmap/client";
|
||||
import { apiFetch, ApiError, legacyProtocolsOff } from "@/jmap/client";
|
||||
import { useSession } from "@/store/session";
|
||||
import { formatFullDate } from "@/lib/format";
|
||||
import { toast } from "@/ui/toast";
|
||||
@@ -39,7 +39,9 @@ export function SecuritySettings() {
|
||||
/** Set when the server has no self-service API at all (a proxy, say). */
|
||||
const [unsupported, setUnsupported] = useState<string | null>(null);
|
||||
const session = useSession((s) => s.session);
|
||||
const accountId = useSession((s) => s.accountId);
|
||||
const logout = useSession((s) => s.logout);
|
||||
const appName = useAppName();
|
||||
|
||||
const load = () => apiFetch<{ current: string; sessions: SessionRow[] }>("/api/auth/sessions").then((r) => { setRows(r.sessions); setCurrent(r.current); }).catch(() => setRows([]));
|
||||
|
||||
@@ -82,6 +84,11 @@ export function SecuritySettings() {
|
||||
)}
|
||||
|
||||
<h2>{t("App passwords")}</h2>
|
||||
{legacyProtocolsOff(session, accountId) && (
|
||||
<p className="info-box mb-16">
|
||||
{t("Your organization allows only {app} and JMAP apps, so phone and desktop mail apps can't connect to this account.", { app: appName })}
|
||||
</p>
|
||||
)}
|
||||
{unsupported ? (
|
||||
<p className="hint">{t("App passwords are managed by your mail administrator.")}</p>
|
||||
) : (
|
||||
|
||||
Reference in new issue
Block a user