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; }
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; }
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; }