Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,090 of 9,090 pages
About the help in other languages
All help pages

JSON-Ausgabe und Exit-Codes von exp:user

Die Referenz der maschinenlesbaren Ausgabe der Befehle exp:user: das Schema exp-user/1, die Schlüssel jedes Berichts, die Schlüssel jedes Befehls und die Exit-Codes. Lesen Sie sie, wenn ein Skript, ein CI-Job oder eine…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/specifications/6.0/exp-user-json-output.md

On this page

This page is a translation. Read the English original

JSON-Ausgabe und Exit-Codes von exp:user

Die Referenz der maschinenlesbaren Ausgabe der Befehle exp:user: das Schema exp-user/1, die Schlüssel jedes Berichts, die Schlüssel jedes Befehls und die Exit-Codes. Lesen Sie sie, wenn ein Skript, ein CI-Job oder eine Überwachung die Ausgabe von --format=json liest. Für die Aufgaben, denen die Befehle dienen, lesen Sie Benutzerverwaltung von der Konsole.

Der Vertrag

  • Jeder Befehl nimmt --format=json (Vorgabe text) und gibt dann genau ein JSON-Objekt auf der Standardausgabe aus, eingerückt, mit unmaskierten Schrägstrichen und Unicode.
  • Das Schema ist exp-user/1. Schlüssel und Optionen sind ein dauerhafter Vertrag: neue Schlüssel und Optionen können hinzukommen, keiner wird je umbenannt, entfernt oder bekommt eine andere Bedeutung. Ein Leser muss Schlüssel übergehen, die er nicht kennt.
  • Eine unverträgliche Änderung bräuchte ein neues Schema (exp-user/2); keines ist geplant.
  • Kein Bericht enthält je einen Passwort-Hash. Ein Passwort erscheint nur als generated_password, in dem einen Lauf, der es erzeugt hat.
  • tests/tests/kernel/classes/user/expUserCommandContractTest.php vergleicht die Befehlsnamen, Optionen und Argumente mit einem Sicherungspunkt.

Exit-Codes

CodeNameBedeutung
0erledigtder Befehl hat seine Arbeit getan; ein Probelauf, den nichts verweigert hat
1fehlgeschlagendas Konto, die Gruppe oder die Rolle wurde nicht gefunden, eine Prüfung schlug fehl, das Konto ist geschützt, eine Aktion wurde verweigert; exp:user:check-login: das Passwort meldet das Konto nicht an
2Bedienfehlereine falsche Option oder ein falscher Wert, --apply zusammen mit --dry-run, ein fehlendes Argument
3nicht erreichbardie Datenbank ist nicht erreichbar
4internein interner Fehler

Die Codes sind die von exp:upgrade. Ein Bedienfehler (2) wird als Zeile FAIL: auf der Standardfehlerausgabe ausgegeben, auch mit --format=json; die anderen Codes kommen mit einem JSON-Bericht.

Schlüssel jedes Berichts

SchlüsselTypBedeutung
schemastringexp-user/1
commandstringder Befehl, zum Beispiel exp:user:disable
modestringworum es im Bericht geht: die Aktion des Befehls (unten), oder find (das Konto wurde nicht gefunden), actor (der handelnde Benutzer wurde nicht gefunden), unreachable (die Datenbank)
errorsstring[]warum der Befehl fehlschlug oder verweigerte; leer, wenn nicht
warningsstring[]was den Befehl nicht aufhielt, zum Beispiel „the account is disabled already: nothing to do“
exitintder Exit-Code

Schlüssel der ändernden Befehle

Die Befehle, die etwas ändern (create, edit, delete, disable, enable, reset-password, approve, und die Befehle der Phase 2 unten, die --apply nehmen), fügen hinzu:

SchlüsselTypBedeutung
dry_runbooltrue ohne --apply
appliedbooltrue, wenn die Änderung vorgenommen wurde
changesstring[]was geändert wird (oder würde), je eine Zeile
userobject oder nulldas Konto nach der Änderung: id (int), login, email, name (strings), enabled (bool); das Konto vor der Änderung bei delete und einer abgelehnten Registrierung

Je Befehl (Phase 1)

BefehlmodeWeitere Schlüssel
exp:user:createcreateuser_id (int, das neue Konto), generated_password (mit --generate-password und --apply)
exp:user:editeditkeine
exp:user:disabledisablerefusal, sessions_ended (int, mit --apply)
exp:user:enableenablekeine
exp:user:deletedeleterefusal
exp:user:reset-passwordreset-passwordreset (send-link, generate oder stdin), mail_sent (bool, send-link), sessions_ended (int), generated_password (generate mit --apply)
exp:user:approveapprove oder rejectstate_before, state: der Zustand der Registrierung davor und danach

refusal nennt, warum ein geschütztes Konto verweigert wurde: anonymous, creator, admin, self oder last_administrator. Die Zustände der Registrierung sind email, administrator, workflow (wartend), pending, active, disabled und missing.

Schlüssel der Listen (Phase 1)

exp:user:list (mode list) und exp:user:pending (mode pending):

SchlüsselTypBedeutung
filtersobjectdie verwendeten Filter: state, group, search, days, sort, order (pending: state, search)
totalintwie viele Konten die Filter auswählen
offset, limitintdie Seite
accountsobject[]die Konten der Seite

Ein Eintrag von accounts:

SchlüsselTypBedeutung
idintdie ID des Kontos (die ID seines Inhaltsobjekts)
login, email, namestring
enabledbool
unactivatedbooldeaktiviert mit einem Aktivierungsschlüssel
has_keyboolhat einen Aktivierungsschlüssel
lockedboolmehr fehlgeschlagene Anmeldungen als MaxNumberOfFailedLogin
failed_attempts, login_countint
last_visitint oder falseUnix-Zeit des letzten Besuchs; false, wenn nie
idle_daysint oder falseTage seit dem letzten Besuch
objectstringpublished, draft oder none
orphanedboolkein Objekt, nie veröffentlicht oder keine Platzierung
node_idintder Hauptknoten
groupsobject[]node_id, name jeder Gruppe
rolesstring[]die Namen der Rollen, die eigenen und die seiner Gruppen
shared_login, shared_emailintwie viele aufgelistete Konten den Anmeldenamen oder die Adresse teilen (1: keines)
statesstring[]disabled oder unactivated, locked, no_object, draft_only, no_location, never; active, wenn nichts davon zutrifft
registrationstringnur in pending: email, administrator oder workflow

Schlüssel von exp:user:show

mode show, und account:

SchlüsselTypBedeutung
id, login, email, namewie in der Liste
classstringder Bezeichner der Benutzerklasse
node_idintder Hauptknoten
objectstringpublished, draft oder none
enabled, unactivated, lockedbool
max_loginintdie Einstellung des Kontos
failed_attempts, login_countint
last_visitint oder nullUnix-Zeit
password_changedint oder nullUnix-Zeit der letzten Passwortänderung, die das Audit kennt
password_change_requiredboolbei der nächsten Anmeldung wird ein neues Passwort verlangt
registrationstringder Zustand der Registrierung
statesstring[]wie in der Liste
groupsobject[]node_id, name, main (bool); die Hauptgruppe zuerst
rolesobject[]role, role_id, via (die Objekt-ID, der die Rolle zugewiesen ist), via_name, limitation ('', oder zum Beispiel Subtree:/1/2/, Section:3)
two_factorobject oder nullactive (bool), method; null, wenn die zweistufige Anmeldung nicht verfügbar ist
sessionsint oder nullaktive erfasste Sitzungen; null, wenn nicht erfasst
protectedstring'', oder der Grund wie in refusal
administratorbooldas Konto hat alle Rechte

Schlüssel der Befehle der Phase 2

BefehlSchlüssel
exp:user:groupsgroups[]: node_id, name, parent_node_id, members, subgroups
exp:user:rolesassignments[]: role, role_id, via, via_name, limitation
exp:user:sessionssessions[]: id, method, device, browser, ip, last_active, current
exp:user:exportcount, output
exp:user:importrows[]: line, login, result, errors[]; created, skipped, refused
exp:user:bulkaction, matched, accounts[]: id, login, result, reason
exp:user:audittotal, rows[]: time, event, result, actor_login, target_login, siteaccess
exp:user:hygienecounts: ein Objekt { Zustand: Zahl }
exp:user:whoamiaccount, roles, administrator
exp:user:check-loginvalid (bool), reason

Das result einer Importzeile ist would_create im Probelauf und created mit --apply; skipped (den Anmeldenamen gibt es schon) und refused (mit errors) sind in beiden gleich. exp:user:export schreibt die Konten selbst nach --output oder auf die Standardausgabe. Ohne --output sind die Daten die ganze Ausgabe: es wird kein Bericht ausgegeben, und der Exit-Code sagt, ob es geklappt hat. Mit --output gibt der Befehl einen Bericht aus, mit --format=json als JSON, mit count und output.

Beispiel

{
    "schema": "exp-user/1",
    "command": "exp:user:delete",
    "mode": "delete",
    "dry_run": true,
    "user": { "id": 1234, "login": "jane", "email": "[email protected]", "name": "Jane Doe", "enabled": false },
    "changes": [],
    "applied": false,
    "errors": [ "the user who acts (--as) cannot do this to its own account" ],
    "warnings": [],
    "refusal": "self",
    "exit": 1
}

Verwandte Seiten

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x