feat(mail): E-Mails mit Leserecht als ignoriert markieren
Der Button „Als ignoriert markieren“ war für alle mit VIEW_MAIL sichtbar, der Aufruf (PATCH :id/status) verlangte aber MANAGE_ALL und scheiterte mit 403. Neuer Endpunkt POST /api/emails/:id/ignore mit VIEW_MAIL, der nur Status 3 setzen kann; bereits verarbeitete E-Mails werden abgelehnt. Das allgemeine Statusändern bleibt Admins vorbehalten. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
f97177943d
commit
3cea3fb239
4 files changed
+85
-2
No files matched your search
@@ -49,6 +49,10 @@ export const emailsApi = {
|
||||
updateStatus: (id: number, status: number) =>
|
||||
api.patch<{ message?: string }>(`/api/emails/${id}/status`, { status }).then((r) => r.data),
|
||||
|
||||
// Markiert eine E-Mail als ignoriert (für alle mit Zugriff aufs Mailpostfach).
|
||||
ignore: (id: number) =>
|
||||
api.post<EmailItem>(`/api/emails/${id}/ignore`).then((r) => r.data),
|
||||
|
||||
// Gibt eine bereits abgeschlossene E-Mail wieder zur Bearbeitung frei (nur Admins).
|
||||
reimport: (id: number) =>
|
||||
api.post<EmailItem>(`/api/emails/${id}/reimport`).then((r) => r.data),
|
||||
|
||||
@@ -47,10 +47,10 @@ export default function MailDetailPage() {
|
||||
const handleIgnore = async () => {
|
||||
if (!email) return;
|
||||
try {
|
||||
await emailsApi.updateStatus(email.Id, 3);
|
||||
await emailsApi.ignore(email.Id);
|
||||
message.success('E-Mail als ignoriert markiert');
|
||||
navigate('/mailpostfach');
|
||||
} catch (err) {
|
||||
} catch {
|
||||
message.error('Fehler beim Markieren der E-Mail');
|
||||
}
|
||||
};
|
||||
|
||||
Reference in new issue
Block a user