codekasten/mailbot/struktur.txt

65 lines
2.2 KiB
Plaintext

Worum geht es: ein Mensch moechte etwas tun, was der Authorisierung durch einen anderen Menschen bedarf - ueber einen email-bot wird dem Anfragenden eine Zugangsinformation mitgeteilt, sofern der Moderator zustimmt.
1) Vorraussetzungen:
- ein Mensch (R) moechte etwas tun (z.B. einen mail-account anlegen)
- ein anderer Mensch (M) hat das Recht, diese Taten zu authorisieren
- M und R wollen/koennen sich nicht physisch treffen
- M kennt eine Mailadresse von R - er vertraut darauf, dass nur R Zugriff darauf hat
2) Vorgang:
- R sendet eine Anfrage an eine bekannte Mailadresse
- ein Bot reagiert auf diese Mail indem er sie gefiltert an M weiterschickt
- M kann die Anforderung durch eine Antwort an den Bot bestaetigen, ablehnen oder ignorieren (=ablehnen)
- Alternative: die Zusage von M loest die gewuenschte Aktion aus - R erhaelt eine Infomail
3) Struktur:
3.1) Plugins
3.1.1) htaccess befristet gewaehren
somit kann eine bestimmte Aktion vom Nutzer innerhalb eines gewissen Zeitraums ausgefuehrt werden
3.2) Datenbank
- Modulname
- Datum
- Quellmail
- Message-ID
- infos
3.3) request-bot
- empfaengt Anfrage und entscheidet, welchem Modul die Information zu uebergeben ist
- das Modul liefert Informationen zum weiteren Vorgehen zurueck
-- Anfrage nicht speichern: Aktion wurde bereits ausgefuehrt (weil sie keine Bestaetigung erfordert) oder sie wurde verweigert
-- Anfrage speichern: Info an den Moderator und Datenbankeintrag erzeugen
- auf jeden Fall eine Infomail an Anfragenden senden
3.4) auth-bot
- empfaengt Zustimmung/Ablehnung vom Moderator
- verifiziert eventuell die Moderator-Mail (gpg)
- Modul wird aufgerufen - dieses liefert einen passenden Mailtext zurueck
- Datenbank-Eintrag loeschen
5.4) Modul
- liefert folgendes zurueck:
-- Anfrage speichern:
--- exitcode 0
--- request-id
--- Adresse des Moderators
--- Betreffzeile fuer Moderator
--- Betreffzeile fuer Anfrager
--- Anfrage-Infos fuer Datenbank
--- Mailinhalt fuer Moderator (out3)
--- Mailinhalt fuer Anfrager (out4)
-- Anfrage nicht speichern:
--- exitcode 1
--- Betreffzeile
--- Text fuer Anfrager
- Interface:
-- request Informationen
-- auth request-id
Mail-Reply:
eigene ID: Message-ID
bezugs-id: In-Reply-To (optional)
Referenzen: References (die letzte ist die bezugs-id, falls diese fehlt)