Esempio n. 1
0
function check_login($ID, $passwd, $iRole = BX_DOL_ROLE_MEMBER, $error_handle = true)
{
    $ID = (int) $ID;
    if (!$ID) {
        if ($error_handle) {
            login_form(_t("_PROFILE_ERR"), $member);
        }
        return false;
    }
    switch ($iRole) {
        case BX_DOL_ROLE_MEMBER:
            $member = 0;
            break;
        case BX_DOL_ROLE_ADMIN:
            $member = 1;
            break;
    }
    $aProfile = getProfileInfo($ID);
    // If no such members
    if (!$aProfile) {
        if ($error_handle) {
            login_form(_t("_PROFILE_ERR"), $member);
        }
        return false;
    }
    // If password is incorrect
    if (strcmp($aProfile['Password'], $passwd) != 0) {
        if ($error_handle) {
            login_form(_t("_INVALID_PASSWD"), $member);
        }
        return false;
    }
    if (!((int) $aProfile['Role'] & $iRole)) {
        if ($error_handle) {
            login_form(_t("_INVALID_ROLE"), $member);
        }
        return false;
    }
    if ((int) $aProfile['Role'] & BX_DOL_ROLE_ADMIN || (int) $aProfile['Role'] & BX_DOL_ROLE_MODERATOR) {
        if ('on' != getParam('ext_nav_menu_enabled')) {
            update_date_lastnav($ID);
        }
        return true;
    }
    // if IP is banned
    if (2 == getParam('ipBlacklistMode') && bx_is_ip_blocked() || 'on' == getParam('sys_dnsbl_enable') && 'block' == getParam('sys_dnsbl_behaviour') && bx_is_ip_dns_blacklisted('', 'login')) {
        if ($error_handle) {
            $GLOBALS['_page']['name_index'] = 55;
            $GLOBALS['_page']['css_name'] = '';
            $GLOBALS['_ni'] = $GLOBALS['_page']['name_index'];
            $GLOBALS['_page_cont'][$GLOBALS['_ni']]['page_main_code'] = MsgBox(_t('_Sorry, your IP been banned'));
            PageCode();
        }
        return false;
    }
    // if profile is banned
    if (isLoggedBanned($aProfile['ID'])) {
        if ($error_handle) {
            $GLOBALS['_page']['name_index'] = 55;
            $GLOBALS['_page']['css_name'] = '';
            $GLOBALS['_ni'] = $GLOBALS['_page']['name_index'];
            $GLOBALS['_page_cont'][$GLOBALS['_ni']]['page_main_code'] = MsgBox(_t('_member_banned'));
            PageCode();
        }
        return false;
    }
    if ('on' != getParam('ext_nav_menu_enabled')) {
        update_date_lastnav($ID);
    }
    return true;
}
             }
             break;
         }
         if ($sSubMenuCode) {
             header("Content-Type: text/html; charset=utf-8");
             $sOutputHtml = $oMemberMenu->getSubMenuContent($iMemberId, $sSubMenuCode, $aLinkedItems);
         }
     }
     break;
 case 'get_bubbles_values':
     $sBubbles = isset($_GET['bubbles']) ? $_GET['bubbles'] : null;
     if ($sBubbles && $iMemberId) {
         $aMemberInfo = getProfileInfo($iMemberId);
         if ($aMemberInfo['UserStatus'] != 'offline') {
             // update the date of last navigate;
             update_date_lastnav($iMemberId);
         }
         $aBubbles = array();
         $aBubblesItems = explode(',', $sBubbles);
         if ($aBubblesItems && is_array($aBubblesItems)) {
             $bClearCache = false;
             foreach ($aBubblesItems as $sValue) {
                 $aItem = explode(':', $sValue);
                 $sBubbleCode = null;
                 foreach ($aMenuStructure as $sKey => $aItems) {
                     foreach ($aItems as $iKey => $aSubItems) {
                         if ($aSubItems['Name'] == $aItem[0]) {
                             $sBubbleCode = $aSubItems['Bubble'];
                             break;
                         }
                     }