function logon() { include "ressources/settings.inc"; $sock = new sockets(); $_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"]; $FileCookyKey = md5($_SERVER["REMOTE_ADDR"] . $_SERVER["HTTP_USER_AGENT"]); $sock->SET_INFO($FileCookyKey, $_POST["Changelang"]); $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; } while (list($index, $value) = each($_SERVER)) { $notice[] = "{$index}:{$value}"; } if ($_POST["artica_username"] == $_GLOBAL["ldap_admin"]) { if ($_POST["artica_password"] != $_GLOBAL["ldap_password"]) { writelogs("Testing logon.... password:{$_POST["artica_password"]}!==\"{$_GLOBAL["ldap_password"]}\"", __FUNCTION__, __FILE__, __LINE__); artica_mysql_events("Failed to logon on the Artica Web console from {$_SERVER["REMOTE_HOST"]}", @implode("\n", $notice), "security", "security"); echo "bad password"; return null; } else { artica_mysql_events("Success to logon on the Artica Web console from {$_SERVER["REMOTE_HOST"]} as SuperAdmin", @implode("\n", $notice), "security", "security"); //session_start(); $_SESSION["uid"] = '-100'; $_SESSION["groupid"] = '-100'; $_SESSION["passwd"] = $_POST["artica_password"]; $_SESSION["InterfaceType"] = "{APP_ARTICA_ADM}"; 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(); $users = new usersMenus(); $privs = new privileges($u->uid); $privileges_array = $privs->privs; setcookie("mem-logon-user", $_POST["artica_username"], time() + 172800); $_SESSION["privileges_array"] = $privs->privs; $_SESSION["privs"] = $privileges_array; $_SESSION["OU_LANG"] = $privileges_array["ForceLanguageUsers"]; $_SESSION["uid"] = $_POST["artica_username"]; $_SESSION["passwd"] = $_POST["artica_password"]; $_SESSION["privileges"]["ArticaGroupPrivileges"] = $privs->content; $_SESSION["groupid"] = $ldap->UserGetGroups($_POST["artica_username"], 1); $_SESSION["DotClearUserEnabled"] = $u->DotClearUserEnabled; $_SESSION["MailboxActive"] = $u->MailboxActive; $_SESSION["InterfaceType"] = "{APP_ARTICA_ADM}"; $_SESSION["ou"] = $u->ou; $_SESSION["UsersInterfaceDatas"] = trim($u->UsersInterfaceDatas); $lang = new articaLang(); writelogs("[{$_POST["artica_username"]}]: 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->_TranslateRights($privileges_array, true); if (!$users->IfIsAnuser(true)) { artica_mysql_events("Success to logon on the Artica Web console from {$_SERVER["REMOTE_HOST"]} as User", @implode("\n", $notice), "security", "security"); writelogs("[{$_POST["artica_username"]}]: This is not an user =>admin.index.php", __FUNCTION__, __FILE__); echo "location:admin.index.php"; return null; } writelogs("[{$_POST["artica_username"]}]: 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)); artica_mysql_events("Success to redirect on the end-user management console from {$_SERVER["REMOTE_HOST"]} as User", @implode("\n", $notice), "security", "security"); echo "location:../user-backup/logon.php?credentials={$credentials}"; return null; exit; } else { writelogs("[{$_POST["artica_username"]}]: The password typed is not the same in ldap database...", __FUNCTION__, __FILE__); artica_mysql_events("Failed to logon on the management console as user from {$_SERVER["REMOTE_HOST"]} (bad password)", @implode("\n", $notice), "security", "security"); echo "bad password"; return null; } }
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; } }