feat: System-Email-Benachrichtigungen bei Freigaben und Benutzer-Erstellung

Automatische E-Mail-Benachrichtigungen ueber die konfigurierte
System-Email bei folgenden Ereignissen:

- Datei/Ordner mit Benutzer geteilt -> Empfaenger wird benachrichtigt
- Share-Link heruntergeladen -> Ersteller wird benachrichtigt (mit IP)
- Kalender mit Benutzer geteilt -> Empfaenger wird benachrichtigt
- Adressbuch mit Benutzer geteilt -> Empfaenger wird benachrichtigt
- Passwort-Eintrag/-Ordner geteilt -> Empfaenger wird benachrichtigt
- Admin erstellt neuen Benutzer -> Neuer Benutzer wird benachrichtigt

Alle Benachrichtigungen sind fail-safe (try/except), damit die
eigentliche Aktion nie durch Email-Fehler blockiert wird.
Emails werden nur gesendet wenn System-SMTP konfiguriert ist UND
der Empfaenger eine Email-Adresse hat.

Neuer Service: app/services/system_mail.py mit zentralem Helper

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Stefan Hacker
2026-04-11 18:31:19 +02:00
parent 61ce2ec244
commit e811210977
6 changed files with 204 additions and 0 deletions
+9
View File
@@ -269,6 +269,7 @@ def share_calendar(cal_id):
existing = CalendarShare.query.filter_by(
calendar_id=cal_id, shared_with_id=target.id
).first()
is_new = not existing
if existing:
existing.permission = permission
else:
@@ -278,6 +279,14 @@ def share_calendar(cal_id):
db.session.add(share)
db.session.commit()
if is_new:
try:
from app.services.system_mail import notify_calendar_shared
notify_calendar_shared(cal.name, user.username, target, permission)
except Exception:
pass
return jsonify({'message': f'Kalender mit {username} geteilt'}), 200