Пример #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;
}
Пример #2
0
function forum_check_access_level_ignore()
{
    $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;
    }
    return false;
}
Пример #3
0
 public static function user_approved()
 {
     $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 (!session::logged_in()) {
         return true;
     }
     if (session::check_perm(USER_PERM_ADMIN_TOOLS, 0)) {
         return true;
     }
     if (forum_get_setting('require_user_approval', 'Y')) {
         return isset($_SESSION['APPROVED']) && $_SESSION['APPROVED'] > 0;
     }
     return true;
 }