55. pepsi-stage-edit-settings

Lässt einen Kontoinhaber seine eigenen Einstellungen per E-Mail ändern.

55.1. Rolle

pepsi-stage-edit-settings lässt den Inhaber eines Kontos seine eigenen Überschreibungen pro Adresse (die pepsi.settings-Tabelle; siehe pepsi-settings) durch das Senden einer Steuer-E-Mail ändern. Die Nachricht muss lokal erzeugt sein, den genauen Betreff SUBJECT (Standardwert Pepsi) tragen und an <CONTROL_LOCAL_PART>@<controlled-domain> adressiert sein (Standard-Localpart pepsi, wobei die Domains [pepsi-ingress] ACCEPTED_DOMAINS sind); ihr Nachrichtentext ist ein INI-Schnipsel der zu setzenden Optionen. Jede andere Nachricht wird unberührt durchgeleitet, sodass die Stage gefahrlos überall auf dem lokalen Submission-Pfad platziert werden kann. Referenz: pepsi-stage-edit-settings(1).

Die Adresse, deren Einstellungen bearbeitet werden, ist der Umschlag-Absender, und die Antwort geht an ihn zurück — die Submission-Authentifizierung des Operators muss daher den Umschlagabsender binden.

55.2. Funktionen

  • INI-Nachrichtentext, nachsichtig geparst: [stage-<name>]-Abschnitte und OPTION = value-Zeilen; Begrüßungen, Kommentare und eine nachgestellte Signatur werden ignoriert. Ein leerer Wert (OPTION =) entfernt eine Überschreibung (Rückkehr zum INI-Standardwert); jeder andere Wert fügt sie hinzu oder überschreibt sie.

  • Operator-Positivliste: nur in EDITABLE_STAGES benannte Stages dürfen geändert werden.

  • Vor der Übernahme validieren: Die kombinierten Einstellungen (INI-Standardwerte + bestehende Überschreibungen + das neue INI) werden vom echten Konfigurationsparser jeder betroffenen Stage geprüft (mit pepsi-setup geteilt), aufbauend auf der Konfiguration des Operators für den Absender (einschließlich der Überschreibungen domain:/address:).

  • Nur eigene Whitelists: Ein WHITELIST_NAME, den der Absender für pepsi-stage-auto-whitelist oder pepsi-stage-secretary setzt – die Stages, die im Namen des Inhabers eine Whitelist schreiben –, muss eine in seinem eigenen Namensraum <login>/... benennen oder diejenige, die die Konfiguration des Operators für ihn bereits benennt. Eine geteilte Liste oder die eines anderen Benutzers wird abgewiesen, da sie dem Inhaber erlauben würde, sie mit Adressen seiner Wahl zu füllen. Ein bereits im Datensatz gespeicherter Wert (der Operator kann ihn mit pepsi-settings gesetzt haben) blockiert Änderungen an anderen Optionen nicht. Diese Stage ist der einzige Weg, auf dem ein Kontoinhaber pepsi.settings schreibt, daher wird die Regel hier durchgesetzt, und die eigenen Ebenen des Operators dürfen jede beliebige Whitelist benennen.

  • Alles oder nichts: Bei einem Fehler wird nichts geändert und eine menschenlesbare Antwort listet die Probleme auf.

  • Bestätigende Antwort: Bei Erfolg werden die zusammengeführten Überschreibungen gespeichert und eine Antwort zitiert den vollständigen effektiven Optionssatz jeder bearbeitbaren Stage in INI-Syntax. Beide Antworten tragen Subject: Pepsi, verwenden den Null-Absender und werden bei RESPONSE_STAGE injiziert, sodass sie DKIM-signiert und weitergeleitet werden.

  • Lokalisierte Antworten: Die rahmende Prosa stammt aus der Vorlage edit-settings.<lang>.body unter [pepsi] TEMPLATE_DIR, ausgewählt nach der erkannten Sprache des Absenders (state.language, so wie pepsi-stage-detect-language sie festgehalten hat) und mit Rückfall auf Englisch.

  • Sicher als Standard: Eine E-Mail darf das PROGRAM einer Stage nur auf einen pepsi-stage-*-Befehl richten und darf die Optionen nicht anrühren, die entscheiden, unter welcher Identität eine Nachricht signiert oder gesendet wird (SIGNING_DOMAIN). Beide Einschränkungen hebt der Operator mit UNRESTRICTED_UNSAFE_STAGES = YES auf, was genau das ist, was der Name sagt.

55.3. Konfiguration

[stage-<name>]: PROGRAM = pepsi-stage-edit-settings, NEXT_STAGE (erforderlich — nahezu jede Nachricht ist keine Steuernachricht und wird unverändert vorgerückt), EDITABLE_STAGES (erforderlich, durch Leerraum bzw. Kommata getrennte Stage-Namen), RESPONSE_STAGE (erforderlich, wohin die Antwort injiziert wird), SUBJECT (Standardwert Pepsi), CONTROL_LOCAL_PART (Standardwert pepsi), RESPONSE_FROM (das From: der Antwort; standardmäßig <CONTROL_LOCAL_PART>@<matched domain>) und UNRESTRICTED_UNSAFE_STAGES (Standardwert no). pepsi-setup prüft, dass jeder Eintrag in EDITABLE_STAGES und RESPONSE_STAGE eine echte Stage benennen und dass die Rückfallvorlage edit-settings.en.body existiert. Die Stage liest ihre eigenen Optionen aus der Basiskonfiguration, nie aus den Überschreibungen pro Adresse, sodass ein Korrespondent sich nicht selbst eine weitere Erlaubnisliste zumailen kann. Siehe pepsi-stage-edit-settings(1).

55.4. State

  • Eingaben: state.local_origin (eine Nachricht, die nicht lokal erzeugt wurde, ist nie eine Steuernachricht) und state.language (die Sprache der Antwort).

  • Ausgaben: keine — der Datensatz einer Steuernachricht wird gelöscht, sobald die Antwort injiziert wurde; jede andere Nachricht wird mit unberührtem state, einschließlich state.dsn, vorgerückt.

55.5. Siehe auch

pepsi-settings, pepsi-dispatch, pepsi-stage-check-whitelist, pepsi-setup, Architektur, pepsi-stage-edit-settings(1), pepsi.conf(5).