<?php
require_once('inc/base.php');
require_once('inc/debug.php');
require_once('inc/error.php');
define('ROLE_ANONYMOUS', 0);
define('ROLE_MAILACCOUNT', 1);
define('ROLE_VMAIL_ACCOUNT', 2);
define('ROLE_SYSTEMUSER', 4);
define('ROLE_CUSTOMER', 8);
define('ROLE_SYSADMIN', 16);
define('ROLE_SUBUSER', 32);
function find_role($login, $password, $i_am_admin = False)
{
?
$uid = (int) $login;
if ($uid == 0)
$uid = NULL;
$result = db_query("SELECT username, passwort AS password, kundenaccount AS `primary`, status, ((SELECT acc.uid FROM system.v_useraccounts AS acc LEFT JOIN system.gruppenzugehoerigkeit USING (uid) LEFT JOIN system.gruppen AS g ON (g.gid=gruppenzugehoerigkeit.gid) WHERE g.name='admin' AND acc.uid=u.uid) IS NOT NULL) AS admin FROM system.v_useraccounts AS u LEFT JOIN system.passwoerter USING(uid) WHERE u.uid=:uid OR username=:login LIMIT 1;", array(":uid" => $uid, ":login" => $login));
if (@$result->rowCount() > 0)
{
$entry = $result->fetch(PDO::FETCH_OBJ);
if (strcasecmp($entry->username, $login) == 0 && $entry->username != $login) {
logger(LOG_WARNING, "session/checkuser", "login", "denying login to wrong cased username »{$login}«.");
warning('Beachten Sie bei der Eingabe Ihrer Zugangsdaten bitte die Groß- und Kleinschreibung.');
return NULL;
}
$db_password = $entry->password;
$hash = crypt($password, $db_password);