Quelltext yaml_com_auth

Zur besseren Übersicht hier nochmal der gesamte Quelltext mit Zeilennummern.

Und hier gibt es ihn nochmal zum Kopieren: Quelltext ohne Zeilennnummern

  1. <?php
  2. /**
  3.  * ==================================================
  4.  * Template: yaml_com_auth
  5.  * Version: 0.3
  6.  * Redaxo Version: 4.2.x
  7.  * HTML-/XHTML-Version: XHTML 1.0
  8.  *
  9.  * Hinweise:
  10.  * Ermöglicht neben der Standard-Funktionalitaet des
  11.  * Community-Basis-Addon die Einrichtung von einem
  12.  * individuellen Benutzerbereich für jeden Community-User
  13.  * sowie einem zusaetzlichem Benutzerbereich für alle
  14.  * angemeldeten Community-User.
  15.  *
  16.  * Bearbeitung: Peter Reiche
  17.  *        www.raybeam.de
  18.  *
  19.  * Datum: 16.12.2009
  20.  * Ursprung: Template des Community-Basis-Addon
  21.  * Ursprungsname: 1012 - COM-Template - Basis - Authentifizierung
  22.  * Ursprung-Datum: 13.12.2009
  23.  * ================================================== */
  24.  
  25.  
  26. unset($REX['COM_USER']);
  27. $pagekey = 'comrex'; // Frontendkey, muss sich unterscheiden, damit frontend und backend sich nicht schneiden.
  28. $login_name = rex_request("login_name","string");
  29. $login_psw = rex_request("login_psw","string");
  30. // Festlegen des Attributs in rex_com_user_field fuer den Login-Startartikel
  31. if(!$login_article_value) $login_article_value = 'loginarticle';
  32. $logout = rex_request("logout","int");
  33. $msg = 'Bitte einloggen';
  34.  
  35. // ----- session start
  36. if ((isset($_SESSION[$pagekey]['UID']) && $_SESSION[$pagekey]['UID'] != "") or $login_name != "" or $login_psw != "")
  37. {
  38.   $user_id = (int) $_SESSION[$pagekey]['UID'];
  39.   $GLOBALS["I18N"] = rex_create_lang("de");
  40.   $REX['COM_USER'] = new rex_login();
  41.   $REX['COM_USER']->setSqlDb(1);
  42.   $REX['COM_USER']->setSysID($pagekey);
  43.   $REX['COM_USER']->setSessiontime(3000);
  44.   $REX['COM_USER']->setLogin($login_name,$login_psw);
  45.   if ($logout == 1) { $REX['COM_USER']->setLogout(true); }
  46.   $REX['COM_USER']->setUserID("rex_com_user.id");
  47.   $REX['COM_USER']->setUserquery("select * from rex_com_user where id='USR_UID' and status>0");
  48.   $REX['COM_USER']->setLoginquery("select * from rex_com_user where login='USR_LOGIN' and password='USR_PSW' and status>0");
  49.  
  50.   if ($REX['COM_USER']->checkLogin())
  51.   {
  52.     // ----- Login gelungen
  53.     if ($login_name != "")
  54.     {
  55.       // ----- Login gelungen und gerade erst eingeloggt
  56.       $msg = 'Sie haben sich eingeloggt!';
  57.      
  58.       /*
  59.       $COM_USER_SAVE = new rex_sql();
  60.       $COM_USER_SAVE->setTable('rex_com_user');
  61.       $COM_USER_SAVE->setValue('last_login_time',time());
  62.       $COM_USER_SAVE->setWhere('id='.$REX['COM_USER']->getValue('rex_com_user.id'));
  63.       $COM_USER_SAVE->update();
  64.       */
  65.       // Individuellen Login-Artikel oder Start-Artikel aufrufen
  66.       if($REX['COM_USER']->getValue($login_article_value))
  67.       {
  68.         $jump_aid = $REX['COM_USER']->getValue($login_article_value);
  69.       }
  70.       else
  71.       {
  72.         $jump_aid = $REX['START_ARTICLE_ID'];
  73.       }
  74.     }
  75.   }else
  76.   {
  77.     // ----- Login failed
  78.     $msg = 'Login ist fehlgeschlagen.';
  79.     if ($logout == 1)
  80.       $msg = 'Sie haben sich ausgeloggt';
  81.    
  82.     unset($REX['COM_USER']);
  83.     if ($logout == 1)
  84.       $jump_aid = $REX['START_ARTICLE_ID'];
  85.   }
  86. }else
  87. {
  88.   // ----- nicht eingeloggt und kein login
  89.   $msg = 'Sie sind nicht eingeloggt.';
  90.   unset($REX['COM_USER']);
  91. }
  92. if (isset($jump_aid))
  93. {
  94.   header('Location:'.rex_getUrl($jump_aid));
  95.   exit;
  96. }
  97.  
  98. /*
  99.   Fuer die Verwendung in Navigationen und Templates
  100.      0  Standard    Zugriff fuer alle
  101.     -1  Zugriff fuer nicht eingeloggte User  
  102.      1  Zugriff fuer eingeloggte User  
  103.      2  Zugriff fuer eingeloggte Admins
  104. */
  105. function rex_com_checkUserPerm($type)
  106. {
  107.   global $REX;
  108.   if ($type == "") return true; // Zugriff fuer alle
  109.   if ($type == "0") return true; // Zugriff fuer alle
  110.  
  111.   if (isset($REX['COM_USER']) && is_object($REX['COM_USER']))
  112.   {
  113.     if($REX['ARTICLE']->getValue('art_com_user'))
  114.     {
  115.       // Eigene Bereiche fuer angemeldete Community-User einrichten
  116.       // Dazu wird die MetaInfo art_com_user bei den Artikeln genutzt, Admins sehen alles
  117.       if(($type == '1' && $REX['COM_USER']->getValue('id')== $REX['ARTICLE']->getValue('art_com_user')) || $REX['COM_USER']->getValue("admin")==1) return true;
  118.       // Artikel mit art_com_user = -1 kann jeder angemeldete User lesen
  119.       elseif($type == '1' && $REX['ARTICLE']->getValue('art_com_user')=='-1') return true;
  120.     }
  121.     else
  122.     {
  123.       // oder die Standardvariante
  124.       if ($type == "1") return true; // Zugriff fuer eingeloggte User
  125.     }
  126.     if ($type == "2" && $REX['COM_USER']->getValue("admin")==1) return true;
  127.   }
  128.   if(!isset($REX['COM_USER']) || !is_object($REX['COM_USER']))
  129.   {
  130.     if ($type == "-1") return true; // Zugriff fuer nicht eingeloggte User
  131.   }
  132.   return false;
  133. }
  134. ?>
  135.