function checkprivs()
{
    $_POST["userid"] = trim($_POST["userid"]);
    include "ressources/settings.inc";
    $socks = new sockets();
    if (strtolower($_POST["userid"]) == strtolower($_GLOBAL["ldap_admin"])) {
        if ($_POST["password"] != $_GLOBAL["ldap_password"]) {
            die("bad password");
        }
        $dans = new dansguardian_rules(null, 1);
        $dans->Add_exceptionsitelist(1, $_POST["uri"]);
        AddEvents("Manager", $_POST["uri"]);
        $sock = new sockets();
        $sock->getFrameWork("reload-dansguardian");
        die("SUCCESS");
    }
    $ldap = new clladp();
    writelogs('This is not Global admin, so test user...', __FUNCTION__, __FILE__);
    $hash = $ldap->UserDatas($_POST["userid"]);
    $userPassword = $hash["userPassword"];
    if (trim($hash["uid"]) == null) {
        writelogs('Unable to get user infos abort', __FUNCTION__, __FILE__);
        die("Unknown user");
    }
    if (trim($_POST["password"]) == trim($userPassword)) {
        $users = new usersMenus($ldap->_Get_privileges_userid($_POST["userid"]));
        $priv_array = $users->_ParsePrivieleges($ldap->_Get_privileges_userid($_POST["userid"]));
        $users->_TranslateRights($priv_array);
        if ($users->AllowDansGuardianBanned) {
            $dans = new dansguardian_rules(null, 1);
            $dans->Add_exceptionsitelist(1, $_POST["uri"]);
            $sock = new sockets();
            AddEvents($_POST["userid"], $_POST["uri"]);
            $sock->getFrameWork("cmd.php?reload-dansguardian");
            die("SUCCESS");
        }
    } else {
        die("BAD PASSWORD");
    }
    die("No privileges");
}
Esempio n. 2
0
function login()
{
    $tpl = new templates();
    $ldap = new clladp();
    $att = array("userPassword", "DisplayName");
    $sr = @ldap_search($ldap->ldap_connection, "dc=organizations,{$ldap->suffix}", "(uid={$_POST["uid"]})", $att);
    if (!$sr) {
        echo $sr;
        return $tpl->_ENGINE_parse_body('{unknown_user}');
    }
    $entry_id = ldap_first_entry($ldap->ldap_connection, $sr);
    if (!$entry_id) {
        writelogs("INFOS: bad value {$entry_id}: (' . {$entry_id} . ')  find: (uid={$_POST["uid"]}) -> aborting function search engine doesn`t found the pattern", __LINE__, __FILE__);
        return $tpl->_ENGINE_parse_body('{unknown_user}');
    }
    $attrs = ldap_get_attributes($ldap->ldap_connection, $entry_id);
    $passw = $attrs["userPassword"][0];
    $passw = md5($passw);
    if (!$_GET["credentials"]) {
        $_POST["password"] = md5($_POST["password"]);
    }
    if ($passw != $_POST["password"]) {
        return $tpl->_ENGINE_parse_body('{bad_password}');
    }
    unset($_SESSION["MLDONKEY_{$_POST["uid"]}"]);
    $_SESSION["NOM"] = $attrs["DisplayName"][0];
    $privs = $ldap->_Get_privileges_userid($_POST["uid"]);
    $_SESSION["privileges"]["ArticaGroupPrivileges"] = $privs;
    $users = new usersMenus();
    $uid_class = new user($_POST["uid"]);
    $_SESSION["ou"] = $uid_class->ou;
    $_SESSION["privs"] = $users->_ParsePrivieleges($privs);
    if ($_SESSION["privs"]["ForceLanguageUsers"] != null) {
        $_COOKIE["ArticaForceLanguageUsers"] = $_SESSION["privs"]["ForceLanguageUsers"];
    } else {
        unset($_COOKIE["ArticaForceLanguageUsers"]);
    }
}
Esempio n. 3
0
function logon()
{
    include "ressources/settings.inc";
    if ($_POST["artica_user"] == $_GLOBAL["ldap_admin"]) {
        if ($_POST["password"] != $_GLOBAL["ldap_password"]) {
            $_GET["ERROR"] = "bad password";
            return false;
        } else {
            session_start();
            $_SESSION["uid"] = '-100';
            $_SESSION["groupid"] = '-100';
            $_SESSION["passwd"] = $_POST["password"];
            $_SESSION["privileges"] = '
			[AllowAddGroup]="yes"
			[AllowAddUsers]="yes"
			[AllowChangeKav]="yes"
			[AllowChangeKas]="yes"
			[AllowChangeUserPassword]="yes"
			[AllowEditAliases]="yes"
			[AllowEditAsWbl]="yes"
			[AsSystemAdministrator]="yes"
			[AsPostfixAdministrator]="yes"
			[AsArticaAdministrator]="yes"
			';
            return true;
        }
    }
    writelogs('This is not Global admin, so test user...', __FUNCTION__, __FILE__);
    $u = new user($_POST["artica_user"]);
    $userPassword = $u->password;
    if (trim($u->uidNumber) == null) {
        writelogs('Unable to get user infos abort', __FUNCTION__, __FILE__);
        return false;
    }
    if (trim($_POST["password"]) == trim($userPassword)) {
        $ldap = new clladp();
        $ouprivs = $ldap->_Get_privileges_ou($u->uid, $u->ou);
        $_SESSION["OU_LANG"] = $ouprivs["ForceLanguageUsers"];
        $_SESSION["uid"] = $_POST["artica_user"];
        $_SESSION["passwd"] = $_POST["password"];
        $_SESSION["privileges"]["ArticaGroupPrivileges"] = $ldap->_Get_privileges_userid($_POST["artica_user"]);
        return true;
    }
}
Esempio n. 4
0
function logon()
{
    include "ressources/settings.inc";
    $_POST["artica_password"] = url_decode_special($_POST["artica_password"]);
    writelogs("Testing logon....{$_POST["artica_username"]}", __FUNCTION__, __FILE__, __LINE__);
    writelogs("Testing logon.... password:{$_POST["artica_password"]}", __FUNCTION__, __FILE__, __LINE__);
    $_COOKIE["artica-language"] = $_POST["lang"];
    $socks = new sockets();
    if (!$socks->TestArticaPort()) {
        if (is_file("ressources/logs/boa.start")) {
            $boa_error = file_get_contents("ressources/logs/boa.start");
        }
        echo "Unable to connect to Artica daemon port:{$boa_error}";
        exit;
    }
    if ($_POST["artica_username"] == $_GLOBAL["ldap_admin"]) {
        if ($_POST["artica_password"] != $_GLOBAL["ldap_password"]) {
            echo "bad password";
            return null;
        } else {
            //session_start();
            $_SESSION["uid"] = '-100';
            $_SESSION["groupid"] = '-100';
            $_SESSION["passwd"] = $_POST["artica_password"];
            setcookie("artica-language", $_POST["lang"], time() + 172800);
            $_SESSION["detected_lang"] = $_POST["lang"];
            $_SESSION["privileges"]["ArticaGroupPrivileges"] = '
			[AllowAddGroup]="yes"
			[AllowAddUsers]="yes"
			[AllowChangeKav]="yes"
			[AllowChangeKas]="yes"
			[AllowChangeUserPassword]="yes"
			[AllowEditAliases]="yes"
			[AllowEditAsWbl]="yes"
			[AsSystemAdministrator]="yes"
			[AsPostfixAdministrator]="yes"
			[AsArticaAdministrator]="yes"
			';
            $tpl = new templates();
            echo "location:admin.index.php";
            exit;
        }
    }
    writelogs('This is not Global admin, so test user...', __FUNCTION__, __FILE__);
    $u = new user($_POST["artica_username"]);
    $userPassword = $u->password;
    if (trim($u->uidNumber) == null) {
        writelogs('Unable to get user infos abort', __FUNCTION__, __FILE__);
        echo "Unknown user";
        return null;
    }
    if (trim($_POST["artica_password"]) == trim($userPassword)) {
        $ldap = new clladp();
        $ouprivs = $ldap->_Get_privileges_ou($u->uid, $u->ou);
        $privileges = $ldap->_Get_privileges_userid($_POST["artica_username"]);
        $_SESSION["OU_LANG"] = $ouprivs["ForceLanguageUsers"];
        $_SESSION["uid"] = $_POST["artica_username"];
        $_SESSION["passwd"] = $_POST["artica_password"];
        $_SESSION["privileges"]["ArticaGroupPrivileges"] = $privileges;
        $_SESSION["groupid"] = $ldap->UserGetGroups($_POST["artica_username"], 1);
        $_SESSION["DotClearUserEnabled"] = $u->DotClearUserEnabled;
        $_SESSION["MailboxActive"] = $u->MailboxActive;
        $_SESSION["ou"] = $u->ou;
        $_SESSION["UsersInterfaceDatas"] = trim($u->UsersInterfaceDatas);
        $lang = new articaLang();
        writelogs("default organization language={$_SESSION["OU_LANG"]}", __FUNCTION__, __FILE__);
        if (trim($_SESSION["OU_LANG"]) != null) {
            $_SESSION["detected_lang"] = $_SESSION["OU_LANG"];
            setcookie("artica-language", $_SESSION["OU_LANG"], time() + 172800);
        } else {
            setcookie("artica-language", $_POST["lang"], time() + 172800);
            $_SESSION["detected_lang"] = $lang->get_languages();
        }
        $users = new usersMenus();
        $privileges_array = $users->_ParsePrivieleges($privileges);
        $users->_TranslateRights($privileges_array, true);
        if (!$users->IfIsAnuser(true)) {
            writelogs('This is not an user =>admin.index.php ', __FUNCTION__, __FILE__);
            echo "location:admin.index.php";
            return null;
        }
        writelogs('IT IS AN USER =>../user-backup/logon.php ', __FUNCTION__, __FILE__);
        $tpl = new templates();
        $array["USERNAME"] = $_POST["artica_username"];
        $array["PASSWORD"] = md5($_POST["artica_username"]);
        $credentials = base64_encode(serialize($array));
        echo "location:../user-backup/logon.php?credentials={$credentials}";
        return null;
        exit;
    } else {
        writelogs("The passord typed  is not the same in ldap database...", __FUNCTION__, __FILE__);
        echo "bad password";
        return null;
    }
}