Zum Hauptinhalt springen

Zugriffskontrolle

Die Zugriffskontrolle in dzbot definiert, wer was auf einem Server tun kann.

Praktisch nutzt dzbot drei Ebenen:

  1. Benutzerrechte (direkte Rechte auf einem Spieler-Konto)
  2. Gruppenrechte (Rechte, die über Gruppen geerbt werden)
  3. Verfügbarkeit eines Abonnements (Server benötigt ein gültiges Abonnement für den dzbot-Dienst)

Fraktionsspezifische Rechte sind im Konzept Fraktionen dokumentiert.

Wie der effektive Zugriff berechnet wird

Für jeden Spieler kombiniert dzbot:

  • Direkte Benutzerrechte auf den Spieler
  • Rechte aus allen Gruppen, denen der Spieler angehört
  • Rechte aus allen serverseitigen Standardgruppen

Namensmuster, das in Rechten verwendet wird:

  • <modul>.<aktion> (z. B. players.whitelist, groups.edit_access_rights, settings.edit)

Benutzerrechte

Benutzerrechte sind explizite Berechtigungen, die direkt einem bestimmten Spieler zugewiesen werden.

Verwende Benutzerrechte, wenn:

  • eine Person eine Ausnahme benötigt,
  • du vorübergehenden erhöhten Zugriff benötigst,
  • du nicht eine ganze Gruppe ändern möchtest.

Beispiele:

  • players.whitelist
  • restrictions.create
  • players.change_access_rights

Wo verwaltet:

  • Admin -> Spieler -> Spieler-Details -> Einstellungen-Tab

Wann zu verwenden:

Verwende Benutzerrechte nur bei vorübergehenden Ausnahmen, i. d. R. sind Gruppenrechte besser geeignet.

Gruppenrechte

Gruppenrechte sind die Standardmethode zur Verwaltung des Teamzugriffs.

Du definierst Rechte einmal für eine Gruppe und weist Spieler dieser Gruppe zu. Jedes Mitglied erbt diese Rechte.

Wo verwaltet:

  • Admin -> Gruppen -> Gruppe -> Einstellungen-Tab -> Benutzerrechte
  • Admin -> Gruppen -> Gruppe -> Spieler-Tab, um Mitglieder hinzuzufügen/zu entfernen

Bewährte Praxis:

  • Rollebasierte Gruppen erstellen (z. B. Support, Moderation, Ökonomie, Inhalte)
  • Benutzer-Level-Overrides minimal halten
  • Gruppenänderungen für langfristige Zugriffsänderungen bevorzugen

Häufige Beispiele für Gruppenrechte:

  • groups.view, groups.create, groups.edit, groups.delete
  • groups.edit_access_rights
  • groups.manage_all_places

Standardgruppen

Standardgruppen sind serverseitige Baseline-Gruppen, die in den Zugriffskontrollen für alle Spieler auf diesem Server berücksichtigt werden.

Dies ist nützlich für eine gemeinsame Baseline-Berechtigungsmenge, ohne jeden einzelnen Spieler manuell zu bearbeiten.

Wo verwaltet:

  • Admin -> Einstellungen -> Spieler & Zugriff -> Standardgruppen

Admin-Level-Rechte

Einige Rechte werden als Admin-Level betrachtet und schalten Admin-Panel-Bereiche und -Operationen frei.

Es gibt auch eine Administrator-Berechtigungsebene mit vollen Zugriffsrechten auf Serverebene.

Verwende diese Rechte sehr vorsichtig und nur für vertrauenswürdige Mitarbeiter.

Typische Beispiele mit hohen Auswirkungen:

  • orders.refund
  • orders.redeliver
  • server.change_plan
  • players.impersonate_player
  • tickets.admin_view
  • tickets.reply
  • tickets.assign

Ticket-Rechte sind zwischen Shop-Zugriff und Admin-Zugriff getrennt:

  • tickets.view erlaubt Spielern, Shop -> Tickets zu öffnen und ihre eigenen Tickets zu sehen.
  • tickets.create, tickets.send_message, tickets.close und tickets.archive steuern Spieleraktionen im Shop-Ticketablauf.
  • tickets.admin_view schaltet schreibgeschützten Zugriff auf Server Admin -> Tickets frei.
  • tickets.reply, tickets.internal_message, tickets.assign und tickets.change_status sind reine Admin-Ticketrechte und zählen ebenfalls als Admin-Panel-Zugriff.

Die Breadcrumb-Leiste im Admin-Bereich kann einen Hilfslink anzeigen, der die entsprechende Dokumentationsseite öffnet.

Dies wird durch ein dediziertes Zugriffsrecht gesteuert:

  • documentation.view

Bewährte Praxis:

  • Weise documentation.view jeder Gruppe zu, die Admin-Panel-Zugriff hat (z. B. Moderatoren, Support, Volladmins)
  • Halte es aus Spielergruppen fern, um zu vermeiden, dass interne Hilfsdokumentationen im Shop-Frontend offengelegt werden

Abonnementprüfung vs. Rechte

Rechte allein reichen nicht immer aus. Admin- und Shopzugriffe erfordern auch ein aktives Abonnement.

Zugriffe können daher aus zwei Gründen fehlschlagen:

  1. Fehlendes Berechtigungsrecht
  2. Inaktives oder abgelaufenes Abonnement (Admin-Routen leiten zu Stripe Manage weiter)

Wenn Mitarbeiter sagen: „Ich habe das Recht, aber keinen Zugriff“, überprüfe zuerst den Abonnementstatus. Admin-Seiten leiten bei Inaktivität zu Stripe Manage um.

Checkliste für Zugriffsprüfungen

Verwende diese Schnell-Checkliste, wenn der Zugriff nicht wie erwartet funktioniert:

„Ich sehe keinen Menüeintrag“

  • Überprüfe Gruppen-/Benutzerrechte für das zugehörige Modul/Aktion.
  • Überprüfe, ob das Serverabonnement aktiv ist.

„Ich kann eine Seite öffnen, aber keine Aktionen ausführen“

  • Anzeigerechte und Bearbeitungs-/Lösch-/Ausführungsrechte sind separate Rechte.
  • Erteile das spezifische Aktionsrecht (nicht nur Modul-Anzeigerechte).

„Ein neuer Spieler hat zu viel/zu wenig Zugriff“

  • Überprüfe Standardgruppen in den Servereinstellungen.
  • Überprüfe, ob der Spieler direkte Benutzerrechte-Overrides hat.

Empfohlener Admin-Workflow

  1. Erstelle eine kleine Anzahl rollenbasierter Gruppen.
  2. Weise Modul-/Aktionsrechte diesen Gruppen zu.
  3. Verwende Standardgruppen für die Basisberechtigung beim Onboarding.
  4. Verwende direkte Benutzerrechte nur für Ausnahmen.
  5. Überprüfe hochprivilegierte Berechtigungen (Vollzugriffs-Admin, Rückerstattungen, Einschränkungen, größere Konfigurationsänderungen) regelmäßig.