yaml_com_auth
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
- <?php
- /**
- * ==================================================
- * Template: yaml_com_auth
- * Version: 0.3
- * Redaxo Version: 4.2.x
- * HTML-/XHTML-Version: XHTML 1.0
- *
- * Hinweise:
- * Ermöglicht neben der Standard-Funktionalitaet des
- * Community-Basis-Addon die Einrichtung von einem
- * individuellen Benutzerbereich für jeden Community-User
- * sowie einem zusaetzlichem Benutzerbereich für alle
- * angemeldeten Community-User.
- *
- * Bearbeitung: Peter Reiche
- * www.raybeam.de
- *
- * Datum: 16.12.2009
- * Ursprung: Template des Community-Basis-Addon
- * Ursprungsname: 1012 - COM-Template - Basis - Authentifizierung
- * Ursprung-Datum: 13.12.2009
- * ================================================== */
- $pagekey = 'comrex'; // Frontendkey, muss sich unterscheiden, damit frontend und backend sich nicht schneiden.
- $login_name = rex_request("login_name","string");
- $login_psw = rex_request("login_psw","string");
- // Festlegen des Attributs in rex_com_user_field fuer den Login-Startartikel
- if(!$login_article_value) $login_article_value = 'loginarticle';
- $logout = rex_request("logout","int");
- $msg = 'Bitte einloggen';
- // ----- session start
- if ((isset($_SESSION[$pagekey]['UID']) && $_SESSION[$pagekey]['UID'] != "") or $login_name != "" or $login_psw != "")
- {
- $user_id = (int) $_SESSION[$pagekey]['UID'];
- $GLOBALS["I18N"] = rex_create_lang("de");
- $REX['COM_USER'] = new rex_login();
- $REX['COM_USER']->setSqlDb(1);
- $REX['COM_USER']->setSysID($pagekey);
- $REX['COM_USER']->setSessiontime(3000);
- $REX['COM_USER']->setLogin($login_name,$login_psw);
- if ($logout == 1) { $REX['COM_USER']->setLogout(true); }
- $REX['COM_USER']->setUserID("rex_com_user.id");
- $REX['COM_USER']->setUserquery("select * from rex_com_user where id='USR_UID' and status>0");
- $REX['COM_USER']->setLoginquery("select * from rex_com_user where login='USR_LOGIN' and password='USR_PSW' and status>0");
- if ($REX['COM_USER']->checkLogin())
- {
- // ----- Login gelungen
- if ($login_name != "")
- {
- // ----- Login gelungen und gerade erst eingeloggt
- $msg = 'Sie haben sich eingeloggt!';
- /*
- $COM_USER_SAVE = new rex_sql();
- $COM_USER_SAVE->setTable('rex_com_user');
- $COM_USER_SAVE->setValue('last_login_time',time());
- $COM_USER_SAVE->setWhere('id='.$REX['COM_USER']->getValue('rex_com_user.id'));
- $COM_USER_SAVE->update();
- */
- // Individuellen Login-Artikel oder Start-Artikel aufrufen
- if($REX['COM_USER']->getValue($login_article_value))
- {
- $jump_aid = $REX['COM_USER']->getValue($login_article_value);
- }
- else
- {
- $jump_aid = $REX['START_ARTICLE_ID'];
- }
- }
- }else
- {
- // ----- Login failed
- $msg = 'Login ist fehlgeschlagen.';
- if ($logout == 1)
- $msg = 'Sie haben sich ausgeloggt';
- if ($logout == 1)
- $jump_aid = $REX['START_ARTICLE_ID'];
- }
- }else
- {
- // ----- nicht eingeloggt und kein login
- $msg = 'Sie sind nicht eingeloggt.';
- }
- {
- exit;
- }
- /*
- Fuer die Verwendung in Navigationen und Templates
- 0 Standard Zugriff fuer alle
- -1 Zugriff fuer nicht eingeloggte User
- 1 Zugriff fuer eingeloggte User
- 2 Zugriff fuer eingeloggte Admins
- */
- function rex_com_checkUserPerm($type)
- {
- global $REX;
- if ($type == "") return true; // Zugriff fuer alle
- if ($type == "0") return true; // Zugriff fuer alle
- {
- if($REX['ARTICLE']->getValue('art_com_user'))
- {
- // Eigene Bereiche fuer angemeldete Community-User einrichten
- // Dazu wird die MetaInfo art_com_user bei den Artikeln genutzt, Admins sehen alles
- if(($type == '1' && $REX['COM_USER']->getValue('id')== $REX['ARTICLE']->getValue('art_com_user')) || $REX['COM_USER']->getValue("admin")==1) return true;
- // Artikel mit art_com_user = -1 kann jeder angemeldete User lesen
- elseif($type == '1' && $REX['ARTICLE']->getValue('art_com_user')=='-1') return true;
- }
- else
- {
- // oder die Standardvariante
- if ($type == "1") return true; // Zugriff fuer eingeloggte User
- }
- if ($type == "2" && $REX['COM_USER']->getValue("admin")==1) return true;
- }
- {
- if ($type == "-1") return true; // Zugriff fuer nicht eingeloggte User
- }
- return false;
- }
- ?>