Simple User Addon - Artikeltypen vererben

Alles über die Anwendung und Entwicklung von AddOns.

Simple User Addon - Artikeltypen vererben

Beitragvon marc » 30. Mär 2009, 16:18

Hallo zusammen,

ich stehe ein wenig auf dem Schlauch.

Habe heute Nachmittag das Simple User Addon (http://www.redaxo.de/180-0-addon-detail ... addon_id=2) installiert, sowie das Loginmodul (http://www.redaxo.de/165-0-moduldetails ... ule_id=351).

Authentifizierung klappt auch alles soweit.

Ich habe einer meiner Rootkategorien nun im Startartikel den Artikeltyp 99 (=Superuser) zugewiesen und kann auf diesen Artikel erst nach erfolgreichem Login zugreifen. Selbst per manuellen Zugriff auf die ArtikelId per URL ist kein Zugriff ohne Logout möglich -> super.

Leider kann man jedoch noch auf die Unterkategorien dieser Rootkategorie per manueller ArtikelID per URL zugreifen.

Ich möchte jedoch nicht jedem Artikel in dieser Kategorie jedes Mal die Metainfos zuweisen, sondern würde diese gerne vom Rootartikel vererben.

Ich nehme an, ich muss dies im Authentisierungstemplate irgendwo notieren.

Weiss vielleicht jemand, wie ich dies machen sollte?

Code: Alles auswählen
<?php
   /* Authentifizierung - mehrere Benutzerbereiche, Version für REX 4.0+

   ACHTUNG: DIE MODULEINGABE DES LOGIN-MODULS BLEIBT LEER BEI DER INSTALLATION,
        DER HIER ENTHALTENE CODE IST ZU SPEICHERN ALS SEPARATES AUTHENTISIERUNGS-
        TEMPLATE, SIEHE DAZU DIE ANLEITUNG (VIERTER SCHRITT) IM HEADER DER
        MODULAUSGABE

   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: 6.10.2008 (rudoo)
        Nicht benutzte Variable '$user_name' entfernt
        Letzte Änderung: 28.2.2008 (rudoo)
        Portierung der benutzerspezifischen Artikelanzeige auf REX 4.0
        (Individuelle Menüpunkte nur sichtbar für angemeldeten User und su)
        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 = "29";
   
   // 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;

   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");
         $_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)
      {

          if($this->getValue("art_type_id") > 1 && !$_SESSION['USR'])
          {
             $hack = true;
          }
          else
          {
             if($this->getValue("art_type_id") > 1 && $this->getValue("art_type_id") != $_SESSION['USR_TYP'] && $_SESSION['USR_TYP'] != $su)
             {
                $hack = true;
             }
            else
            {
               $hack = false;
            }
         }
      }
      if ($hack)
      {
         # ALT: header("Location: http://".$_SERVER['HTTP_HOST']."/index.php?article_id=".$errorArticleId."&clang=".$REX['CUR_CLANG']);
         header("Location: index.php?article_id=".$errorArticleId."&clang=".$REX['CUR_CLANG']);
         exit;
      }
   }
?>
marc
 
Beiträge: 76
Registriert: 10. Mai 2006, 11:12
Wohnort: Lux

Zurück zu AddOns [R4]

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast