Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
Seiten: 1
#1 24. September 2015 20:28
- parsec
- kennt CMS/ms
- Registriert: 04. Oktober 2012
- Beiträge: 208
Automatisches Logout bei FEU auf bestimmte Seite!
Grüß Gott ihr lieben Leut...
ich habe auf einer Webseite FEU voll funktionstüchtig zum Laufen gebracht ( war ein hartes Stück Arbeit ). Alles bestens soweit! Nun hab ich das FEU so eingestellt dass nach 3 Minuten Nichtstun, der angemeldete User automatisch ausgeloggt wird. Das funktioniert auch soweit, aber der rausgeschmissene User sieht nur:
"Forbidden We are sorry, but you do not have the appropriate permission to view this item."
Gibt es da nicht eine elegantere Lösung? Zum Beispiel, automatisch auf eine editierte Seite weiterleiten, wo erklärt wird dass man automatisch ausgeloggt wurde. Oder gibt es das schon und ich hab die Einstellung übersehen? Oder kann man die "Forbidden"-Seite editieren und mit einem Link auf die Loginseite ausstatten. Oder direkt wieder auf die Login-Seite Pitchen?
Ich bitte um Hilfe und bin für jede Lösung dankbar!
Gruß an Alle
"Es ist unmöglich, alles zu wissen" - Horaz
Offline
#2 25. September 2015 22:38
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: Automatisches Logout bei FEU auf bestimmte Seite!
Hab das Modul gerade nirgends zum Testen online, aber gibt es da nicht eine Einstellung bzw. einen Modul-Parameter, wo man einstellen kann, wohin man nach dem Logout weitergeleitet wird?
Offline
#3 25. September 2015 10:39
- bd0
- Server-Pate
- Ort: Köln
- Registriert: 22. Juni 2011
- Beiträge: 208
Re: Automatisches Logout bei FEU auf bestimmte Seite!
Unter: Benutzerverwaltung -> FrontendUser-Verwaltung -> (oben rechts) Einstellungen -> (Tab) Interne Authentifizierung
im Bereich "Weiterleitungs-Einstellungen" bei
Seiten-ID/-Alias der Seite, auf die nach der Abmeldung gesprungen werden soll *:
das Seitenalias der Seite eintragen auf die nach der Abmeldung gesprungen werden soll, könnte klappen. Weiss allerdings nicht ob das bei automatischer Abmeldung damit auch funktioniert.
Offline
#4 25. September 2015 13:04
- Jamman
- Server-Pate
- Ort: Greimerath
- Registriert: 21. März 2013
- Beiträge: 98
Re: Automatisches Logout bei FEU auf bestimmte Seite!
Ich habe das gleiche Problem bei einer Seite wie Parsec.
Der Alias/Id-Eintrag aus den Weiterleitungsoptionen ist mir bekannt, funktioniert aber leider nur bei einer regulären Abmeldung.
Im Falle der automatischen Abmeldung wird die eingetragene Seite leider nicht angesprochen, zumindestens bei mir...
Ich könnte hier auch einen guten Tip gebrauchen.
Danke schonmal. Grüße Jamman
Offline
#5 25. September 2015 17:47
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.437
Re: Automatisches Logout bei FEU auf bestimmte Seite!
Schon in die Ereignisverwaltung geschaut?
Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)
Offline
#6 27. September 2015 10:42
- Jamman
- Server-Pate
- Ort: Greimerath
- Registriert: 21. März 2013
- Beiträge: 98
Re: Automatisches Logout bei FEU auf bestimmte Seite!
Schon in die Ereignisverwaltung geschaut?
Hi NaN, danke für den Hinweis. Ich hab reingeschaut und den Event 'OnExpireUser' entdeckt, der mir am naheliegensten erschien.
Ich weiß, dass man mit einem Event ein Modul oder einen UDT triggern kann. Ich dachte dass ich z.B. mit einem PHP-Redirect innerhalb eines UDT's vielleicht auf dem richtigen Weg wäre, aber das lief nicht.
Denke ich falsch? Bitte erhelle mich
Gruß und schönen Sonntag
Offline
#7 27. September 2015 18:14
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.437
Re: Automatisches Logout bei FEU auf bestimmte Seite!
Sorry, aber bei mir funktioniert die ganze FEU-Sache vorn und hinten nicht.
Nun hab ich das FEU so eingestellt dass nach 3 Minuten Nichtstun, der angemeldete User automatisch ausgeloggt wird. Das funktioniert auch soweit
Wo habt ihr da was eingestellt?
Was bedeutet "Nichtstun"?
Ich werde z.B. generell nach 30 Sekunden ausgeloggt.
Obwohl ich die ganze Zeit auf der Seite aktiv bin.
D.h. ich klicke mich da durch die Seiten und irgendwann *schwupps* bin ich ausgeloggt.
Was muss ich also tun, um als "aktiver User" wahrgenommen zu werden?
EDIT: AHA!
Das Modul aktualisiert den Zeitpunkt der letzten Aktivität eines Users nur alle 3 Minuten
(Ich will einen Facepalm-Smiley!)
D.h. man muss in den FEU-Einstellungen bei "Auszeit für Session" mindestens 180 Sekunden eintragen!
Das Event OnExpireUser wird offenbar nie ausgeführt.
Wenn ich mich da durch den Code wühle, stoße ich auf sowas:
FrontEndUsers.module.php
private function _load()
{
...
$this->usermanip->SetExpireNotifier(array($this,'NotifyExpiredUser'));
...
}
D.h. man übergibt dem Usermanipulator eine Callback-Funktion namens NotifyExpiredUser() in der Klasse FrontEndusers.
Dann sehe ich in class.Usermanipulator.php folgendes:
public function SetExpireNotifier($callback)
{
if( is_callable($callback) )
{
$this->_expire_notifier_callback = $callback;
}
}
D.h. die übergebene Callback-Funktion wird nur dann gesetzt, wenn sie auch aufrufbar ist.
Dann sehe ich in FrontEndUsers.module.php:
protected function NotifyExpiredUser( $userid )
{
...
$this->SendEvent('OnExpireUser',$parms);
...
}
Man beachte das "protected". D.h. diese Funktion ist vom Usermanipulator aus NICHT aufrufbar. Ergo wird im Usermanipulator auch keine Callback-Funktion gesetzt. Und das wiederum bedeutet, dass dieses hier in class.FrontEndUsersManipulator.php nie zu einem Ergebnis führen kann:
function ExpireUsers()
{
...
$this->NotifyExpiredUser( $row['userid'] );
...
}
Weil die Funktion im Usermanipulator dieses macht:
protected function NotifyExpiredUser($params = array())
{
...
if( $this->_expire_notifier_callback ) call_user_func_array($this->_expire_notifier_callback,$params);
}
Sie versucht also diese (für den Usermanipulator nicht existente) Callback-Funktion aufzurufen. Daher kann das Event OnExpireUser auch nie ausgeführt werden, weil das nämlich in dieser Callback-Funktion geschehen soll. Wenn man dieses "protected" in "public" ändert, dann klappt es.
EDIT: Ich will UNBEDINGT einen Facepalm-Smiley!
ABER:
Ihr könnt auch über die .htaccess-Datei eine benutzerdefinierte Fehlerseite definieren:
ErrorDocument 403 index.php?page=error403
Dann im CMS eine Seite vom Typ "Fehlerseite" mit Fehlertyp "Page forbidden (403)" anlegen und dort 'nen netten Text schreiben.
Klappt auch ganz gut.
Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)
Offline
#8 27. September 2015 19:17
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: Automatisches Logout bei FEU auf bestimmte Seite!
EDIT: Ich will UNBEDINGT einen Facepalm-Smiley!
Das gibt die aktuelle Toolbar in FluxBB nicht her ... kann ich aber dafür in Panther frei konfigurieren
.
Offline
#9 27. September 2015 20:18
- bd0
- Server-Pate
- Ort: Köln
- Registriert: 22. Juni 2011
- Beiträge: 208
Re: Automatisches Logout bei FEU auf bestimmte Seite!
Ich fände einen "gefällt mir" Button toll, um sich für einen hilfreich Posts zu bedanken
Danke für die Lösungen!
Beitrag geändert von bd0 (28. September 2015 08:16)
Offline
#10 27. September 2015 20:53
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: Automatisches Logout bei FEU auf bestimmte Seite!
Gibt's auch in Panther und nennt sich Reputationssystem. Da steht dann unter jedem Beitrag "War der Beitrag für dich hilfreich? (+) ja, (-) nein" Und dafür bekommt der Poster dann Punkte, wobei sich konfigurieren lässt, ob es auch negative Punkte geben soll.
Offline
#11 28. September 2015 23:35
- Jamman
- Server-Pate
- Ort: Greimerath
- Registriert: 21. März 2013
- Beiträge: 98
Re: Automatisches Logout bei FEU auf bestimmte Seite!
Sie versucht also diese (für den Usermanipulator nicht existente) Callback-Funktion aufzurufen. Daher kann das Event OnExpireUser auch nie ausgeführt werden, weil das nämlich in dieser Callback-Funktion geschehen soll. Wenn man dieses "protected" in "public" ändert, dann klappt es.
EDIT: Ich will UNBEDINGT einen Facepalm-Smiley!
Danke NaN für deine Hilfe.
Wenn ich deine Code-Rundreise richtig verstehe, ist das Modul wohl unsauber bzw. nicht konsequent programmiert.
Deinen Ratschlag per Fehlerseite 403 probiere ich gerne die Tage aus. Ich melde mich, ob's ne Lösung gegeben hat.
Gruß
Offline
Seiten: 1