Mandantenwechsel im Frontend nicht erkannt

Gesperrt
chris8408
Beiträge: 87
Registriert: So 2. Apr 2006, 19:07
Wohnort: Korschenbroich
Kontaktdaten:

Mandantenwechsel im Frontend nicht erkannt

Beitrag von chris8408 » Fr 28. Sep 2012, 12:01

Hallo zusammen,

ich schlage mich gerade mit einem Problem rum.

Ich habe eine Contenido-Installation (4.8.15) mit zwei Mandanten.

ID / Verzeichnisse:
1. cms
2. xyz

Die Mandanten 1 und 2 sind gegenseitig verlinkt.

Folgendes Problem taucht im Frontend auf:
Rufe ich einzeln Mandant 1 auf, klappt alles wunderbar.
Rufe ich einzeln Mandant 2 auf, klappt auch alles wunderbar.

Rufe ich zunächst Mandant 1 auf und wechsel dann zu Mandant 2 per Link (also gleiche Session im Browser) so führt Contenido intern immer noch die Session als Mandant 1. Sprich in den Variablen $client ist immer noch die "1" gesetzt. Das Problem dabei ist, dass die hrefbase nicht geändert wird und entsprechend Mandanten-Konfigurationen auch nicht korrekt geladen werden.

Ich habe einmal in der front_content.php die Variable $client hart auf 2 gesetzt. Damit wird glücklickerweise in den meisten Fällen die hrefbase korrekt gesetzt. Führe ich ein Login durch und nutzt man fälschlicherweise einen Frontenduser aus Mandant 1, wird die base wieder falsch mit mandant 1 gesetzt.

Für Mandant 1 benötige ich zwingend den hrefbase. Ich habe schon versucht diesen global zu deaktivieren (dann funktioniert es mit dem Login). Anschließend habe ich per Mandanteneinstellungen im Mandant 1 den base-Generator wieder hinzukonfiguriert. Dies hat den Effekt, dass beim wechsel von Mandant 1 auf Mandant 2 die Base-Generierung wieder übernommen und gar das $client=2 in der front_content.php für die Abfrage der Konfigurationen ignoriert wird (Base immer da und beim Login wieder falsch).

Hat hier jemand einen Tip, wo und wie ich was machen muss.

Danke,

Christian John
--------------------------------------------
Christian John aus Korschenbroich bei Düsseldorf (https://www.john-softwareentwicklung.de)
Selbständiger Web-Entwickler
“There are 10 types of people in the world… those that understand binary and those that don’t.”

xmurrix
Beiträge: 3143
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Mandantenwechsel im Frontend nicht erkannt

Beitrag von xmurrix » Sa 29. Sep 2012, 14:08

Hallo chris8408,

du kannst folgendes Probieren:
  • Erstelle jeweils eine Konfígurations-Datei in den Mandantenverzeichnissen, z. B. "cms/config.local.php" und "xyz/config.local.php"
  • Überschreibe den Mandanten, also die Globale Variable $client mit $load_client

    Code: Alles auswählen

    <?php
    // code der config.local.php
    global $client, $load_client;
    $client = (int) $load_client;  // $load_client ist im mandantenverzeichnis in der config.php definiert
    
So hast du immer die richtige Mandantenid.

Der Grund ist folgendes. Die Id des Mandanten wird in der Session gespeichert, wenn du vom "cms" (z. B. id = 1) zum anderen Mandanten "xyz" (z. B. id = 2) wechselst, wird die Id des zuerst gespeicherten Mandanten verwendet, nicht die des neuen Mandanten.

Bei einem Mehrmandantensystem mit einem Mandanteverzeichnis muss man beim Wechsel des Mandanten die Id des Mandanten an die URL anhängen.
In deinem Fall (Mehrmandantensystem mit eigenen Mandantenverzeichnissen) sollte das idealerweise automatisch funktionieren.

Der Vorschlag hier sollte dein Problem lösen, bessr ist es, wenn das einem von CONTENIDO abgenommen wird.

Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

chris8408
Beiträge: 87
Registriert: So 2. Apr 2006, 19:07
Wohnort: Korschenbroich
Kontaktdaten:

Re: Mandantenwechsel im Frontend nicht erkannt

Beitrag von chris8408 » So 30. Sep 2012, 12:49

Hallo xmurrix,

wow. Das habe ich echt noch eine Lücke bei mir entdeckt. Das funktioniert auf Anhieb!

Vielen, vielen Dank.

Chris
--------------------------------------------
Christian John aus Korschenbroich bei Düsseldorf (https://www.john-softwareentwicklung.de)
Selbständiger Web-Entwickler
“There are 10 types of people in the world… those that understand binary and those that don’t.”

borcherta
Beiträge: 36
Registriert: Sa 1. Dez 2007, 11:06
Kontaktdaten:

Re: Mandantenwechsel im Frontend nicht erkannt

Beitrag von borcherta » So 25. Mai 2014, 17:16

Hallo, habe das gleiche Problem mit der 4.6.24 Version.

Scheint aber nicht zu funktionieren mit der Lösung eine congig Datei in jedes Mandantenverzeichnis zu kopieren.

Hat jemand eine Idee?
Danke
.axel

Gesperrt