Ejemplo n.º 1
0
function forum_check_access_level()
{
    $forum_access_ignore_files_preg = implode("|^", array_map('preg_quote_callback', get_forum_access_ignore_files()));
    if (preg_match("/^{$forum_access_ignore_files_preg}/u", basename($_SERVER['PHP_SELF'])) > 0) {
        return true;
    }
    if (!($db = db::get())) {
        return false;
    }
    if (!($table_prefix = get_table_prefix())) {
        return false;
    }
    if (!($forum_fid = get_forum_fid())) {
        return false;
    }
    if (!isset($_SESSION['UID']) || !is_numeric($_SESSION['UID'])) {
        return false;
    }
    $sql = "SELECT FORUMS.FID, FORUMS.ACCESS_LEVEL, USER_FORUM.ALLOWED FROM FORUMS ";
    $sql .= "LEFT JOIN USER_FORUM ON (USER_FORUM.FID = FORUMS.FID ";
    $sql .= "AND USER_FORUM.UID = '{$_SESSION['UID']}') WHERE FORUMS.FID = '{$forum_fid}' ";
    $sql .= "AND FORUMS.ACCESS_LEVEL < 3";
    if (!($result = $db->query($sql))) {
        return false;
    }
    if ($result->num_rows == 0) {
        return false;
    }
    if (!($forum_data = $result->fetch_assoc())) {
        return false;
    }
    if (!isset($forum_data['ACCESS_LEVEL'])) {
        return true;
    }
    if ($forum_data['ACCESS_LEVEL'] == FORUM_CLOSED) {
        forum_closed_message();
    } else {
        if ($forum_data['ACCESS_LEVEL'] == FORUM_RESTRICTED && $forum_data['ALLOWED'] != FORUM_USER_ALLOWED) {
            forum_restricted_message();
        } else {
            if ($forum_data['ACCESS_LEVEL'] == FORUM_PASSWD_PROTECTED) {
                forum_check_password($forum_data['FID']);
            }
        }
    }
    return true;
}
Ejemplo n.º 2
0
function forum_check_access_level()
{
    $result = forum_check_access_level_ignore();
    if (!($db = db::get())) {
        return $result;
    }
    if (!($table_prefix = get_table_prefix())) {
        return $result;
    }
    if (!($forum_fid = get_forum_fid())) {
        return $result;
    }
    $uid = session::get_value('UID');
    $sql = "SELECT FORUMS.FID, FORUMS.ACCESS_LEVEL, USER_FORUM.ALLOWED FROM FORUMS ";
    $sql .= "LEFT JOIN USER_FORUM ON (USER_FORUM.FID = FORUMS.FID ";
    $sql .= "AND USER_FORUM.UID = '{$uid}') WHERE FORUMS.FID = '{$forum_fid}' ";
    $sql .= "AND FORUMS.ACCESS_LEVEL < 3";
    if (!($result = $db->query($sql))) {
        return $result;
    }
    if ($result->num_rows == 0) {
        return $result;
    }
    if (!($forum_data = $result->fetch_assoc())) {
        return $result;
    }
    if (!isset($forum_data['ACCESS_LEVEL'])) {
        return true;
    }
    if ($forum_data['ACCESS_LEVEL'] == FORUM_CLOSED) {
        return forum_closed_message();
    } else {
        if ($forum_data['ACCESS_LEVEL'] == FORUM_RESTRICTED && $forum_data['ALLOWED'] != FORUM_USER_ALLOWED) {
            return forum_restricted_message();
        } else {
            if ($forum_data['ACCESS_LEVEL'] == FORUM_PASSWD_PROTECTED) {
                return forum_check_password($forum_data['FID']);
            }
        }
    }
    return true;
}
Ejemplo n.º 3
0
function forum_check_access_level()
{
    static $forum_data = false;
    if (!($db_forum_check_access_level = db_connect())) {
        return false;
    }
    if (($uid = bh_session_get_value('UID')) === false) {
        return false;
    }
    if (!($table_data = get_table_prefix())) {
        return true;
    }
    $forum_fid = $table_data['FID'];
    if (!is_array($forum_data) || !isset($forum_data['ACCESS_LEVEL']) || !isset($forum_data['ALLOWED'])) {
        $sql = "SELECT FORUMS.FID, FORUMS.ACCESS_LEVEL, USER_FORUM.ALLOWED FROM FORUMS ";
        $sql .= "LEFT JOIN USER_FORUM ON (USER_FORUM.FID = FORUMS.FID ";
        $sql .= "AND USER_FORUM.UID = '{$uid}') WHERE FORUMS.FID = '{$forum_fid}'";
        if (!($result = db_query($sql, $db_forum_check_access_level))) {
            return false;
        }
        if (db_num_rows($result) > 0) {
            $forum_data = db_fetch_array($result);
        }
    }
    if (isset($forum_data['ACCESS_LEVEL'])) {
        if ($forum_data['ACCESS_LEVEL'] < FORUM_UNRESTRICTED) {
            return forum_closed_message();
        } elseif ($forum_data['ACCESS_LEVEL'] == FORUM_RESTRICTED && $forum_data['ALLOWED'] != FORUM_USER_ALLOWED) {
            return forum_restricted_message();
        } elseif ($forum_data['ACCESS_LEVEL'] == FORUM_PASSWD_PROTECTED) {
            return forum_check_password($forum_data['FID']);
        }
    }
    return true;
}