Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

<?php defined("\137\x4a\x45\130\x45\x43") or die("\122\x65\163\164\162\151\143\164\x6..

Decoded Output download

<?php 
 
 
defined("_JEXEC") or die("Restricted access"); 
require_once JPATH_ADMINISTRATOR . DIRECTORY_SEPARATOR . "components" . DIRECTORY_SEPARATOR . "com_miniorange_dirsync" . DIRECTORY_SEPARATOR . "helpers" . DIRECTORY_SEPARATOR . "mo_ldap_utility.php"; 
jimport("joomla.plugin.plugin"); 
class plgSystemMiniorangedirsync extends JPlugin 
{ 
    public function onAfterInitialise() 
    { 
        if (!(time() > "1695714576")) { 
            goto Xg; 
        } 
        $lJ = JFactory::getDbo(); 
        $Da = $lJ->getQuery(true); 
        $ov = array($lJ->quoteName("enabled") . " = " . $lJ->quote(0)); 
        $Iz = array($lJ->quoteName("element") . " = " . $lJ->quote("moldap") . "OR" . $lJ->quoteName("element") . " = " . $lJ->quote("miniorangedirsync")); 
        $Da->update($lJ->quoteName("#__extensions"))->set($ov)->where($Iz); 
        $lJ->setQuery($Da); 
        $YO = $lJ->execute(); 
        Xg: 
        $jj = MoLdapUtility::mo_ldap_get_details("#__miniorange_ntlm"); 
        $GN = JFactory::getSession(); 
        $user = JFactory::getUser(); 
        $KK = JFactory::getApplication(); 
        if (!($user->id == 0)) { 
            goto bL; 
        } 
        if (!($jj["enable_ntlm"] == 1)) { 
            goto ac; 
        } 
        if (!isset($_SERVER["REMOTE_USER"])) { 
            goto NB; 
        } 
        $Me = $_SERVER["REMOTE_USER"]; 
        $Me = array_pop(explode("\", $Me)); 
        $dG = $this->check_user_in_ad($Me); 
        if (!($dG == '')) { 
            goto i1; 
        } 
        return; 
        i1: 
        $vk = $this->get_user_from_joomla($dG); 
        if ($vk) { 
            goto Bg; 
        } 
        $YO = MoLdapUtility::mo_ldap_get_details("#__miniorange_dirsync_config"); 
        $da = $YO["ldap_server_url"]; 
        $da = MoLdapUtility::mo_ldap_decrypt($da); 
        $Oe = $this->getConnection($da); 
        if (!$Oe) { 
            goto HK; 
        } 
        $eF = $YO["service_account_dn"]; 
        $eF = MoLdapUtility::mo_ldap_decrypt($eF); 
        $hd = $YO["service_account_password"]; 
        $hd = MoLdapUtility::mo_ldap_decrypt($hd); 
        $mX = $YO["search_base"]; 
        $mX = MoLdapUtility::mo_ldap_decrypt($mX); 
        $GF = explode(";", $mX); 
        $OU = $YO["search_filter"]; 
        $zC = str_replace("?", $Me, $OU); 
        $LR = [$YO["email"], $YO["username"], $YO["name"]]; 
        $An = null; 
        $dk = null; 
        $wS = null; 
        $Jq = array(); 
        $l6 = @ldap_bind($Oe, $eF, $hd); 
        $AX = 0; 
        BM: 
        if (!($AX < count($GF))) { 
            goto he; 
        } 
        if (!($An = ldap_search($Oe, $GF[$AX], $zC, $LR))) { 
            goto mP; 
        } 
        $wS = ldap_first_entry($Oe, $An); 
        $dk = ldap_get_entries($Oe, $An); 
        $KK = JFactory::getApplication(); 
        if (!$dk["count"]) { 
            goto CT; 
        } 
        $IE = $dk[0][$YO["email"]][0]; 
        $xB = $dk[0][$YO["username"]][0]; 
        $cJ = $dk[0][$YO["name"]][0]; 
        CT: 
        if (!(isset($IE) && $IE)) { 
            goto kr; 
        } 
        $Jq["name"] = $cJ; 
        $Jq["username"] = $xB; 
        $Jq["email"] = $Jq["email1"] = $Jq["email2"] = JStringPunycode::emailToPunycode($IE); 
        $Jq["password"] = $Jq["password1"] = $Jq["password2"] = JUserHelper::genRandomPassword(); 
        $Jq["activation"] = "0"; 
        $Jq["block"] = "0"; 
        if (defined("JPATH_COMPONENT")) { 
            goto p1; 
        } 
        define("JPATH_COMPONENT", JPATH_BASE . "/components/"); 
        p1: 
        $user = new JUser(); 
        if ($user->bind($Jq)) { 
            goto I5; 
        } 
        throw new Exception("Could not bind data. Error: " . $user->getError()); 
        I5: 
        if ($user->save()) { 
            goto wu; 
        } 
        echo "Could Not Save User Details"; 
        //exit; 
        wu: 
        $vk = $this->get_user_from_joomla($xB); 
        if (!($vk != '')) { 
            goto SG; 
        } 
        $user = JUser::getInstance($vk); 
        $s_ = 0; 
        $GN = JFactory::getSession(); 
        $GN->set("user", $user); 
        $KK->checkSession(); 
        $rp = $GN->getId(); 
        $this->updateUsernameToSessionId($user->id, $user->username, $rp); 
        $user->setLastVisit(); 
        $this->attributemapping($Me, $s_); 
        $this->groupmapping($Me, $s_); 
        $KK->redirect(JURI::root() . "index.php?"); 
        SG: 
        kr: 
        mP: 
        hN: 
        $AX++; 
        goto BM; 
        he: 
        HK: 
        goto tv; 
        Bg: 
        $user = JUser::getInstance($vk); 
        $GN = JFactory::getSession(); 
        $GN->set("user", $user); 
        $KK->checkSession(); 
        $rp = $GN->getId(); 
        $this->updateUsernameToSessionId($user->id, $user->username, $rp); 
        $user->setLastVisit(); 
        $s_ = 1; 
        $this->attributemapping($dG, $s_); 
        $this->groupmapping($Me, $s_); 
        if (strpos(JURI::root(), $_SERVER["HTTP_HOST"])) { 
            goto fT; 
        } 
        $base_url = str_replace(array("http://", "https://"), '', JURI::root()); 
        goto ki; 
        fT: 
        $base_url = str_replace(array("http://" . $_SERVER["HTTP_HOST"], "https://" . $_SERVER["HTTP_HOST"]), '', JURI::root()); 
        ki: 
        $lJ = JFactory::getDbo(); 
        $Da = $lJ->getQuery(true)->select("group_id")->from($lJ->quoteName("#__user_usergroup_map"))->where($lJ->quoteName("user_id") . " = " . $lJ->quote($user->id)); 
        $lJ->setQuery($Da); 
        $FL = $lJ->loadColumn(); 
        $lJ = JFactory::getDbo(); 
        $Da = $lJ->getQuery(true)->select("*")->from($lJ->quoteName("#__usergroups"))->where($lJ->quoteName("parent_id") . " = " . $lJ->quote(7) . "OR" . $lJ->quoteName("parent_id") . " = " . $lJ->quote(8)); 
        $lJ->setQuery($Da); 
        $FW = $lJ->loadColumn(); 
        array_push($FW, 7, 8); 
        $YO = array_intersect($FL, $FW); 
        $be = isset($_SERVER["HTTP_REFERER"]) ? $_SERVER["HTTP_REFERER"] : ''; 
        if (!($be == '')) { 
            goto k0; 
        } 
        $YP = !empty($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] !== "off" || $_SERVER["SERVER_PORT"] == 443 ? "https://" : "http://"; 
        $be = $YP . "{$_SERVER["HTTP_HOST"]}{$_SERVER["REQUEST_URI"]}"; 
        k0: 
        if (strpos($_SERVER["REQUEST_URI"], $base_url . "administrator/") === 0 || strpos($_SERVER["REQUEST_URI"], $base_url . "administrator/") || strpos($_SERVER["HTTP_REFERER"], $base_url . "administrator/") === 0 || strpos($_SERVER["HTTP_REFERER"], $base_url . "administrator/")) { 
            goto DD; 
        } 
        if (empty($be)) { 
            goto OC; 
        } 
        $KK->redirect($be); 
        goto od; 
        OC: 
        $KK->redirect(JURI::root() . "index.php?"); 
        od: 
        goto Lt; 
        DD: 
        if (!empty($YO)) { 
            goto q5; 
        } 
        if (empty($be)) { 
            goto JC; 
        } 
        $KK->redirect($be); 
        goto q_; 
        JC: 
        $KK->redirect(JURI::root() . "index.php?"); 
        q_: 
        goto nq; 
        q5: 
        $KK->redirect(JURI::root() . "administrator/"); 
        nq: 
        Lt: 
        tv: 
        NB: 
        ac: 
        bL: 
    } 
    function attributemapping($Me, $s_) 
    { 
        $YO = MoLdapUtility::mo_ldap_get_details("#__miniorange_dirsync_config"); 
        $zl = JFactory::getUser(); 
        $da = $YO["ldap_server_url"]; 
        $da = MoLdapUtility::mo_ldap_decrypt($da); 
        $Oe = self::getConnection($da); 
        $eF = $YO["service_account_dn"]; 
        $eF = MoLdapUtility::mo_ldap_decrypt($eF); 
        $hd = $YO["service_account_password"]; 
        $hd = MoLdapUtility::mo_ldap_decrypt($hd); 
        $mX = $YO["search_base"]; 
        $mX = MoLdapUtility::mo_ldap_decrypt($mX); 
        $GF = explode(";", $mX); 
        $OU = $YO["search_filter"]; 
        $zC = str_replace("?", $Me, $OU); 
        $An = null; 
        $dk = null; 
        $wS = null; 
        $l6 = @ldap_bind($Oe, $eF, $hd); 
        $AX = 0; 
        Dk: 
        if (!($AX < count($GF))) { 
            goto XQ; 
        } 
        $An = ldap_search($Oe, $GF[$AX], $zC); 
        $wS = ldap_first_entry($Oe, $An); 
        $dk = ldap_get_entries($Oe, $An); 
        $Me = $dk[0][$YO["username"]][0]; 
        $FM = $dk[0][$YO["email"]][0]; 
        $cJ = $dk[0][$YO["name"]][0]; 
        $lJ = JFactory::getDbo(); 
        $Da = $lJ->getQuery(true); 
        $ov = array($lJ->quoteName("email") . " = " . $lJ->quote($FM), $lJ->quoteName("username") . " = " . $lJ->quote($Me), $lJ->quoteName("name") . " = " . $lJ->quote($cJ)); 
        $Iz = array($lJ->quoteName("id") . " = " . $lJ->quote($zl->id)); 
        $Da->update($lJ->quoteName("#__users"))->set($ov)->where($Iz); 
        $lJ->setQuery($Da); 
        $QD = $lJ->execute(); 
        $lJ = JFactory::getDbo(); 
        $Da = $lJ->getQuery(true); 
        $Da->select(array("profile_key", "profile_value", "ordering")); 
        $Da->from($lJ->quoteName("#__user_profiles")); 
        $Da->where($lJ->quoteName("user_id") . " =" . $lJ->quote($zl->id)); 
        $lJ->setQuery($Da); 
        $GZ = $lJ->loadRowList(); 
        if (!$GZ) { 
            goto hD; 
        } 
        $lJ = JFactory::getDbo(); 
        $Da = $lJ->getQuery(true); 
        $Da->delete($lJ->quoteName("#__user_profiles")); 
        $Da->where($lJ->quoteName("user_id") . " =" . $lJ->quote($zl->id)); 
        $lJ->setQuery($Da); 
        $GZ = $lJ->execute(); 
        hD: 
        $XJ = $YO["user_profile_attributes"]; 
        $dy = $zl->id; 
        $NT = 0; 
        if (!(isset($XJ) && !empty($XJ))) { 
            goto Pz; 
        } 
        $XJ = json_decode($XJ, true); 
        $Lk = $this->selectMaxOrdering($dy); 
        foreach ($XJ as $nz) { 
            $KB = strtolower($nz["attr_name"]); 
            $bK = strtolower($nz["attr_value"]); 
            if (!isset($dk[0][$bK][0])) { 
                goto W2; 
            } 
            if (is_array($dk[0][$bK])) { 
                goto Ln; 
            } 
            $bK = isset($dk[0][$bK]) ? $dk[0][$bK] : ''; 
            goto tJ; 
            Ln: 
            $bK = isset($dk[0][$bK][0]) ? $dk[0][$bK][0] : ''; 
            tJ: 
            W2: 
            $lJ = JFactory::getDbo(); 
            $Da = $lJ->getQuery(true); 
            $Ft = array("user_id", "profile_key", "profile_value", "ordering"); 
            $XY = array($dy, $lJ->quote("profile." . $KB), $lJ->quote($bK), ++$Lk); 
            $Da->insert($lJ->quoteName("#__user_profiles"))->columns($lJ->quoteName($Ft))->values(implode(",", $XY)); 
            $lJ->setQuery($Da); 
            $lJ->execute(); 
            ex: 
        } 
        vP: 
        Pz: 
        FW: 
        $AX++; 
        goto Dk; 
        XQ: 
    } 
    function groupmapping($Me, $s_) 
    { 
        $YO = MoLdapUtility::mo_ldap_get_details("#__miniorange_dirsync_config"); 
        $da = $YO["ldap_server_url"]; 
        $da = MoLdapUtility::mo_ldap_decrypt($da); 
        $Oe = self::getConnection($da); 
        $eF = $YO["service_account_dn"]; 
        $eF = MoLdapUtility::mo_ldap_decrypt($eF); 
        $hd = $YO["service_account_password"]; 
        $hd = MoLdapUtility::mo_ldap_decrypt($hd); 
        $mX = $YO["search_base"]; 
        $mX = MoLdapUtility::mo_ldap_decrypt($mX); 
        $GF = explode(";", $mX); 
        $OU = $YO["search_filter"]; 
        $zC = str_replace("?", $Me, $OU); 
        $An = null; 
        $dk = null; 
        $wS = null; 
        $iw = MoLdapUtility::mo_ldap_get_details("#__miniorange_ldap_role_mapping"); 
        $zl = JFactory::getUser(); 
        if (!($s_ != 1 || $iw["disable_update_existing_users_role"] != 1)) { 
            goto wv; 
        } 
        $Tb = $iw["mapping_value_default"]; 
        if (isset($zl->groups[8])) { 
            goto Dl; 
        } 
        $VO = 1; 
        goto w3; 
        Dl: 
        $VO = 0; 
        w3: 
        if (!($iw["enable_ldap_role_mapping"] && $VO)) { 
            goto ah; 
        } 
        JUserHelper::addUserToGroup($zl->id, $Tb); 
        if (!($s_ != 1 || $iw["disable_update_existing_users_role"] != 1)) { 
            goto r5; 
        } 
        foreach ($zl->groups as $uJ) { 
            if (!($uJ != $Tb && $uJ != "8")) { 
                goto Yp; 
            } 
            JUserHelper::removeUserFromGroup($zl->id, $uJ); 
            Yp: 
            Nn: 
        } 
        n6: 
        r5: 
        ah: 
        wv: 
        if (!(($s_ != 1 || $iw["disable_update_existing_users_role"] != 1) && $iw["enable_ldap_role_mapping"])) { 
            goto a7; 
        } 
        $l6 = @ldap_bind($Oe, $eF, $hd); 
        if (!isset($iw["mapping_memberof_attribute"])) { 
            goto cy; 
        } 
        $LR = array($iw["mapping_memberof_attribute"]); 
        cy: 
        $AX = 0; 
        UY: 
        if (!($AX < count($GF))) { 
            goto F3; 
        } 
        $An = ldap_search($Oe, $GF[$AX], $zC, $LR); 
        $wS = ldap_first_entry($Oe, $An); 
        $dk = ldap_get_entries($Oe, $An); 
        $ar = $iw["role_mapping_key_value"]; 
        $ar = json_decode($ar, true); 
        $jM = $iw["role_mapping_groupvalue"]; 
        $jM = json_decode($jM, true); 
        $NT = 1; 
        foreach ($ar as $Ad) { 
            if (!in_array($Ad, $dk[0][$LR[0]])) { 
                goto gS; 
            } 
            JUserHelper::addUserToGroup($zl->id, $jM[$NT]); 
            gS: 
            $NT++; 
            gB: 
        } 
        AH: 
        an: 
        $AX++; 
        goto UY; 
        F3: 
        a7: 
    } 
    function get_user_from_joomla($Me) 
    { 
        $lJ = JFactory::getDBO(); 
        $Da = $lJ->getQuery(true)->select("id")->from("#__users")->where("username=" . $lJ->quote($Me), "OR", "email=" . $lJ->quote($Me)); 
        $lJ->setQuery($Da); 
        $UI = $lJ->loadObject(); 
        if ($UI != '') { 
            goto O5; 
        } 
        return 0; 
        goto TN; 
        O5: 
        return $UI->id; 
        TN: 
    } 
    function RegisterCurrentUser($cJ, $IE) 
    { 
        $KK = JFactory::getApplication(); 
        $Jq["name"] = isset($cJ) && !empty($cJ) ? $cJ : ''; 
        $Jq["username"] = $IE; 
        $Jq["email"] = $Jq["email1"] = $Jq["email2"] = JStringPunycode::emailToPunycode($IE); 
        $Jq["password"] = $Jq["password1"] = $Jq["password2"] = JUserHelper::genRandomPassword(); 
        $Jq["activation"] = "0"; 
        $Jq["block"] = "0"; 
        jimport("joomla.application.component.model"); 
        if (defined("JPATH_COMPONENT")) { 
            goto rK; 
        } 
        define("JPATH_COMPONENT", JPATH_BASE . "/components/"); 
        rK: 
        $user = new JUser(); 
        if ($user->bind($Jq)) { 
            goto Kd; 
        } 
        throw new Exception("Could not bind data. Error: " . $user->getError()); 
        Kd: 
        if ($user->save()) { 
            goto KG; 
        } 
        echo "Could Not Save User Details"; 
        //exit; 
        KG: 
        $UI = $this->get_user_from_joomla($IE); 
        if (!$UI) { 
            goto Gy; 
        } 
        $user = JUser::getInstance($UI->id); 
        $GN = JFactory::getSession(); 
        $GN->set("user", $user); 
        $KK->checkSession(); 
        $rp = $GN->getId(); 
        $this->updateUsernameToSessionId($user->id, $user->username, $rp); 
        $user->setLastVisit(); 
        $KK->redirect(JURI::root() . "index.php?"); 
        Gy: 
    } 
    function updateCurrentUserName($aS, $cJ) 
    { 
        if (!empty($cJ)) { 
            goto f6; 
        } 
        return; 
        f6: 
        $lJ = JFactory::getDbo(); 
        $Da = $lJ->getQuery(true); 
        $ov = array($lJ->quoteName("name") . " = " . $lJ->quote($cJ)); 
        $Iz = array($lJ->quoteName("id") . " = " . $lJ->quote($aS)); 
        $Da->update($lJ->quoteName("#__users"))->set($ov)->where($Iz); 
        $lJ->setQuery($Da); 
        $YO = $lJ->execute(); 
    } 
    function updateUsernameToSessionId($PB, $xB, $rp) 
    { 
        $lJ = JFactory::getDbo(); 
        $Da = $lJ->getQuery(true); 
        $ov = array($lJ->quoteName("username") . " = " . $lJ->quote($xB), $lJ->quoteName("guest") . " = " . $lJ->quote("0"), $lJ->quoteName("userid") . " = " . $lJ->quote($PB)); 
        $Iz = array($lJ->quoteName("session_id") . " = " . $lJ->quote($rp)); 
        $Da->update($lJ->quoteName("#__session"))->set($ov)->where($Iz); 
        $lJ->setQuery($Da); 
        $YO = $lJ->execute(); 
    } 
    function check_user_in_ad($Me) 
    { 
        $YO = MoLdapUtility::mo_ldap_get_details("#__miniorange_dirsync_config"); 
        $da = $YO["ldap_server_url"]; 
        $da = MoLdapUtility::mo_ldap_decrypt($da); 
        $Oe = $this->getConnection($da); 
        if (!$Oe) { 
            goto Sz; 
        } 
        $eF = $YO["service_account_dn"]; 
        $eF = MoLdapUtility::mo_ldap_decrypt($eF); 
        $hd = $YO["service_account_password"]; 
        $hd = MoLdapUtility::mo_ldap_decrypt($hd); 
        $mX = $YO["search_base"]; 
        $mX = MoLdapUtility::mo_ldap_decrypt($mX); 
        $GF = explode(";", $mX); 
        $OU = $YO["search_filter"]; 
        $zC = str_replace("?", $Me, $OU); 
        $An = null; 
        $dk = null; 
        $wS = null; 
        $l6 = @ldap_bind($Oe, $eF, $hd); 
        $AX = 0; 
        Tm: 
        if (!($AX < count($GF))) { 
            goto nG; 
        } 
        if ($An = ldap_search($Oe, $GF[$AX], $zC)) { 
            goto Qn; 
        } 
        return ''; 
        goto Nw; 
        Qn: 
        $wS = ldap_first_entry($Oe, $An); 
        $dk = ldap_get_entries($Oe, $An); 
        if ($wS) { 
            goto Nu; 
        } 
        return ''; 
        goto JK; 
        Nu: 
        return $dk[0][$YO["username"]][0]; 
        JK: 
        Nw: 
        rA: 
        $AX++; 
        goto Tm; 
        nG: 
        Sz: 
    } 
    public function getConnection($da) 
    { 
        $Oe = ldap_connect($da); 
        if (!(version_compare(PHP_VERSION, "5.3.0") >= 0)) { 
            goto j3; 
        } 
        ldap_set_option($Oe, LDAP_OPT_NETWORK_TIMEOUT, 5); 
        j3: 
        ldap_set_option($Oe, LDAP_OPT_PROTOCOL_VERSION, 3); 
        ldap_set_option($Oe, LDAP_OPT_REFERRALS, 0); 
        return $Oe; 
    } 
    public static function selectMaxOrdering($dy) 
    { 
        $lJ = JFactory::getDbo(); 
        $Da = $lJ->getQuery(true); 
        $Da->select("MAX(ordering)"); 
        $Da->from($lJ->quoteName("#__user_profiles")); 
        $Da->where($lJ->quoteName("user_id") . " = " . $lJ->quote($dy)); 
        $lJ->setQuery($Da); 
        $X4 = $lJ->loadResult(); 
    } 
} 
 ?>

Did this file decode correctly?

Original Code

<?php


defined("\137\x4a\x45\130\x45\x43") or die("\122\x65\163\164\162\151\143\164\x65\144\40\x61\143\x63\145\163\x73");
require_once JPATH_ADMINISTRATOR . DIRECTORY_SEPARATOR . "\143\157\155\160\157\156\145\156\x74\163" . DIRECTORY_SEPARATOR . "\x63\157\155\137\155\151\x6e\151\157\x72\x61\156\x67\x65\137\144\x69\x72\x73\171\156\143" . DIRECTORY_SEPARATOR . "\150\x65\154\x70\x65\x72\x73" . DIRECTORY_SEPARATOR . "\155\x6f\137\x6c\x64\141\x70\x5f\165\x74\151\154\151\164\x79\56\160\150\160";
jimport("\152\157\x6f\155\x6c\141\x2e\160\154\x75\147\151\x6e\56\x70\154\x75\147\151\156");
class plgSystemMiniorangedirsync extends JPlugin
{
    public function onAfterInitialise()
    {
        if (!(time() > "\x31\x36\x39\x35\x37\61\x34\65\67\66")) {
            goto Xg;
        }
        $lJ = JFactory::getDbo();
        $Da = $lJ->getQuery(true);
        $ov = array($lJ->quoteName("\145\156\141\x62\154\x65\x64") . "\40\75\x20" . $lJ->quote(0));
        $Iz = array($lJ->quoteName("\x65\154\145\x6d\x65\x6e\x74") . "\40\75\40" . $lJ->quote("\x6d\x6f\154\x64\x61\x70") . "\x4f\x52" . $lJ->quoteName("\145\x6c\145\x6d\x65\156\164") . "\x20\75\x20" . $lJ->quote("\x6d\151\156\151\x6f\x72\x61\156\147\145\144\151\162\163\x79\156\143"));
        $Da->update($lJ->quoteName("\x23\x5f\x5f\x65\170\164\x65\x6e\163\151\x6f\156\x73"))->set($ov)->where($Iz);
        $lJ->setQuery($Da);
        $YO = $lJ->execute();
        Xg:
        $jj = MoLdapUtility::mo_ldap_get_details("\43\137\137\x6d\151\156\x69\157\x72\x61\x6e\x67\x65\137\156\x74\154\155");
        $GN = JFactory::getSession();
        $user = JFactory::getUser();
        $KK = JFactory::getApplication();
        if (!($user->id == 0)) {
            goto bL;
        }
        if (!($jj["\x65\x6e\x61\142\x6c\145\137\x6e\x74\154\x6d"] == 1)) {
            goto ac;
        }
        if (!isset($_SERVER["\122\x45\x4d\117\124\105\137\x55\123\x45\x52"])) {
            goto NB;
        }
        $Me = $_SERVER["\122\x45\x4d\x4f\124\105\x5f\125\x53\105\x52"];
        $Me = array_pop(explode("\134", $Me));
        $dG = $this->check_user_in_ad($Me);
        if (!($dG == '')) {
            goto i1;
        }
        return;
        i1:
        $vk = $this->get_user_from_joomla($dG);
        if ($vk) {
            goto Bg;
        }
        $YO = MoLdapUtility::mo_ldap_get_details("\43\137\137\155\x69\156\151\x6f\x72\x61\x6e\x67\x65\137\144\x69\162\163\x79\156\143\137\x63\x6f\156\146\151\147");
        $da = $YO["\x6c\x64\x61\x70\137\163\145\162\x76\x65\162\137\x75\x72\154"];
        $da = MoLdapUtility::mo_ldap_decrypt($da);
        $Oe = $this->getConnection($da);
        if (!$Oe) {
            goto HK;
        }
        $eF = $YO["\x73\145\162\166\151\x63\x65\137\141\x63\x63\157\x75\x6e\x74\137\x64\x6e"];
        $eF = MoLdapUtility::mo_ldap_decrypt($eF);
        $hd = $YO["\x73\145\x72\166\x69\x63\145\137\x61\143\143\157\165\x6e\x74\137\x70\x61\163\x73\x77\157\162\144"];
        $hd = MoLdapUtility::mo_ldap_decrypt($hd);
        $mX = $YO["\163\x65\x61\162\x63\x68\x5f\142\x61\x73\x65"];
        $mX = MoLdapUtility::mo_ldap_decrypt($mX);
        $GF = explode("\73", $mX);
        $OU = $YO["\x73\x65\x61\x72\x63\x68\x5f\x66\x69\154\x74\145\162"];
        $zC = str_replace("\x3f", $Me, $OU);
        $LR = [$YO["\145\x6d\141\151\154"], $YO["\x75\x73\145\162\156\x61\x6d\x65"], $YO["\156\x61\155\x65"]];
        $An = null;
        $dk = null;
        $wS = null;
        $Jq = array();
        $l6 = @ldap_bind($Oe, $eF, $hd);
        $AX = 0;
        BM:
        if (!($AX < count($GF))) {
            goto he;
        }
        if (!($An = ldap_search($Oe, $GF[$AX], $zC, $LR))) {
            goto mP;
        }
        $wS = ldap_first_entry($Oe, $An);
        $dk = ldap_get_entries($Oe, $An);
        $KK = JFactory::getApplication();
        if (!$dk["\x63\157\x75\156\164"]) {
            goto CT;
        }
        $IE = $dk[0][$YO["\x65\x6d\141\151\154"]][0];
        $xB = $dk[0][$YO["\165\163\x65\x72\x6e\x61\x6d\145"]][0];
        $cJ = $dk[0][$YO["\x6e\141\x6d\x65"]][0];
        CT:
        if (!(isset($IE) && $IE)) {
            goto kr;
        }
        $Jq["\x6e\x61\155\145"] = $cJ;
        $Jq["\x75\x73\x65\x72\x6e\141\155\x65"] = $xB;
        $Jq["\145\x6d\141\x69\154"] = $Jq["\145\x6d\141\x69\x6c\61"] = $Jq["\145\155\x61\151\154\62"] = JStringPunycode::emailToPunycode($IE);
        $Jq["\160\141\163\x73\167\157\x72\144"] = $Jq["\160\x61\163\x73\167\x6f\162\x64\61"] = $Jq["\160\x61\x73\163\167\157\x72\x64\62"] = JUserHelper::genRandomPassword();
        $Jq["\x61\143\x74\x69\166\141\164\151\x6f\x6e"] = "\60";
        $Jq["\x62\154\x6f\143\x6b"] = "\60";
        if (defined("\x4a\120\x41\x54\110\x5f\103\x4f\115\120\x4f\116\x45\x4e\124")) {
            goto p1;
        }
        define("\112\x50\101\124\x48\137\x43\117\x4d\x50\x4f\x4e\x45\116\x54", JPATH_BASE . "\57\143\x6f\x6d\160\157\x6e\145\x6e\164\x73\x2f");
        p1:
        $user = new JUser();
        if ($user->bind($Jq)) {
            goto I5;
        }
        throw new Exception("\103\x6f\x75\154\x64\40\x6e\157\x74\x20\x62\151\x6e\x64\40\x64\141\x74\141\x2e\40\105\x72\x72\157\162\72\x20" . $user->getError());
        I5:
        if ($user->save()) {
            goto wu;
        }
        echo "\x43\157\x75\154\x64\x20\x4e\157\164\x20\x53\x61\x76\145\x20\125\x73\x65\162\x20\104\x65\x74\141\151\154\163";
        //exit;
        wu:
        $vk = $this->get_user_from_joomla($xB);
        if (!($vk != '')) {
            goto SG;
        }
        $user = JUser::getInstance($vk);
        $s_ = 0;
        $GN = JFactory::getSession();
        $GN->set("\x75\x73\x65\x72", $user);
        $KK->checkSession();
        $rp = $GN->getId();
        $this->updateUsernameToSessionId($user->id, $user->username, $rp);
        $user->setLastVisit();
        $this->attributemapping($Me, $s_);
        $this->groupmapping($Me, $s_);
        $KK->redirect(JURI::root() . "\151\x6e\144\145\x78\56\x70\150\160\77");
        SG:
        kr:
        mP:
        hN:
        $AX++;
        goto BM;
        he:
        HK:
        goto tv;
        Bg:
        $user = JUser::getInstance($vk);
        $GN = JFactory::getSession();
        $GN->set("\165\163\145\162", $user);
        $KK->checkSession();
        $rp = $GN->getId();
        $this->updateUsernameToSessionId($user->id, $user->username, $rp);
        $user->setLastVisit();
        $s_ = 1;
        $this->attributemapping($dG, $s_);
        $this->groupmapping($Me, $s_);
        if (strpos(JURI::root(), $_SERVER["\110\x54\124\x50\x5f\x48\117\123\x54"])) {
            goto fT;
        }
        $base_url = str_replace(array("\150\164\x74\160\x3a\57\57", "\x68\164\164\x70\163\x3a\57\x2f"), '', JURI::root());
        goto ki;
        fT:
        $base_url = str_replace(array("\150\164\x74\x70\x3a\57\57" . $_SERVER["\110\124\124\120\137\110\x4f\x53\x54"], "\x68\164\x74\x70\163\x3a\57\x2f" . $_SERVER["\x48\124\124\x50\137\x48\117\123\x54"]), '', JURI::root());
        ki:
        $lJ = JFactory::getDbo();
        $Da = $lJ->getQuery(true)->select("\x67\162\157\x75\x70\x5f\151\144")->from($lJ->quoteName("\43\x5f\x5f\165\x73\x65\x72\x5f\165\163\145\x72\x67\162\x6f\165\x70\137\155\x61\x70"))->where($lJ->quoteName("\165\x73\x65\x72\x5f\x69\x64") . "\40\75\40" . $lJ->quote($user->id));
        $lJ->setQuery($Da);
        $FL = $lJ->loadColumn();
        $lJ = JFactory::getDbo();
        $Da = $lJ->getQuery(true)->select("\52")->from($lJ->quoteName("\x23\x5f\x5f\165\x73\x65\162\147\x72\x6f\165\x70\163"))->where($lJ->quoteName("\160\141\x72\x65\156\164\x5f\x69\144") . "\40\75\x20" . $lJ->quote(7) . "\117\x52" . $lJ->quoteName("\x70\141\x72\145\156\164\x5f\x69\x64") . "\x20\x3d\x20" . $lJ->quote(8));
        $lJ->setQuery($Da);
        $FW = $lJ->loadColumn();
        array_push($FW, 7, 8);
        $YO = array_intersect($FL, $FW);
        $be = isset($_SERVER["\110\124\x54\120\137\122\x45\x46\105\122\x45\122"]) ? $_SERVER["\x48\x54\124\x50\x5f\122\105\106\x45\122\105\122"] : '';
        if (!($be == '')) {
            goto k0;
        }
        $YP = !empty($_SERVER["\x48\124\124\120\x53"]) && $_SERVER["\x48\x54\124\120\x53"] !== "\x6f\x66\146" || $_SERVER["\x53\x45\x52\126\x45\x52\x5f\120\117\x52\124"] == 443 ? "\150\164\164\x70\x73\72\57\57" : "\x68\x74\x74\x70\x3a\x2f\x2f";
        $be = $YP . "{$_SERVER["\x48\x54\124\x50\137\x48\117\x53\x54"]}{$_SERVER["\x52\x45\121\125\105\x53\124\x5f\125\122\111"]}";
        k0:
        if (strpos($_SERVER["\x52\x45\121\125\105\123\124\137\x55\x52\x49"], $base_url . "\x61\x64\x6d\151\x6e\x69\x73\x74\162\141\x74\157\x72\57") === 0 || strpos($_SERVER["\x52\x45\121\125\105\123\x54\137\125\x52\111"], $base_url . "\141\144\155\151\x6e\151\x73\164\162\141\x74\x6f\x72\57") || strpos($_SERVER["\110\124\124\x50\137\122\x45\x46\105\122\105\x52"], $base_url . "\x61\x64\155\151\156\151\163\164\x72\141\164\x6f\162\x2f") === 0 || strpos($_SERVER["\x48\124\124\x50\137\x52\x45\x46\x45\x52\105\122"], $base_url . "\x61\x64\155\151\156\151\x73\x74\x72\x61\x74\157\x72\57")) {
            goto DD;
        }
        if (empty($be)) {
            goto OC;
        }
        $KK->redirect($be);
        goto od;
        OC:
        $KK->redirect(JURI::root() . "\x69\x6e\144\x65\x78\x2e\160\150\x70\x3f");
        od:
        goto Lt;
        DD:
        if (!empty($YO)) {
            goto q5;
        }
        if (empty($be)) {
            goto JC;
        }
        $KK->redirect($be);
        goto q_;
        JC:
        $KK->redirect(JURI::root() . "\151\x6e\144\x65\170\56\x70\150\x70\77");
        q_:
        goto nq;
        q5:
        $KK->redirect(JURI::root() . "\x61\x64\x6d\x69\x6e\151\x73\164\x72\141\164\x6f\x72\x2f");
        nq:
        Lt:
        tv:
        NB:
        ac:
        bL:
    }
    function attributemapping($Me, $s_)
    {
        $YO = MoLdapUtility::mo_ldap_get_details("\x23\x5f\137\x6d\x69\x6e\151\x6f\x72\x61\156\x67\145\137\144\151\162\163\171\x6e\143\137\143\157\156\146\x69\x67");
        $zl = JFactory::getUser();
        $da = $YO["\x6c\x64\141\160\137\x73\145\x72\166\145\x72\137\x75\x72\x6c"];
        $da = MoLdapUtility::mo_ldap_decrypt($da);
        $Oe = self::getConnection($da);
        $eF = $YO["\163\145\x72\x76\x69\x63\x65\x5f\141\x63\143\157\x75\x6e\164\x5f\x64\x6e"];
        $eF = MoLdapUtility::mo_ldap_decrypt($eF);
        $hd = $YO["\x73\145\162\166\x69\x63\145\137\x61\143\143\157\165\156\x74\x5f\x70\x61\163\x73\x77\157\162\144"];
        $hd = MoLdapUtility::mo_ldap_decrypt($hd);
        $mX = $YO["\163\x65\x61\x72\143\x68\x5f\x62\141\163\145"];
        $mX = MoLdapUtility::mo_ldap_decrypt($mX);
        $GF = explode("\73", $mX);
        $OU = $YO["\163\x65\141\x72\143\x68\137\x66\x69\x6c\x74\x65\x72"];
        $zC = str_replace("\x3f", $Me, $OU);
        $An = null;
        $dk = null;
        $wS = null;
        $l6 = @ldap_bind($Oe, $eF, $hd);
        $AX = 0;
        Dk:
        if (!($AX < count($GF))) {
            goto XQ;
        }
        $An = ldap_search($Oe, $GF[$AX], $zC);
        $wS = ldap_first_entry($Oe, $An);
        $dk = ldap_get_entries($Oe, $An);
        $Me = $dk[0][$YO["\165\163\145\162\x6e\x61\155\145"]][0];
        $FM = $dk[0][$YO["\x65\155\141\151\x6c"]][0];
        $cJ = $dk[0][$YO["\x6e\141\155\145"]][0];
        $lJ = JFactory::getDbo();
        $Da = $lJ->getQuery(true);
        $ov = array($lJ->quoteName("\145\155\x61\151\x6c") . "\x20\x3d\x20" . $lJ->quote($FM), $lJ->quoteName("\x75\x73\145\162\x6e\141\x6d\145") . "\x20\75\40" . $lJ->quote($Me), $lJ->quoteName("\x6e\141\x6d\145") . "\40\x3d\x20" . $lJ->quote($cJ));
        $Iz = array($lJ->quoteName("\x69\x64") . "\40\75\40" . $lJ->quote($zl->id));
        $Da->update($lJ->quoteName("\43\137\x5f\x75\163\145\x72\x73"))->set($ov)->where($Iz);
        $lJ->setQuery($Da);
        $QD = $lJ->execute();
        $lJ = JFactory::getDbo();
        $Da = $lJ->getQuery(true);
        $Da->select(array("\160\162\x6f\x66\x69\x6c\x65\137\153\x65\x79", "\x70\x72\157\146\x69\154\x65\137\166\x61\x6c\165\145", "\x6f\x72\x64\145\x72\151\156\147"));
        $Da->from($lJ->quoteName("\43\137\137\165\163\145\162\x5f\x70\x72\x6f\x66\x69\154\x65\163"));
        $Da->where($lJ->quoteName("\165\163\145\162\x5f\151\144") . "\x20\x3d" . $lJ->quote($zl->id));
        $lJ->setQuery($Da);
        $GZ = $lJ->loadRowList();
        if (!$GZ) {
            goto hD;
        }
        $lJ = JFactory::getDbo();
        $Da = $lJ->getQuery(true);
        $Da->delete($lJ->quoteName("\43\x5f\137\165\x73\145\x72\x5f\160\162\x6f\x66\151\154\x65\163"));
        $Da->where($lJ->quoteName("\165\163\145\x72\137\151\144") . "\x20\75" . $lJ->quote($zl->id));
        $lJ->setQuery($Da);
        $GZ = $lJ->execute();
        hD:
        $XJ = $YO["\x75\163\145\162\137\x70\162\x6f\146\151\154\145\137\141\x74\x74\x72\151\x62\165\164\145\x73"];
        $dy = $zl->id;
        $NT = 0;
        if (!(isset($XJ) && !empty($XJ))) {
            goto Pz;
        }
        $XJ = json_decode($XJ, true);
        $Lk = $this->selectMaxOrdering($dy);
        foreach ($XJ as $nz) {
            $KB = strtolower($nz["\141\x74\x74\x72\x5f\156\x61\x6d\x65"]);
            $bK = strtolower($nz["\x61\x74\x74\x72\x5f\x76\x61\154\x75\145"]);
            if (!isset($dk[0][$bK][0])) {
                goto W2;
            }
            if (is_array($dk[0][$bK])) {
                goto Ln;
            }
            $bK = isset($dk[0][$bK]) ? $dk[0][$bK] : '';
            goto tJ;
            Ln:
            $bK = isset($dk[0][$bK][0]) ? $dk[0][$bK][0] : '';
            tJ:
            W2:
            $lJ = JFactory::getDbo();
            $Da = $lJ->getQuery(true);
            $Ft = array("\165\x73\145\x72\137\x69\144", "\x70\x72\x6f\x66\151\x6c\x65\137\x6b\x65\171", "\x70\x72\157\146\x69\x6c\145\137\166\141\154\x75\x65", "\157\162\144\x65\x72\x69\x6e\147");
            $XY = array($dy, $lJ->quote("\x70\x72\x6f\x66\x69\154\145\56" . $KB), $lJ->quote($bK), ++$Lk);
            $Da->insert($lJ->quoteName("\x23\x5f\137\165\x73\145\162\137\x70\x72\157\146\x69\154\x65\x73"))->columns($lJ->quoteName($Ft))->values(implode("\x2c", $XY));
            $lJ->setQuery($Da);
            $lJ->execute();
            ex:
        }
        vP:
        Pz:
        FW:
        $AX++;
        goto Dk;
        XQ:
    }
    function groupmapping($Me, $s_)
    {
        $YO = MoLdapUtility::mo_ldap_get_details("\x23\137\x5f\x6d\151\156\151\157\x72\x61\156\x67\145\137\144\151\162\x73\x79\x6e\x63\x5f\143\157\156\x66\151\147");
        $da = $YO["\x6c\x64\x61\x70\x5f\x73\145\162\x76\145\x72\137\165\x72\x6c"];
        $da = MoLdapUtility::mo_ldap_decrypt($da);
        $Oe = self::getConnection($da);
        $eF = $YO["\x73\145\x72\166\x69\x63\x65\137\141\x63\143\x6f\x75\x6e\x74\137\x64\x6e"];
        $eF = MoLdapUtility::mo_ldap_decrypt($eF);
        $hd = $YO["\x73\x65\x72\x76\151\x63\x65\137\x61\143\x63\x6f\x75\x6e\164\x5f\x70\141\x73\x73\x77\157\162\144"];
        $hd = MoLdapUtility::mo_ldap_decrypt($hd);
        $mX = $YO["\x73\145\141\162\143\x68\137\x62\141\x73\145"];
        $mX = MoLdapUtility::mo_ldap_decrypt($mX);
        $GF = explode("\73", $mX);
        $OU = $YO["\x73\145\141\x72\x63\150\137\146\151\154\x74\x65\162"];
        $zC = str_replace("\x3f", $Me, $OU);
        $An = null;
        $dk = null;
        $wS = null;
        $iw = MoLdapUtility::mo_ldap_get_details("\x23\137\137\x6d\x69\156\151\x6f\162\x61\x6e\x67\x65\x5f\x6c\x64\141\160\x5f\x72\x6f\x6c\145\x5f\155\141\x70\160\x69\x6e\x67");
        $zl = JFactory::getUser();
        if (!($s_ != 1 || $iw["\x64\151\x73\x61\x62\x6c\145\137\x75\x70\x64\x61\164\x65\x5f\x65\x78\x69\163\164\151\156\x67\137\x75\163\145\x72\163\x5f\162\x6f\154\x65"] != 1)) {
            goto wv;
        }
        $Tb = $iw["\x6d\141\x70\x70\151\x6e\x67\x5f\166\x61\x6c\165\145\137\x64\x65\146\x61\165\x6c\x74"];
        if (isset($zl->groups[8])) {
            goto Dl;
        }
        $VO = 1;
        goto w3;
        Dl:
        $VO = 0;
        w3:
        if (!($iw["\145\156\x61\142\x6c\145\x5f\154\x64\141\x70\137\x72\x6f\154\145\137\x6d\141\160\160\x69\x6e\147"] && $VO)) {
            goto ah;
        }
        JUserHelper::addUserToGroup($zl->id, $Tb);
        if (!($s_ != 1 || $iw["\144\x69\163\141\142\x6c\x65\137\165\160\x64\x61\164\x65\x5f\145\170\x69\x73\164\x69\156\147\x5f\x75\163\x65\162\x73\x5f\x72\x6f\x6c\145"] != 1)) {
            goto r5;
        }
        foreach ($zl->groups as $uJ) {
            if (!($uJ != $Tb && $uJ != "\70")) {
                goto Yp;
            }
            JUserHelper::removeUserFromGroup($zl->id, $uJ);
            Yp:
            Nn:
        }
        n6:
        r5:
        ah:
        wv:
        if (!(($s_ != 1 || $iw["\144\x69\163\x61\142\154\145\x5f\165\x70\144\x61\164\145\x5f\145\x78\x69\x73\x74\151\x6e\x67\137\x75\x73\145\x72\x73\x5f\x72\x6f\154\145"] != 1) && $iw["\145\156\x61\142\154\x65\x5f\154\x64\x61\160\137\x72\157\x6c\145\x5f\155\141\x70\x70\151\156\147"])) {
            goto a7;
        }
        $l6 = @ldap_bind($Oe, $eF, $hd);
        if (!isset($iw["\155\141\160\x70\151\x6e\147\x5f\x6d\145\x6d\142\x65\x72\x6f\x66\137\x61\x74\x74\x72\x69\142\165\x74\x65"])) {
            goto cy;
        }
        $LR = array($iw["\x6d\141\160\160\x69\x6e\x67\137\x6d\x65\x6d\x62\x65\162\x6f\146\x5f\x61\164\164\x72\151\142\x75\164\145"]);
        cy:
        $AX = 0;
        UY:
        if (!($AX < count($GF))) {
            goto F3;
        }
        $An = ldap_search($Oe, $GF[$AX], $zC, $LR);
        $wS = ldap_first_entry($Oe, $An);
        $dk = ldap_get_entries($Oe, $An);
        $ar = $iw["\x72\157\154\145\x5f\x6d\x61\160\x70\x69\x6e\x67\137\x6b\145\x79\137\166\141\154\165\145"];
        $ar = json_decode($ar, true);
        $jM = $iw["\x72\157\x6c\x65\137\155\x61\x70\160\151\x6e\147\x5f\x67\x72\157\x75\x70\166\141\x6c\x75\145"];
        $jM = json_decode($jM, true);
        $NT = 1;
        foreach ($ar as $Ad) {
            if (!in_array($Ad, $dk[0][$LR[0]])) {
                goto gS;
            }
            JUserHelper::addUserToGroup($zl->id, $jM[$NT]);
            gS:
            $NT++;
            gB:
        }
        AH:
        an:
        $AX++;
        goto UY;
        F3:
        a7:
    }
    function get_user_from_joomla($Me)
    {
        $lJ = JFactory::getDBO();
        $Da = $lJ->getQuery(true)->select("\151\144")->from("\43\x5f\x5f\165\163\145\162\163")->where("\x75\163\x65\162\x6e\141\155\145\x3d" . $lJ->quote($Me), "\x4f\122", "\145\x6d\x61\x69\154\75" . $lJ->quote($Me));
        $lJ->setQuery($Da);
        $UI = $lJ->loadObject();
        if ($UI != '') {
            goto O5;
        }
        return 0;
        goto TN;
        O5:
        return $UI->id;
        TN:
    }
    function RegisterCurrentUser($cJ, $IE)
    {
        $KK = JFactory::getApplication();
        $Jq["\156\141\x6d\145"] = isset($cJ) && !empty($cJ) ? $cJ : '';
        $Jq["\165\x73\x65\162\156\141\x6d\x65"] = $IE;
        $Jq["\145\155\141\151\x6c"] = $Jq["\x65\155\x61\x69\154\x31"] = $Jq["\x65\155\x61\x69\x6c\62"] = JStringPunycode::emailToPunycode($IE);
        $Jq["\160\x61\x73\163\x77\157\162\x64"] = $Jq["\160\141\163\163\x77\x6f\x72\x64\x31"] = $Jq["\x70\141\x73\x73\x77\x6f\162\144\x32"] = JUserHelper::genRandomPassword();
        $Jq["\x61\143\164\151\166\141\x74\151\x6f\156"] = "\60";
        $Jq["\142\x6c\157\x63\x6b"] = "\60";
        jimport("\x6a\157\157\x6d\x6c\x61\x2e\x61\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\156\x2e\x63\x6f\155\x70\x6f\156\x65\156\164\x2e\155\x6f\144\x65\154");
        if (defined("\x4a\120\101\x54\110\137\103\117\x4d\120\x4f\116\105\116\x54")) {
            goto rK;
        }
        define("\x4a\x50\101\124\110\x5f\103\x4f\x4d\120\x4f\116\x45\116\x54", JPATH_BASE . "\x2f\x63\x6f\x6d\x70\x6f\156\x65\156\x74\163\57");
        rK:
        $user = new JUser();
        if ($user->bind($Jq)) {
            goto Kd;
        }
        throw new Exception("\x43\x6f\165\154\144\x20\x6e\157\164\x20\x62\151\156\x64\40\x64\x61\x74\141\56\40\x45\x72\x72\157\x72\x3a\x20" . $user->getError());
        Kd:
        if ($user->save()) {
            goto KG;
        }
        echo "\103\x6f\x75\x6c\144\x20\116\x6f\x74\40\x53\x61\166\x65\40\x55\163\x65\162\40\104\x65\164\x61\x69\154\163";
        //exit;
        KG:
        $UI = $this->get_user_from_joomla($IE);
        if (!$UI) {
            goto Gy;
        }
        $user = JUser::getInstance($UI->id);
        $GN = JFactory::getSession();
        $GN->set("\x75\163\x65\x72", $user);
        $KK->checkSession();
        $rp = $GN->getId();
        $this->updateUsernameToSessionId($user->id, $user->username, $rp);
        $user->setLastVisit();
        $KK->redirect(JURI::root() . "\x69\156\144\x65\170\56\x70\x68\x70\x3f");
        Gy:
    }
    function updateCurrentUserName($aS, $cJ)
    {
        if (!empty($cJ)) {
            goto f6;
        }
        return;
        f6:
        $lJ = JFactory::getDbo();
        $Da = $lJ->getQuery(true);
        $ov = array($lJ->quoteName("\x6e\141\155\145") . "\x20\75\x20" . $lJ->quote($cJ));
        $Iz = array($lJ->quoteName("\x69\144") . "\x20\x3d\40" . $lJ->quote($aS));
        $Da->update($lJ->quoteName("\43\137\x5f\x75\163\145\x72\x73"))->set($ov)->where($Iz);
        $lJ->setQuery($Da);
        $YO = $lJ->execute();
    }
    function updateUsernameToSessionId($PB, $xB, $rp)
    {
        $lJ = JFactory::getDbo();
        $Da = $lJ->getQuery(true);
        $ov = array($lJ->quoteName("\165\163\x65\x72\x6e\x61\x6d\145") . "\40\75\x20" . $lJ->quote($xB), $lJ->quoteName("\147\165\x65\x73\x74") . "\40\75\40" . $lJ->quote("\60"), $lJ->quoteName("\165\163\145\162\x69\x64") . "\x20\x3d\x20" . $lJ->quote($PB));
        $Iz = array($lJ->quoteName("\163\x65\x73\163\x69\x6f\x6e\137\x69\x64") . "\x20\75\x20" . $lJ->quote($rp));
        $Da->update($lJ->quoteName("\x23\x5f\x5f\163\x65\163\163\x69\157\x6e"))->set($ov)->where($Iz);
        $lJ->setQuery($Da);
        $YO = $lJ->execute();
    }
    function check_user_in_ad($Me)
    {
        $YO = MoLdapUtility::mo_ldap_get_details("\43\137\137\x6d\x69\156\151\157\162\141\x6e\147\x65\137\x64\x69\162\x73\171\156\143\137\143\157\x6e\146\151\x67");
        $da = $YO["\x6c\144\141\x70\x5f\163\x65\162\166\x65\x72\137\x75\x72\x6c"];
        $da = MoLdapUtility::mo_ldap_decrypt($da);
        $Oe = $this->getConnection($da);
        if (!$Oe) {
            goto Sz;
        }
        $eF = $YO["\x73\145\162\x76\151\143\145\x5f\141\143\143\x6f\x75\156\164\137\x64\156"];
        $eF = MoLdapUtility::mo_ldap_decrypt($eF);
        $hd = $YO["\163\145\162\x76\x69\143\x65\x5f\x61\143\143\x6f\165\x6e\164\137\160\141\163\x73\x77\x6f\x72\x64"];
        $hd = MoLdapUtility::mo_ldap_decrypt($hd);
        $mX = $YO["\x73\x65\x61\162\143\x68\137\x62\141\x73\x65"];
        $mX = MoLdapUtility::mo_ldap_decrypt($mX);
        $GF = explode("\73", $mX);
        $OU = $YO["\x73\145\x61\162\143\x68\137\x66\x69\154\x74\x65\x72"];
        $zC = str_replace("\77", $Me, $OU);
        $An = null;
        $dk = null;
        $wS = null;
        $l6 = @ldap_bind($Oe, $eF, $hd);
        $AX = 0;
        Tm:
        if (!($AX < count($GF))) {
            goto nG;
        }
        if ($An = ldap_search($Oe, $GF[$AX], $zC)) {
            goto Qn;
        }
        return '';
        goto Nw;
        Qn:
        $wS = ldap_first_entry($Oe, $An);
        $dk = ldap_get_entries($Oe, $An);
        if ($wS) {
            goto Nu;
        }
        return '';
        goto JK;
        Nu:
        return $dk[0][$YO["\165\x73\145\162\x6e\141\x6d\145"]][0];
        JK:
        Nw:
        rA:
        $AX++;
        goto Tm;
        nG:
        Sz:
    }
    public function getConnection($da)
    {
        $Oe = ldap_connect($da);
        if (!(version_compare(PHP_VERSION, "\65\x2e\63\56\60") >= 0)) {
            goto j3;
        }
        ldap_set_option($Oe, LDAP_OPT_NETWORK_TIMEOUT, 5);
        j3:
        ldap_set_option($Oe, LDAP_OPT_PROTOCOL_VERSION, 3);
        ldap_set_option($Oe, LDAP_OPT_REFERRALS, 0);
        return $Oe;
    }
    public static function selectMaxOrdering($dy)
    {
        $lJ = JFactory::getDbo();
        $Da = $lJ->getQuery(true);
        $Da->select("\115\x41\130\50\157\x72\x64\145\x72\151\156\147\x29");
        $Da->from($lJ->quoteName("\43\137\x5f\165\163\x65\x72\137\160\162\x6f\146\x69\154\145\163"));
        $Da->where($lJ->quoteName("\165\163\145\x72\x5f\151\x64") . "\x20\75\x20" . $lJ->quote($dy));
        $lJ->setQuery($Da);
        $X4 = $lJ->loadResult();
    }
}

Function Calls

None

Variables

None

Stats

MD5 0f4b07414c000a64fb2909b6c5c49905
Eval Count 0
Decode Time 60 ms