feat(discord): Ticket-Befehle + saubere Rechtetrennung Kunde/Personal

Drei neue Slash-Befehle:
- /ticket (jeder verknüpfte Kunde): erstellt direkt ein neues Ticket
  samt zugehörigem privaten Thread, ganz ohne Web-Besuch.
- /zuweisen und /schliessen (nur Personal, nur innerhalb eines
  Ticket-Threads): weisen das Ticket des aktuellen Threads einer
  per Discord verknüpften Personal-Person zu bzw. schließen es.

Rechtetrennung (Kunden: nur eigenes Ticket erstellen/lesen, Personal:
mehr Rechte):
- Zuweisen/Schließen prüfen serverseitig ein verknüpftes
  Personal-Konto (kind='staff'), unabhängig von der separaten
  staffUserIds-Liste für /kc-status und /kc-kunde.
- Alle vier Personal-Befehle sind zusätzlich per
  setDefaultMemberPermissions(ManageThreads) so eingestellt, dass sie
  Kunden gar nicht erst in der Befehlsliste angezeigt werden (die
  serverseitige Prüfung bleibt trotzdem bestehen, das ist nur die
  UI-Sichtbarkeit).
- Bugfix dabei gefunden: eine Kundenantwort im Thread eines bereits
  geschlossenen Tickets hat es bisher unbemerkt wieder geöffnet (die
  Web-Oberfläche verhindert das schon lange). Jetzt wird das erkannt
  und die Antwort mit einem Hinweis abgelehnt, wie im Web.

Anleitung unter Einstellungen > Discord entsprechend ergänzt.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Kundencenter 2026-09-29 00:05:38 +02:00
parent 3371655ca3
commit 8243cdb111
2 changed files with 66 additions and 4 deletions

View file

@ -17,6 +17,8 @@ function Guide({ redirectUri }: { redirectUri: string }) {
<li><strong>Kunden-Anmeldung (OAuth) einrichten:</strong> Im Reiter „OAuth2 → General“ die <strong>Client ID</strong> und (unter „Reset Secret“) das <strong>Client Secret</strong> kopieren, unten eintragen. Unter „Redirects“ genau diese Adresse eintragen: <code className="mono">{redirectUri}</code></li>
<li><strong>IDs ermitteln:</strong> In Discord unter Einstellungen → Erweitert den „Entwicklermodus“ aktivieren. Danach mit Rechtsklick auf den Server, die gewünschten Kanäle und die eigene Person jeweils „ID kopieren“ wählen.</li>
<li><strong>Hier eintragen:</strong> Token, Server-ID, Kanal-ID für Systemmeldungen (Backup-Warnungen, neue Tickets) und Kanal-ID für Ticket-Threads unten speichern. Unter „Erlaubte Nutzer-IDs“ die Discord-IDs aller Personen eintragen, die <code className="mono">/kc-status</code> und <code className="mono">/kc-kunde</code> nutzen dürfen.</li>
<li><strong>Verfügbare Befehle:</strong> Kunden mit verknüpftem Konto können mit <code className="mono">/ticket</code> direkt ein neues Ticket eröffnen. Personal kann <em>innerhalb eines Ticket-Threads</em> mit <code className="mono">/zuweisen</code> und <code className="mono">/schliessen</code> das Ticket zuweisen bzw. schließen – dafür muss die jeweilige Person ihr eigenes Discord-Konto ebenfalls unter „Mein Konto“ verknüpft haben.</li>
<li><strong>Saubere Trennung:</strong> Kunden sehen und nutzen ausschließlich <code className="mono">/ticket</code> sowie ihren eigenen Ticket-Thread. Die Personal-Befehle sind zusätzlich so eingestellt, dass sie nur Discord-Mitgliedern mit der Server-Berechtigung „Threads verwalten“ überhaupt in der Befehlsliste angezeigt werden – vergeben Sie diese Berechtigung über eine eigene Rolle nur an Ihr Support-Team, nicht an die Kundenrolle.</li>
</ol>
</details>);
}