[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
Login-Modul für REX 4.0 portiert - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
rudoo
Beiträge: 17
Registriert: 12. Jan 2008, 15:08
Wohnort: Zürich

Login-Modul für REX 4.0 portiert

12. Jan 2008, 16:10

Hallo, hab mir das Redaxo runtergeladen und vermisste für die aktuelle Version 4.0 und PHP5 ein Login-Modul. Für REX 3.2 waren ja bereits einige User aktiv --> Hier die Portierung für REX 4.0, verwendete Sources:

1) Login-Modul: aus Download-Bereich, Module, Suche nach 'Login' bzw. in Kategorie 'Sonstiges / Misc' --> Modul 'Login (Login / Logout / Passwort vergessen)'
2) Authentifizierung: aus Download-Bereich, Templates, Community / Login, Auth.. --> Template: 'Authentifizierung - mehrere Benutzerbereiche'
3) Simple-User-AddOn: aus Download-Bereich, AddOns --> AddOn: 'Simple User'

Während das simple_user-AddOn 1:1 in REX 4.0 installiert werden kann, habe ich das Authentifizierungstemplate und das Login-Modul angepasst. Zusätzlich machte ich eine Anpassung in der (Redaxo-Installations-)Klasse class.rex_login.inc.php (vermutlich ist da noch ein Fehler drin). Der gesamte Installationsvorgang ist zu Beginn des Login-Moduls im Quelltext dokumentiert. Dort sind auch die Open Issues vermerkt.

Gruss,
rudoo

Login-Modul (in Modulausgabe kpieren, Moduleingabe bleibt leer)

Code: Alles auswählen

<?php
if ($REX['GG']) { // nur im Frontend ...

/* LOGIN mit Anmelden / Abmelden / Passwort-Vergessen, Portierung für REX 4.0 
 * 
 * Autor:   Rudi Widmer (rudoo), Christoph Böcker (chris-b) 
 * Version: 2.0 
 * Datum:   12.01.2008 
 * 
 * Quelle (Anmelden/Abmelden): Login-Prozedur der Redaxo-Demo 
 * 
 * Modifikationen: 
 *    Anpassung von REX 3.2 auf REX 4.0 
 *    keine Zweisprachigkeit 
 * 
 * Voraussetzungen 
 *   Dieses Modul ist abgestimmt und gedacht für den Einsatz mit folgenden 
 *   Redaxo-Komponenten: 
 *     Auth.-Template: 'Authentifizierung - mehrere Benutzerbereiche', Version für REX 4.0 
 *     Addon: 'simple user 0.9' (http://www.redaxo.de/180-Addondetails.html?addon_id=2), 
 *            Version für REX 3.0, REX 3.1 
 * 
 * Open Issues (Stand 9.1.2008, rudoo) 
 *   1) Die Backend-'User Verwaltung' zeigt bei der Auswahl eines Users bzw. einer 
 *      Gruppe Fehlermeldungen an (die Funktion ist allerdings gewährleistet) 
 *   2) Die Fehleranzeige in der Klasse class.rex_login.inc.php über die Globalvariable 
 *      $I18N funktioniert noch nicht ($I18N wird nicht gefunden) 
 *   3) Optionale Anpassungen für mehrere Benutzerbereiche (Navigationstemplate) noch 
 *      nicht portiert auf REX 4.0 
 *   4) Der in der Installation erwähnte 'Zehnte Schritt' ist vermutlich temporärer Natur 
 * 
 * Installation: 
 *   Erster Schritt: 
 *     simple_user AddOn installieren: 
 * 
 *     Shell-Befehle: 
       # cd <Redaxo-Pfad>/redaxo/include/addons 
       # mkdir simple_user (ACHTUNG: Der Dir-Name fix, sonst klappt Installation nicht!) 
       # cd simpleuser 
 
 *     Download von www.redaxo.de->Downloads->AddOns->Simple User->simple_user0_9.zip 
 *     nach <Redaxo-Pfad>/redaxo/include/addons/simple_user 
 
       # unzip simple_user0_9.zip 
       # cd .. 
       # chown -R <Internet-User> simple_user (Mod. der Owner-Rechte auf Verz. 'simple_user') 
       # chgrp -R <Internet-Group> simple_user (Mod. der Gruppenrechte auf Verz. 'simple_user') 
 * 
 *     simple_user AddOn-Installationsroutine aufrufen:      
 *     Im Backend unter 'AddOns' -> 'simple_user' -> 'installieren' (es sollte keine Fehlermeldung auftreten) 
 *     (--> In der DB 'redaxo' werden neue drei neue Tabellen 'rex_2_...' angelegt) 
 * 
 *     simple_user AddOn aktivieren: 
 *     Im Backend unter 'AddOns' -> 'simple_user' -> 'aktivieren' (keine Fehlermeldung erhalten) 
 *     --> Es sollte ein neuer Menüpunkt 'User Verwaltung' erscheinen. Wenn stattdessen ein 
 *         Menüpunkt mit kryptischem Text erscheint, ist die unter 'System' eingestellte Sprache vom 
 *         AddOn nicht unterstützt. (Unterstützte Sprachen siehe Ordner .../addons/simple_user/lang, 
 *         Typischerweise sollte unter 'System' die Sprache 'de_de' eingestellt sein) 
 * 
 *   Zweiter Schritt - optional - nur nötig für mehrere Benutzerbereiche (noch nicht getestet): 
 *      Im Backend unter 'User Verwaltung'->'Gruppe' muss für jeden potentiellen Benutzerbereich eine 
 *      neue Gruppe erfasst werden. Die hier für die Gruppe generierte id wird dem 
 *      jeweiligen User später in der Userverwaltung zugeordnet (siehe 'Dritter Schritt') 
 * 
 *   Dritter Schritt: 
 *      Im Backend unter 'User Verwaltung' den Benutzer anlegen mit folgenden (zwingenden) Eigenschaften: 
 *      - Feld 'Benutzertyp':                id aus 'zweitem Schritt' bzw. falls keine Benutzerbereiche: 
 *                                           INT-Wert > 0 (Wert 0 würde zu Login-Problemen führen) 
 *      - 'User Status':                     online 
 *      - 'Login aktiviert':                 ja 
 *      - 'Email' unter 'Persönliche Daten': <Email-Adresse für Zusendung Passwort bei 'Passwort vergessen'> 
 *      - 'Login':                           <Loginname> 
 *      - 'Passwort':                        <Login-Passwort> 
 * 
 *  Vierter Schritt: 
 *     Im Backend unter 'Templates' das Authentifizierungs-Template installieren: 
 *     'Authentifizierung - mehrere Benutzerbereiche', Version für REX 4.0' 
 *     Die Nummer, unter der das Template angelegt wurde, bitte merken (siehe 'Fünfter Schritt'): 
 * 
 *   Fünfter Schritt: 
 *     In das Seitenlayout-Template (z.B. 'default') das Authentifizierungs-Template einbinden. 
 *     z. B. so: 
 * 
 *      Code: 
 *      ... 
        // Authentifizierungstemplate von Raybeam includen fuer Login - 9.2.2008 
        $navTemplateAuth = new rex_template("6"); 
        include $navTemplateAuth->getFile(); 
 *      ... 
 * 
 *     Die Nummer "6" muss der Nummer des eigenen Authentifizierungs- 
 *     Templates angepasst werden (siehe 'Vierter Schritt') 
 * 
 *   Sechster Schritt - optional - nur nötig für mehrere Benutzerbereiche (noch nicht portiert auf REX 4.0): 
 *     Das Navigationsmenü von raybeam benutzen, nach Anpassung auf REX 4.0., dies ermöglicht 
 *     die Anzeige von benutzerbereichsspezifischen Navigationen 
 * 
 *   Siebter Schritt: 
 *     Im Backend unter 'Module' dieses Modul (diesen Code) installieren 
 *     Am Anfang des Programmcodes stehen ein paar Variablen, die sie setzen sollten. 
 *     Speziell: $webmaster und $absender. 
 * 
 *   Achter Schritt: 
 *     Die Login-Seite anlegen. 
 *     Legen Sie im Backend unter 'Struktur' einen neuen Artikel an, der das im 'Siebten Schritt' 
 *     angelegte Login-Modul enthält. Die Artikel-ID (z.B. 999) merken wir uns für den nächsten Schritt. 
 * 
 *   Neunter Schritt: 
 *     Einen Menüpunkt "Login" bzw. "Logout" in der Navigationsliste erzeugen. 
 *     Es sollte so aussehen, dass je nach Anmeldestatus entweder dar Text "Login" 
 *     oder der Text "Logout" erscheint. Um einen solchen Text zu erzeugen, wird ein Navigations- 
 *     Template mit Navigationsliste in der Variable $navHeader z.B. so angepasst: 
 * 
 *     Code: 
 *     ... 
       if (!$_SESSION['USR'] OR $_GET['LOGOUT'] == 1) {  
          $navHeader .= '<li><a href="'.rex_getUrl(999,$REX['CUR_CLANG']).'">Login</a></li>';  
       }  
       else {  
          $navHeader .= '<li><a href="'.rex_getUrl($REX['START_ARTICLE_ID'],$REX['CUR_CLANG'],'&FORM[LOGOUT]=1').'">Logout</a></li>';  
       } 
 *     ... 
 * 
 *     Wie zu sehen ist wird beim Klick auf 'Login' der Artikel 999 aufgerufen (Login-Seite) bzw. 
 *     beim Klick auf 'Logout' die Startseite. Die Nummer 999 ist durch die Nummer des 
 *     Login-Artikels (siehe 'Achter Schritt') zu ersetzen. Falls nach dem Logout 
 *     eine andere Artikelseite gewünscht wird als die Startseite (z.B. erneutes 
 *     Login) müßte auch $REX['START_ARTICLE_ID'] ausgetauscht werden. 
 * 
 *  Zehnter Schritt -  Verifizieren der Redaxo-Klasse .../redaxo/include/classes/class.rex_login.inc.php: 
 *  Stand 9.1.2008: Die Klasse enthält in den Funktionen setUserquery und setLoginquery falsche Zuweisungen, 
 *  die gemäss untenstehendem Code zu korrigieren sind: 
 *   
 *  Code (gefixt):  
 *  ... 
    // Aenderung 9.1.2008: $user_query statt $login_query 
    function setUserquery($user_query) 
    { 
      $this->user_query = $user_query; 
    } 
 *    
 *  ... 
 *  ... 
 * 
    function setLoginquery($login_query) 
    { 
  // Aenderung 9.1.2008: $login_query statt $user_query 
      $this->login_query = $login_query; 
    } 
 *  ... 
 * 
 * 
 *  Fertig - Mit diesen Aenderungen sollte der Login unter REX 4.0 funktionieren 
 *  Viel Spass - rudoo, 12.1.2008 
*/

/*------------------------------------------------------------------------------
 * $webmaster    an ihn geht die eMail mit dem Antrag nach einer
 *               Login-Berechtigung (Name, Kennwort)
 *               default: Webmaster (meist bei ERROR_MAIL eingetragen) :-))
 * $absender     Mit dieser Absenderadresse verschickt das System die Mails
 *               wenn das Passwort vergessen worden war.
 *               default: webmaster
 * $nach_login   Diese Seite wird angesprungen wenn das login erfolgreich war
 *               Default = Startseite
 * $nach_logout  Diese Seite wird angesprungen wenn das logout erfolgreich war
 *               Default = Startseite
*/
   $webmaster = 'mailto:'.$REX['ERROR_EMAIL'];
   $absender = $webmaster;
   $nach_login = $REX['START_ARTICLE_ID'];
   $nach_logout = $nach_login;

// URL und andere interne variablen setzen: ------------------------------------
   $ich = $this->getValue("article_id");
   $url_ich = rex_getUrl($ich,$REX['CUR_CLANG']);
   $url_nach_login = rex_getUrl($nach_login,$REX['CUR_CLANG']);
   $url_nach_logout = rex_getUrl($nach_logout,$REX['CUR_CLANG']);

   $msg = "";
   if($_SESSION['USER']->message != "") {
      $msg = '<p class="warning">'.$_SESSION['USER']->message."</p>";
   }

// Was ist denn nun zu tun? ----------------------------------------------------
   if ($_GET['FORM']['pwd'] == 1) {
      //Formular für "Passwort vergessen" anzeigen
      $func = 1;
   }
   elseif ($_POST['FORM']['pwdsnd'] == 1) {
      // Wenn Feld email gefüllt dann Kennwort senden (2),
      // sonst Formular für "PWD vergessen" (1)
      $email = $_POST['email'];
      $func = (empty($email)?1:2);
   }
   elseif (!$_SESSION['USR'] OR $_GET['FORM']['LOGOUT'] == 1) {
      // Login: Name und Kennwort eingeben
      $func = 5;
   }
   else {
      $func = 6;
   }

/* Passwortmail anfordern: -----------------------------------------------------
 * Aufbau der Maske zum Eingeben der eMail-Adresse, an die Name/Kennwort
 * geschickt werden sollen.
*/
   if ($func == 1) {
      print '
      <p>Sie haben Ihr Kennwort vergessen? Kein Problem!</p>
      <p>Geben Sie im Eingabefeld Ihre hinterlegte Mailadresse an. Sie erhalten
      dann an diese Mailadresse Ihre aktuellen Zugangsdaten zugeschickt.
      Bitte achten Sie darauf, die richtige Mailadresse richtig einzugeben.</p>
      <form action="'. $url_ich .'" method="post">
      <input type="hidden" name="article_id" value="'.$ich.'" />
      <input type="hidden" name="FORM[pwdsnd]" value="1" />
      <input type="hidden" name="clang" value="'.$REX['CUR_CLANG'].'" />
      <label for="email">Mail-Adresse</label>
      <input id="email" type="text" name="email" size="50" /><br />
      <input class="submit" type="submit" value="Kennwort anfordern" />
      </form>
      ';
   }

/* Passwortmail senden: --------------------------------------------------------
 * $email wurde schon oben gesetzt.
 * Aus rex_2_user wird der Datensatz mit dieser mailadresse gesucht. Im Fehlerfall
 * geht gibt es eine Meldung und mit "Weiter" kommt man wieder auf die Eingabe.
 * Wenn eindeutig(!) gefunden geht eine Mail an diese Adresse.
*/
   elseif ($func == 2) {
      $sql = new sql;
      $sql->setQuery ('SELECT user_login, user_password, user_name, user_firstname FROM '.
                      $REX['TABLE_PREFIX'].'2_user where user_email = "'.$email.'"');

      if ( $sqlerr = $sql->getError() ) {
         print 'Oops - Datenbankfehler: <br />'.$sqlerr."<br />\n";
         print '<a href="'.$url_ich.'&FORM[pwd]=1">Weiter ...</a>'."\n";
      }
      elseif ($sql->getRows() != 1) {
         print 'Die Mailadresse '.$email.' ist uns nicht bekannt.<br />'."\n";
         print '<a href="'.$url_ich.'&FORM[pwd]=1">Weiter ...</a>'."\n";
      }
      else {

         $header = 'From: '.$absender. "\r\n" .'X-Mailer: PHP/' . phpversion();
         $text = 'Hallo '.$sql->getValue ('user_firstname', 0).' '.
                 $sql->getValue ('user_name', 0)."\n\n".
                 'Du hast Deine Kontaktdaten und das Passwort angefragt. Hier Deine Informationen.'."\n\n".
                 '_______________________________________________________'."\n\n".
                 'Login: '.$sql->getValue ('user_login', 0)."\n".
                 'Passwort: '.$sql->getValue ('user_password', 0)."\n".
                 '_______________________________________________________'."\n";
         $betreff = 'Passwortabfrage';

         if (mail($email, $betreff, $text, $header)) {
            echo '<p>Ihre Zugangsdaten wurden an die Adresse <b>'.$email.'</b> geschickt</p>'."\n";
         }
         else {
            echo '<p>Es gab ein Problem beim Versand der Zugangsdaten; bitte versuchen Sie es später noch einmal.</p>'."\n";
         }
         print '<a href="'.$url_ich.'">Weiter ...</a>'."\n";
      }
   }

/* Login: ----------------------------------------------------------------------
 * Im Prinzip ist das der Programmcode aus der Redaxo-Login-Demo.
*/
   elseif ($func == 5) {

      $FORM[loginname] = "Login";
      print '
      <p>Auf den geschützten Seiten finden Sie nicht öffentliche Informationen.
      Um zu den Seiten gelangen zu können, müssen Sie sich hier mit Benutzername
      und Kennwort anmelden.</p>
      <p>Die freigeschalteten Seiten sind anschließend über das Menü erreichbar.</p>
      <p>Die Einrichtung eines Benutzernamen und Kennwort können per Mail beim
      <a href="'.$webmaster.'">Webmaster</a> angefordert werden.</p>
      <p>Wenn Sie Ihr Kennwort vergessen haben, klicken Sie bitte
      <a href="'.$url_ich.'&FORM[pwd]=1">hier</a>.</p>
      <form action="index.php" method="post">
      <input type="hidden" name="article_id" value="'.$nach_login.'" />
      <input type="hidden" name="FORM[trytologin]" value="1" />
      <input type="hidden" name="clang" value="'.$REX['CUR_CLANG'].'" />

      '.$msg.'
      <table>
         <tr>
            <td>Name</td>
            <td><input id="login" type="text" name="FORM[loginname]" value="" /></td>
         </tr>
         <tr>
            <td>Kennwort</td>
	         <td><input id="paswd" type="password" name="FORM[loginpasswort]" value="" /></td>
         </tr>
         <tr>
            <td>&nbsp;</td>
            <td><br /><input class="submit" type="submit" value="anmelden" /></td>
         </tr>
	   </table>
      </form>
      ';
   }
// Logout: ---------------------------------------------------------------------
   else {
      print
      $msg.'
      <p style="text-align:left;">Sie sind angemeldet als: <strong>'.$_SESSION['USER']->getValue("user_login").'</strong></p>
      <p style="text-align:left;"><a href="'. $url_nach_logout .'&FORM[LOGOUT]=1">&laquo; Logout</a></p>
	';
   }

}

?>
Authentifizierungs-Template (als neues Template speichern)

Code: Alles auswählen

<?php
	/* Authentifizierungs-Template für REX 4.0
	Abwandlung des Original-Redaxo-Templates
	Das Template ermöglicht die Einrichtung von benutzerspezifischen Bereichen.
	Jeder Benutzer erhält nach seiner Anmeldung individuelle, nur für ihn
	sichtbare Menüpunkte. Alle in der Hierarchie 	unter diesem Menüpunkt
	liegenden sind ebenfalls nur für diesen angemeldeten Benutzer sichtbar.
	Jedem in der (Simple-)User-Verwaltung eingetragenen Benutzer kann derzeit
	ein unter Typen eingetragener Artikel-Typ zugeordnet werden.
	------------------------------------------
	Peter Reiche, http://www.raybeam.de
        Portierung auf REX 4.0: Rudi Widmer (rudoo)
	------------------------------------------
        Letzte Änderung: 9.1.2008 (rudoo)
        Portierung auf REX 4.0
        (Open Issue: Error Language)
	Letzte Änderung: 09.07.2007:
	Fehler in Quelltext beseitigt
	Zeile 105: ... && !$FORM[USR]) geändert in ... && !$FORM['USR'])
	Letzte Änderung: 10.12.2006:
	Einbindung eines "SuperUsers" der alle individuellen Menüpunkte sieht
	Letzte Änderung: 10.07.2006:
	Individuelle Menüpunkte in beliebiger Verschachtelungstiefe möglich
	------------------------------------------
	*/

	// ID der Fehlerseite, die bei erfolgloser Anmeldung
	// aufgerufen werden soll
	$errorArticleId = "1";
	
	// Type-ID für den "SuperUser", der alle 
	// individuellen Menüpunkte sehen darf
	$su = 99;

	setlocale(LC_ALL,"de_DE");
	// -------------------------------------------------------------- USER AUTH
	session_start();

	$_SESSION['USR'] = false;
	$user_id = 0;
	$user_name = "";

	if($REX['CUR_CLANG']== "0")
	{
		$error_lang = "de";
	}
	else
	{
		$error_lang = "en";
	}

	if ($_SESSION['rexsite']['UID'] !="" OR $_POST['FORM']['loginname'] != "" OR $_POST['FORM']['logout'] != "")
	{
		$_SESSION['USER'] = new rex_login();
		$_SESSION['USER']->setSqlDb(1);
		$_SESSION['USER']->setSysID("rexsite");
//
//		9.1.2008: Open Issue: Error Language für REX 4.0 (rudoo)
//		$FORM['USER']->setLanguage($error_lang);
//
		$_SESSION['USER']->setSessiontime(3000);
		$_SESSION['USER']->setLogin($_POST['FORM']['loginname'],$_POST['FORM']['loginpasswort']);

		if ($_GET['FORM']['LOGOUT'] == 1)
		{
			$_SESSION['USER']->setLogout(true);
		}

		$_SESSION['USER']->setUserID("rex_2_user.id");
		$_SESSION['USER']->setUserquery("SELECT *
								FROM	rex_2_user
								WHERE	id='USR_UID'
								AND		login_activation=1
								AND		user_status='1'
								AND		user_typ>'0'");
		$_SESSION['USER']->setLoginquery("SELECT *
								FROM	rex_2_user
								WHERE	user_login='USR_LOGIN'
								AND		user_password='USR_PSW'
								AND		login_activation='1'
								AND		user_status='1'");

		if ($_SESSION['USER']->checkLogin())
		{
			$_SESSION['USR']	 = true;
			$user_id		 = $_SESSION['USER']->getValue("rex_2_user.id");
			$user_name		 = $_SESSION['USER']->getValue("rex_2_user.user_name");
			$_SESSION['USR_ID']	 = $user_id;
			$_SESSION['USR_TYP'] = $_SESSION['USER']->getValue("rex_2_user.user_typ");
		}
		else
		{
			$_SESSION['USR'] = false;
			$err_msg		 = $_SESSION['USER']->message;
			$_SESSION['USR_ID']  = 0;
			$_SESSION['USR_TYP'] = 0;
		}
	}
	else
	{
		// nicht eingeloggt und kein login
		$_SESSION['USR_ID'] = 0;
		$_SESSION['USR_TYP'] = 0;
	}

	$artPath = explode("|",$this->getValue("path").$this->getValue("article_id")."|");
	$artId = $this->getValue("article_id");
	
 	foreach($artPath as $levId)
 	{
 		if($levId)
 		{
 			$lev = OOCategory::getCategoryById($levId);
 			
    		if($lev->getTypeId() > 1 && !$_SESSION['USR'])
    		{
    			$hack = true;
    		}
    		else
    		{
    			if($lev->getTypeId() > 1 && $lev->getTypeId() != $_SESSION['USR_TYP'] && $_SESSION['USR_TYP'] != $su)
    			{
    				$hack = true;
    			}
				else
				{
					$hack = false;
				}
			}
		}
		if ($hack)
		{
			header("Location: http://".$_SERVER['HTTP_HOST']."/index.php?article_id=".$errorArticleId."&clang=".$REX['CUR_CLANG']);
			exit;
		}
	}
?>

Benutzeravatar
Oliver.Kreischer
Beiträge: 2508
Registriert: 17. Dez 2004, 00:03
Wohnort: Velbert - LA
Kontaktdaten: Website

19. Jan 2008, 12:24

Hallo rudoo,

danke für die Arbeit. Stellst Du das Modul unter "Module" zur Verfügung?

LG
Oliver
> Friends Of REDAXO Gemeinsame REDAXO-Entwicklung!
> REDAXO Agenturen. Eintragen erwünscht!
> Komm in den Slack Channel Es lohnt sich!

Netti14
Beiträge: 13
Registriert: 24. Feb 2008, 19:11
Wohnort: Nähe Berlin

Probleme

24. Feb 2008, 21:34

Hallo,

bin ein Newbie in Richtung CSS und redaxo.
Habe die Anweisungen genau verfolgt, bekomme auch den Login hin. Nach dem Einloggen wird mir mein benutzername angezeigt.
Allerdings funktioniert der Logout nicht.
Wenn ich mich ausloggen will, kommt nur ne weiße Seite.
In der URL steht die korrekte Adresse, Artikel ID mit Anhängsel "&FORM[LOGOUT]=1" Anhängsel in Anführungsstrichen.
Offensichtlich fehlt irgendwo die Angabe der Seite, wo er nach dem Logout hin gehen soll, ich find es aber nicht
HILFEEEE!!

Gruß Carsten

rudoo
Beiträge: 17
Registriert: 12. Jan 2008, 15:08
Wohnort: Zürich

24. Feb 2008, 23:14

Carsten,

Schön, dass Du das Teil benützten tust. Mein Redaxo ist leider gerade eine Baustelle, kann Dein Problem nicht direkt verifizieren, aber..:

Es gibt zwei Möglichkeiten zum Ausloggen: Entweder über einen Logout-Button auf der 'Login-Page' (nach Text 'Sie sind angemeldet als...') oder über den Logout-Button, der in der Navigationsliste definiert wird und somit auf jeder Seite sichtbar ist. Welcher Mechanismus funktioniert bei Dir nicht, beide oder nur einer davon?

Zur Erklärung des Codes:

Der Code ist so definiert, dass bei beiden Mechanismen nach einem Logout die Startseite angezeigt wird.

1) Die URL, die bei Klicken des Logout-Buttons auf der 'Login-Page' gewählt wird, ist definiert im Login-Modul, das Du installiert hast (--> Anleitung, Siebter Schritt):
..
$nach_login = $REX['START_ARTICLE_ID'];
$nach_logout = $nach_login;
..
$url_nach_logout = rex_getUrl($nach_logout,$REX['CUR_CLANG']);
..

2) Die URL, die bei Klicken auf den Logout-Button der Navigationsliste gewählt wird, ist im von Dir eingefügten Code des Navigationstemplates wie folgt definiert (--> Anleitung, Neunter Schritt):
..
else {
$navHeader .= '<li><a href="'.rex_getUrl($REX['START_ARTICLE_ID'],$REX['CUR_CLANG'],'&FORM[LOGOUT]=1').'">Logout</a></li>';
}
..
Hilft Dir das weiter?

Gruss,
rudoo

rudoo
Beiträge: 17
Registriert: 12. Jan 2008, 15:08
Wohnort: Zürich

Code nun als Login-Modul für REX 4.0 veröffentlicht

2. Mär 2008, 19:09

Hello Olien, hello Netti14, danke für Eure Kommentare und die Mithilfe beim Test. Im Forums-Code waren noch ein paar Fehler drin. Ich hab nun das Login-Modul inkl. Benutzerbereichsfeatures als Modul veröffentlicht. --> Hier liegt der aktuelle Code für Installationen:

http://www.redaxo.de/165-Moduldetails.h ... ule_id=351

Gruss,
rudoo

rudoo
Beiträge: 17
Registriert: 12. Jan 2008, 15:08
Wohnort: Zürich

Nachtrag...

15. Aug 2008, 22:14

Unterdessen hab ich die Portierung unter REX4.1 an einem Beispiel verifizieren können. Das Login-Modul aus dem Download-Bereich, auf das sich dieser Forumseintrag bezieht, sollte unverändert auch unter REX 4.1 laufen.

Gruss,
rudoo

barbe
Beiträge: 239
Registriert: 17. Mai 2006, 13:09

Gruppen - wie nutzen?

27. Dez 2008, 17:44

Liebe Community,

ich würde sehr gerne folgendes realisieren mit dem Login-Modul/Template:

Ich habe folgende Artikel:

Artikel 1
Artikel 2
Artikel 3


Ich habe folgende User:

User 10
User 11
User 12
User 13
User 14
User 15
User 16
User 17
User 18
User 19


Nun möchte ich gerne Gruppen bilden, die dann wiederum Zugriffsberechtigungen erhalten.

Gruppe 1

User 10
User 11
User 12
User 13
User 14

Gruppe 2

User 15
User 16
User 17
User 18
User 19

Gruppe 3

User 10
User 12
User 14
User 16
User 18

Nun soll Gruppe 1 auf Artikel 1, Gruppe 2 auf Artikel 2 und Gruppe 3 auf Artikel 3 erhalten.

Ist so etwas möglich?

Viele Grüße
Sebastian
Internet-Dienste: BARBE.INTERNET
Hobby: Wein & Kochen
Urlaub: Azoren Blog
REDAXO-Referenzen: Referenzen redaxo

peterassmann
Beiträge: 3
Registriert: 2. Jan 2009, 01:56

2. Jan 2009, 02:00

Ist möglich. Allerdings weiß ich nicht wie.

barbe
Beiträge: 239
Registriert: 17. Mai 2006, 13:09

2. Jan 2009, 02:26

Hallo Peter,

Rudi (rudoo) und ich sind gerade dabei, die Erweiterung entsprechend zu erweitern.

Ende Januar melden wir uns mit einer Lösung zurück :)

Viele Grüße
Sebastian
Internet-Dienste: BARBE.INTERNET
Hobby: Wein & Kochen
Urlaub: Azoren Blog
REDAXO-Referenzen: Referenzen redaxo

Zurück zu „Allgemeines [R4]“