UMGT: Weiterleiten nach Anmeldung, Fehlermeldung

Hier finden sich Fragen und Ergänzung zur Dokumentation. // All questions and discussions about the documentation.
Benutzeravatar
ma2604121
Beiträge: 349
Registriert: 24.01.2011, 23:42:18

UMGT: Weiterleiten nach Anmeldung, Fehlermeldung

Beitrag von ma2604121 » 13.06.2011, 15:03:30

Hallo,
ich nutze derzeit APF 1.14, da es einige Komponenten / Erweiterungen enthält, die mir einen Teil der Arbeit erleichtern. Unter anderem das Modul zur Benutzerverwaltung.

Es klappt auch alles, allerdings erhalte ich nach dem Login die Meldung
Login ist zur Zeit nicht möglich. Bitte versuchen Sie es zu einem späteren Zeitpunkt noch einmal.
Es findet allerdings trotzdem ein Login statt.

Das ist erkennbar, da das Menü teilweise um entsprechende Punkte erweitert wird, die nur für angemeldete Besucher sichtbar sind. Allerdings fehlen immer noch die Menüpunkte "Admin" und "Abmelden". Dafür ist noch der Punkt "Anmelden" vorhanden. Der verschwindet erst, wenn ich die Seite neu lade, dann erhalte ich die Punkte "Abmelden" und "Admin".

Daher auch die Folgefrage: Kann ich dem Modul mitgeben, dass nach dem Login eine bestimmte Seite angezeigt werden soll? Beim Abmelden geht das mittels

Code: Alles auswählen

<umgt:template condition="logged-in" transform-on-place="true">
    <li><a href="?page=home&modules_usermanagement_biz-action:login=logout:true">Abmelden</a></li>
</umgt:template> 
Durch das Einsetzen von ?page=home erfolgt nach dem Abmelden die Weiterleitung auf meine Startseite. Geht das auch irgendwie für das Anmelden?

Benutzeravatar
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: UMGT: Weiterleiten nach Anmeldung, Fehlermeldung

Beitrag von Screeze » 13.06.2011, 15:14:33

Hi, hab grade nicht viel Zeit, aber ich glaube du nutzt nicht den aktuellsten stand aus dem SVN, denn dort wurden nochmal ein paar sachen ergänzt, u.a. Weiterleitungen etc.

viewtopic.php?f=10&t=692&start=30#p7592

Benutzeravatar
ma2604121
Beiträge: 349
Registriert: 24.01.2011, 23:42:18

Re: UMGT: Weiterleiten nach Anmeldung, Fehlermeldung

Beitrag von ma2604121 » 13.06.2011, 15:20:38

Hab mir gerade die aktuellste Version geholt und eingepflegt. Bleibt alles beim alten.

In dem Beitrag kann ich leider nichts zum Thema "Weiterleitung beim Login" finden.

Nachtrag:
Jetzt habe ich sogar noch einen weiteren Fehler. Wenn ich mich abmelden möchte, erhalte ich folgende Fehlermeldung:

Code: Alles auswählen

Error!

Error-ID:     2abfa9ada4ef81d9be82d9491cbcae21
Message:     Missing argument 1 for UmgtUserSessionStore::logout(), called in /var/www/alpha/apps/modules/usermanagement/biz/login/UmgtLoginAction.php on line 12 and defined
Number:     2
File:     /var/www/alpha/apps/modules/usermanagement/biz/UmgtUserSessionStore.php
Line:     134
Das Gleiche passiert mir auch in der Sandbox von 1.14.

Benutzeravatar
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: UMGT: Weiterleiten nach Anmeldung, Fehlermeldung

Beitrag von Screeze » 13.06.2011, 15:37:32

Hm ich dachte da waren Redirect Provider enthalten... Hatte leider noch keine Zeit mir das selber anzusehen, aber werde ich nachholen und mich dann wieder melden.

Benutzeravatar
ma2604121
Beiträge: 349
Registriert: 24.01.2011, 23:42:18

Re: UMGT: Weiterleiten nach Anmeldung, Fehlermeldung

Beitrag von ma2604121 » 13.06.2011, 15:41:10

Wenn ich das richtig sehe, fehlt in UmgtLoginAction.php in Zeile 12

Code: Alles auswählen

$sessionStore->logout(); 
ein Übergabewert.

Dieser wird scheinbar in UmgtUserSessionStore.php in Zeile 134

Code: Alles auswählen

public function logout($applicationIdentifier) { 
verlangt...?

Benutzeravatar
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: UMGT: Weiterleiten nach Anmeldung, Fehlermeldung

Beitrag von Screeze » 13.06.2011, 15:48:03

Jap es wurde mit der neuen Änderung die Möglihckeit gegeben, dass der SessionStore contextabhängig ist, d.h. hast du mehrere apps auf dem selben vserver in versch. Contexten laufen, kannst du die systeme unterscheiden.

Da muss natürlich beim Logout dann auch übergeben werden welche app abgemeldet werden soll.

Benutzeravatar
ma2604121
Beiträge: 349
Registriert: 24.01.2011, 23:42:18

Re: UMGT: Weiterleiten nach Anmeldung, Fehlermeldung

Beitrag von ma2604121 » 13.06.2011, 15:50:20

Ok, dann scheint dennoch irgendwo ein Fehler zu sein. Wie gesagt: Die Sandbox will nun auch nicht mehr.

Benutzeravatar
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: UMGT: Weiterleiten nach Anmeldung, Fehlermeldung

Beitrag von Screeze » 13.06.2011, 15:52:58

hast du die sandbox des alten pakets mit den sourcen des neuen pakets zusammengeführt?

Benutzeravatar
ma2604121
Beiträge: 349
Registriert: 24.01.2011, 23:42:18

Re: UMGT: Weiterleiten nach Anmeldung, Fehlermeldung

Beitrag von ma2604121 » 13.06.2011, 17:30:44

Screeze hat geschrieben:hast du die sandbox des alten pakets mit den sourcen des neuen pakets zusammengeführt?
Nein. Ich habe die neueste Version heruntergeladen und es komplett damit probiert.
Screeze hat geschrieben:Da muss natürlich beim Logout dann auch übergeben werden welche app abgemeldet werden soll.
Wo teile ich dem APF denn mit, welche App gerade läuft? Ist das zwingend notwendig (also auch dann, wenn ich nur eine App laufen habe)? Bzw. wie teile ich das mit?

In der Sandbox sieht der Logout wie folgt aus:

Code: Alles auswählen

   <umgt:template condition="logged-in" transform-on-place="true">
      <template:addtaglib
            namespace="modules::usermanagement::pres::taglib"
            prefix="umgt"
            class="logoutlink"
            />
      <li><a href="<umgt:logoutlink />">Logout</a></li>
   </umgt:template> 
Wo wird da die ID mitgeteilt?

Ist das dieser Teil der Konfigurationsdatei?

Code: Alles auswählen

[InstanceName]
ConnectionKey = ""
ApplicationID = ""
ServiceMode = "" 
Was kann ich da als ApplicationID eingeben? Ist das egal?

Benutzeravatar
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: UMGT: Weiterleiten nach Anmeldung, Fehlermeldung

Beitrag von Screeze » 13.06.2011, 18:04:08

Hmm da musst du mal warten bis ich mir das selber angesehen habe, dr.e. ist im Urlaub.
Ich kann aber nicht versprechen dass ich das heute noch schaffe, sorry.


Benutzeravatar
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: UMGT: Weiterleiten nach Anmeldung, Fehlermeldung

Beitrag von Screeze » 15.06.2011, 19:39:41

Sorry ich habs auch heute nicht geschafft, aber vergessen hab ich dich nicht, ich versuch es morgen zu schaffen. (Hab momentan etwas zu tun u.a. da ich mich gerade Selbstständig mache neben Schule bzw. bald Studium)

Benutzeravatar
ma2604121
Beiträge: 349
Registriert: 24.01.2011, 23:42:18

Re: UMGT: Weiterleiten nach Anmeldung, Fehlermeldung

Beitrag von ma2604121 » 16.06.2011, 13:09:56

Ja, das habe ich soweit verfolgt. ;)

Benutzeravatar
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: UMGT: Weiterleiten nach Anmeldung, Fehlermeldung

Beitrag von Screeze » 16.06.2011, 15:48:58

Ok, habe mir das aktuelle Paket gezogen und die Sandbox installiert.
Dein erstes Problem mit dem Login kann ich (in der Sandbox) nicht nachvollziehen. Arbeitest du auf der Sandbox oder deiner eigenen Anwendung?

edit: ich habe immernoch die Vermutung, dass du nicht auf den aktuellsten Dateien arbeitest, denn:
Wenn ich das richtig sehe, fehlt in UmgtLoginAction.php in Zeile 12
die UmgtLoginAction wurde umbenannt in ImgtLogoutAction, da sie keinen Login sondern Logout durchführt. Kann es sein dass unter Umständen nicht alle Dateien aktualisiert wurden bei dir, und diese daher nichtmehr miteinander arbeiten wollen?
Wo teile ich dem APF denn mit, welche App gerade läuft? Ist das zwingend notwendig (also auch dann, wenn ich nur eine App laufen habe)? Bzw. wie teile ich das mit?
Dies wird über den Context geregelt, jedenfalls im Documentcontroller des Logins. Einige Taglibs nehmen scheinbar den Identifier manuell entgegen, über ein Attribut namens "app-ident", dort musst du einfach den Context eintragen.

Die aktuelle Implementierung unterstützt ein Redirect nach dem Login und dem Logout folgendermaßen:
in umgt_login_controller.php Z. 76ff findest du folgende Zeilen:

Code: Alles auswählen

// redirect to target page
$urlProvider = &$this->getDIServiceObject('modules::usermanagement::biz', 'LoginRedirectUrlProvider');
/* @var $urlProvider UmgtRedirectUrlProvider */
HeaderManager::forward(LinkGenerator::generateUrl(Url::fromString($urlProvider->getRedirectUrl())));
 
Es wird ein DIServiceObject geladen. Und zwar das namens "LoginRedirectUrlProvider", welches in der config unter "config/modules/usermanagement/biz/DEFAULT_serviceobjects.ini" gesucht wird. In der Sandbox sieht die Config folgendermaßen aus:

Code: Alles auswählen

[LoginRedirectUrlProvider]
servicetype = "NORMAL"
namespace = "sandbox::pres::provider"
class = "SandboxLoginRedirectProvider"

[LogoutRedirectUrlProvider]
servicetype = "NORMAL"
namespace = "sandbox::pres::provider"
class = "SandboxLogoutRedirectProvider"
Hier wird also sowohl ein Login- als auch ein Logoutprovider definiert. Der Loginprovider liegt unter sandbox/pres/provider/SandboxLoginRedirectProvider.php und sieht folgendermaßen aus:

Code: Alles auswählen

<?php

import('modules::usermanagement::biz::login', 'UmgtRedirectUrlProvider');

class SandboxLoginRedirectProvider extends APFObject implements UmgtRedirectUrlProvider {

   public function getRedirectUrl() {
      return '?page=login';
   }

}

?>
Genauso sieht das für den Logout aus. Einfach einen Provider in der Config definieren, Provider erstellen (geht simpel wie man sieht) schon sollte das funktionieren.


Ist dir damit geholfen?

Benutzeravatar
ma2604121
Beiträge: 349
Registriert: 24.01.2011, 23:42:18

Re: UMGT: Weiterleiten nach Anmeldung, Fehlermeldung

Beitrag von ma2604121 » 16.06.2011, 16:17:00

Danke, dass Du Dir die Mühe gemacht hast. Leider kann ich es derzeit nicht testen bzw. nachvollziehen. Sobald ich wieder am richtigen PC bin, werde ich mir das mal ansehen.

Antworten

Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 1 Gast