yaml_com_auth
Quelltext yaml_com_auth
<?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
* ================================================== */
unset($REX['COM_USER']);
$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
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';
unset($REX['COM_USER']);
if ($logout == 1)
$jump_aid = $REX['START_ARTICLE_ID'];
}
}else
{
// ----- nicht eingeloggt und kein login
$msg = 'Sie sind nicht eingeloggt.';
unset($REX['COM_USER']);
}
if (isset($jump_aid))
{
header('Location:'.rex_getUrl($jump_aid));
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 (isset($REX['COM_USER']) && is_object($REX['COM_USER']))
{
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(!isset($REX['COM_USER']) || !is_object($REX['COM_USER']))
{
if ($type == "-1") return true; // Zugriff fuer nicht eingeloggte User
}
return false;
}
?>
/**
* ==================================================
* 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
* ================================================== */
unset($REX['COM_USER']);
$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
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';
unset($REX['COM_USER']);
if ($logout == 1)
$jump_aid = $REX['START_ARTICLE_ID'];
}
}else
{
// ----- nicht eingeloggt und kein login
$msg = 'Sie sind nicht eingeloggt.';
unset($REX['COM_USER']);
}
if (isset($jump_aid))
{
header('Location:'.rex_getUrl($jump_aid));
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 (isset($REX['COM_USER']) && is_object($REX['COM_USER']))
{
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(!isset($REX['COM_USER']) || !is_object($REX['COM_USER']))
{
if ($type == "-1") return true; // Zugriff fuer nicht eingeloggte User
}
return false;
}
?>