Kundenansicht der Mitarbeiter: Einschalten gesperrt statt 403-Text nach dem Tipp

Die Hülle reicht viewAs der Sitzung an die Einschalt-Option der Module durch
(News, Terminplaner, Webshop, Buchungskalender, Zeiten), auch wenn ein Modul es
nicht nennt. In Entdecken ist der Einschalten-Knopf gesperrt, daneben steht
"In der Kundenansicht nicht möglich." Meine bleibt bei gesperrtem Knopf auf der
Bestätigungsseite (jetzt gepinnt).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
ClaudeandClaude Sonnet 5.5 committed 2026-10-16 19:30:26 +00:00
1 parent 0df96611dc
commit 524ac64d20
5 files changed
+57 -4

No files matched your search

+7 -4
View File
@@ -42,10 +42,13 @@ export const FUNKTIONS_MODULE = {
// Diese Module bekommen init*(wurzel, { einschalten }); die Analyse nutzt POST /api/funktionen/analyse/activate und bleibt init*(wurzel)
export const MIT_EINSCHALTEN = ['news', 'termine', 'webshop', 'buchungen', 'zeiten']
/** einschalten(platz, { key, projectId, onFertig, viewAs? }): lädt die Einschalt-Ansicht erst beim Aufruf; ein Ladefehler geht an das Modul zurück. */
export const einschaltenOption = (lade) => async (platz, optionen) => {
/**
* einschalten(platz, { key, projectId, onFertig, viewAs? }): lädt die Einschalt-Ansicht erst beim Aufruf; ein Ladefehler geht an das Modul zurück.
* In der Mitarbeiter-Kundenansicht (viewAs der Sitzung) gilt immer viewAs true: Der Knopf ist gesperrt, auch wenn das Modul es nicht nennt.
*/
export const einschaltenOption = (lade, { viewAs = false } = {}) => async (platz, optionen) => {
const modul = await lade('/neu/funktion-einschalten.js')
return modul.zeigeEinschalten(platz, optionen)
return modul.zeigeEinschalten(platz, viewAs ? { ...optionen, viewAs: true } : optionen)
}
/** Antwort von /api/auth/me → weiterleiten (Anmeldung, Mitarbeiter, abgelaufen, Passwort geändert) oder zeigen (Kunde, Kundenansicht). */
@@ -210,7 +213,7 @@ export async function starteHuelle({ win = window, doc = document, api = apiStan
if (modul) {
const projekt = new URLSearchParams(route.query).get('projekt')
if (projekt) wurzel.dataset.wunschProjekt = projekt
if (MIT_EINSCHALTEN.includes(route.etage)) await geladen[name](wurzel, { einschalten: einschaltenOption(lade) })
if (MIT_EINSCHALTEN.includes(route.etage)) await geladen[name](wurzel, { einschalten: einschaltenOption(lade, { viewAs }) })
else await geladen[name](wurzel)
router.stempeln() // die Module löschen mit replaceState(null, …) den Verlaufsstempel
} else {