Admin-Anfragen
wkrequest beantwortet die Frage, die ein sperrender Bildschirm aufwirft und bisher offen ließ: und jetzt? Es macht aus „wenden Sie sich an Ihre Administration“ eine strukturierte, nachvollziehbare Anfrage — gestellt dort, wo jemand hängengeblieben ist, bearbeitet in einem Posteingang, entschieden auf der Oberfläche, der die Änderung gehört.
Erste Schritte
Schnelleinstieg: Die erste administrative Anfrage stellen und erledigen — der kürzeste Weg zum ersten Ergebnis, in vier Schritten.
Sackgasse herstellen → Anfrage stellen → Posteingang öffnen → Erst die Arbeit, dann der Vermerk
Häufige Aufgaben
| Aufgabe | Für wen | Wo Sie das tun |
|---|---|---|
| Zugriff auf eine gesperrte Seite anfordern | alle | der Kasten Was Sie jetzt tun können unter dem Sperrhinweis |
| Eigene offene Anfragen ansehen oder zurückziehen | alle | ?do=wkrequest&view=mine |
| Zurücksetzen des zweiten Faktors anfordern, ohne angemeldet zu sein | ausgesperrte Konten | Anmeldeseite → Kennwort zurücksetzen → Zurücksetzen der Zwei-Faktor-Anmeldung anfordern |
| Anfragen lesen und entscheiden | Administration | Administration → Administrative Anfragen |
| Anfragen aus einem eigenen Plugin auslösen | Entwicklung | der Helfer wkrequest, siehe unten |
Aufbau
<html>
<div style="display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));min-width:520px">
<div style="border-right:1px solid #e3e6ec;padding:10px 12px">
<div style="font:600 12px/1.4 system-ui,sans-serif;color:#3b4252">1 Sperrender Bildschirm</div>
<div style="font:11px/1.5 system-ui,sans-serif;color:#5b6472">Was Sie jetzt tun können</div>
</div>
<div style="border-right:1px solid #e3e6ec;padding:10px 12px">
<div style="font:600 12px/1.4 system-ui,sans-serif;color:#3b4252">2 Formular</div>
<div style="font:11px/1.5 system-ui,sans-serif;color:#5b6472">zeigt, was es sendet</div>
</div>
<div style="padding:10px 12px">
<div style="font:600 12px/1.4 system-ui,sans-serif;color:#3b4252">3 Posteingang</div>
<div style="font:11px/1.5 system-ui,sans-serif;color:#5b6472">lesen, entscheiden, vermerken</div>
</div>
</div>
<div style="border-top:1px solid #e3e6ec;padding:10px 12px">
<div style="font:600 12px/1.4 system-ui,sans-serif;color:#3b4252">4 Die zuständige Oberfläche</div>
<div style="font:11px/1.5 system-ui,sans-serif;color:#5b6472">hier und nur hier geschieht die Änderung</div>
</div>
</html>
| Bereich | Was dort passiert |
|---|---|
| 1 | Ein Kasten unter dem Sperrhinweis nennt jeden Weg, den dieser Zustand wirklich hat, und ordnet sie. Er hängt an einem einzigen Ereignis und erscheint deshalb auf jeder gesperrten Seite. |
| 2 | Das Formular klappt auf, was es übermitteln wird, und sagt, was nicht hinein gehört. |
| 3 | Ein Bildschirm, der auf Noch offen öffnet. Er hält fest, was gefragt und was entschieden wurde. |
| 4 | Die Zugangsverwaltung, die Benutzerverwaltung, der Mount-Bildschirm — je nach Anfrage. Der Posteingang verweist dorthin, führt aber nichts aus. |
Wesentliche Funktionen
- Die Eskalation erscheint dort, wo jemand hängt — und nur dort, wo sie etwas nützen würde. Der Kasten ordnet die Wege: Wer sich in dreißig Sekunden selbst helfen kann, bekommt die Selbsthilfe als erste Möglichkeit und die Anfrage zuletzt; wer gar keine Berechtigung hat, bekommt die Anfrage als erste.
- Sieben Anfragearten, von Zugriff anfordern bis Administrative Änderung anfordern. Genau zwei davon lassen sich ohne Anmeldung stellen — die beiden, die einen Menschen beschreiben, der sich nicht anmelden kann.
- Eine zweite Anfrage zur selben Sache wird angehängt, nicht doppelt abgelegt. Wer nicht hineinkommt, drückt den Knopf noch einmal; das ist kein Missbrauch, und ein Posteingang voller Kopien einer Lage ist die schlechtere Antwort.
- Sechs Zustände mit Endpunkten: Offen, In Arbeit, Genehmigt, Abgelehnt, Erledigt, Zurückgezogen. Zurückgezogen steht nur der anfragenden Person offen, und nur solange niemand entschieden hat.
- Nichts Geheimes reist mit. Der Kontext geht durch genau eine Stelle, die nach Schlüsselnamen und nach Wertform ablehnt — und ersetzt, statt zu entfernen, damit die Ablehnung sichtbar bleibt.
Kernbegriffe
Eine Anfrage ist ein Vermerk, keine Genehmigung. Es gibt in diesem Paket keinen Programmweg, der irgendetwas gewähren könnte. „Genehmigt“ gewährt nichts, „Erledigt“ führt nichts aus; die Änderung geschieht auf der Oberfläche, der sie gehört, und wird hier nur festgehalten. Der Bestätigungstext sagt das im selben Atemzug wie den Erfolg, weil ein bloßes „gesendet!“ als Zusage gelesen wird.
Genehmigt und Erledigt sind zwei Dinge. Zwischen „jemand soll Zugriff bekommen“ und „die Regel steht“ liegt genau die Lücke, in der eine Anfrage vergessen wird.
Eine Anfrage ohne Sitzung ist eine Behauptung. Sie wird als ungeprüft abgelegt, in Liste und Einzelansicht gekennzeichnet und im Posteingang ausgeschrieben: In das Formular kann jede Person jeden Namen eintragen. Wer darauf handelt, stellt vorher auf anderem Weg fest, wer fragt.
Vorausgefüllter Kontext ist signiert. Was ein sperrender Bildschirm in seinen Verweis legt, ist mit dem Sitzungs-Salz des Wikis unterschrieben. Was zurückkommt, prüft entweder nach — dann steht vom Wiki festgestellt daran — oder behält nur seine Art und heißt von der anfragenden Person angegeben. Eine gebrochene Signatur weist die Anfrage nie ab; das wäre ein Weg, andere am Bitten zu hindern.
Was es ausdrücklich nicht ist
Kein Ticketsystem. Keine Zuweisung, keine Priorität, keine Frist, kein Kommentarfaden, keine Benachrichtigungseinstellungen. Jedes davon wäre ein echtes Merkmal eines echten Produkts — und jedes machte dies zu einem zweiten Werkzeug für Arbeitsverfolgung neben wkdoworkitems, das bereits eines ist.
Administration
Administration → Administrative Anfragen, direkt /doku.php?do=admin&page=wkrequest. Der Menüeintrag trägt die Zahl der offenen Anfragen.
Die Einstellungen stehen im Konfigurationsmanager, Abschnitt wkrequest:
| Einstellung | Vorgabe | Wirkung |
|---|---|---|
allow_anonymous | 1 | Ob die beiden sitzungslosen Anfragearten überhaupt gestellt werden können. |
denied_panel | 1 | Ob der Kasten Was Sie jetzt tun können unter dem Sperrhinweis erscheint. |
max_per_day | 20 | Obergrenze je Konto und Tag. |
keep_days | 365 | Wie lange abgeschlossene Anfragen aufbewahrt werden. |
notify_mail | leer | Adresse, an die eine eingehende Anfrage gemeldet wird. Leer heißt: keine Meldung. |
Störungen
Keine. Für dieses Paket ist bisher keine Störungsseite im Wiki geschrieben; die Diagnosefassung liegt als docs/troubleshooting.md im Repositorium des Pakets.
Für Entwicklerinnen und Entwickler
Ein Plugin löst eine Anfrage über den Helfer aus, ohne dieses Paket vorauszusetzen:
$req = plugin_load('helper', 'wkrequest'); if (is_object($req) && method_exists($req, 'requestAction')) { $aktion = $req->requestAction([ 'type' => 'ACCESS_REQUEST', // einzige Pflichtangabe 'resource' => $id, 'reasonCode' => 'acl_denied', ]); }
Die beiden Prüfungen sind Hausbrauch: Ihr Plugin lädt weiter, wenn wkrequest fehlt, und zeigt dann eben keine Anfrage-Möglichkeit an, statt abzubrechen. requestAction() liefert außerdem einen Eintrag mit available ⇒ false, wenn die Anfrageart hier nicht gestellt werden kann — der Kasten lässt ihn dann weg. Ihre Aufrufstelle braucht deshalb keine eigene Fallunterscheidung: Sie hängt den Eintrag bedingungslos an und die Bedienstelle erscheint nur dort, wo sie wirken würde.
Wer die Oberfläche stellt, auf der eine Anfragenart erledigt wird, meldet sich am Ereignis WKREQUEST_REGISTER_HANDLERS an. Ein so hinterlegter Zuständiger wird als Schlüssel gespeichert und erst beim Anzeigen aufgelöst — eine Zeichenkette aus einem anderen Plugin wird damit nie zu einem Verweis, den eine Administratorin anklickt.
Die vollständige Beschreibung von Vertrag, Ereignissen und Datenmodell liegt als docs/api-reference.md im Repositorium des Pakets.
Verwandte Themen
- wkidentity — die Abläufe, an denen der Fall ausgesperrt ohne zweiten Faktor hängt
- DokuWiki-Erweiterungen — das Verzeichnis der Pakete
Autor
- Name: Wolfgang van der Stille (The White Knight Labs)
- Lizenz: GPL 2