1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-05-05 23:25:30 +02:00

Add a login redirect for users not logged in who attempt to visit restricted forums ... also shows a forum/post doesn't exist for hidden forums/topics/posts if user is logged in but not authed to view them

git-svn-id: file:///svn/phpbb/trunk@2079 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
Paul S. Owen 2002-02-11 02:16:28 +00:00
parent bd6bd36d48
commit 67d9802335
2 changed files with 28 additions and 21 deletions

View File

@ -77,11 +77,10 @@ else
// If the query doesn't return any rows this isn't a valid forum. Inform
// the user.
//
if( !$total_rows = $db->sql_numrows($result) )
if( !($forum_row = $db->sql_fetchrow($result)) )
{
message_die(GENERAL_MESSAGE, 'Forum_not_exist');
}
$forum_row = $db->sql_fetchrow($result);
//
// Start session management
@ -100,10 +99,15 @@ $is_auth = auth(AUTH_ALL, $forum_id, $userdata, $forum_row);
if( !$is_auth['auth_read'] || !$is_auth['auth_view'] )
{
if ( !$userdata['session_logged_in'] )
{
$redirect = POST_FORUM_URL . "=$forum_id" . ( ( isset($start) ) ? "&start=$start" : "" );
header("Location: " . append_sid("posting.$phpEx?redirect=viewforum.$phpEx&$redirect", true));
}
//
// The user is not authed to read this forum ...
//
$message = sprintf($lang['Sorry_auth_read'], $is_auth['auth_read_type']);
$message = ( !$is_auth['auth_view'] ) ? $lang['Forum_not_exist'] : sprintf($lang['Sorry_auth_read'], $is_auth['auth_read_type']);
message_die(GENERAL_MESSAGE, $message);
}

View File

@ -160,16 +160,15 @@ $sql = "SELECT t.topic_id, t.topic_title, t.topic_status, t.topic_replies, t.top
WHERE $join_sql
AND f.forum_id = t.forum_id
$order_sql";
if( !$result = $db->sql_query($sql) )
if( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, "Couldn't obtain topic information", "", __LINE__, __FILE__, $sql);
}
if( !$total_rows = $db->sql_numrows($result) )
if( !($forum_row = $db->sql_fetchrow($result)) )
{
message_die(GENERAL_MESSAGE, 'Topic_post_not_exist', "", __LINE__, __FILE__, $sql);
message_die(GENERAL_MESSAGE, 'Topic_post_not_exist');
}
$forum_row = $db->sql_fetchrow($result);
$forum_id = $forum_row['forum_id'];
@ -182,16 +181,6 @@ init_userprefs($userdata);
// End session management
//
$forum_name = $forum_row['forum_name'];
$topic_title = $forum_row['topic_title'];
$topic_id = $forum_row['topic_id'];
$topic_time = $forum_row['topic_time'];
if(!empty($post_id))
{
$start = floor(($forum_row['prev_posts'] - 1) / $board_config['posts_per_page']) * $board_config['posts_per_page'];
}
//
// Start auth check
//
@ -200,10 +189,14 @@ $is_auth = auth(AUTH_ALL, $forum_id, $userdata, $forum_row);
if( !$is_auth['auth_view'] || !$is_auth['auth_read'] )
{
//
// The user is not authed to read this forum ...
//
$message = sprintf($lang['Sorry_auth_read'], $is_auth['auth_read_type']);
if ( !$userdata['session_logged_in'] )
{
$redirect = ( isset($post_id) ) ? POST_POST_URL . "=$post_id" : POST_TOPIC_URL . "=$topic_id";
$redirect .= ( isset($start) ) ? "&start=$start" : "";
header("Location: " . append_sid("posting.$phpEx?redirect=viewtopic.$phpEx&$redirect", true));
}
$message = ( !$is_auth['auth_view'] ) ? $lang['Topic_post_not_exist'] : sprintf($lang['Sorry_auth_read'], $is_auth['auth_read_type']);
message_die(GENERAL_MESSAGE, $message);
}
@ -211,6 +204,16 @@ if( !$is_auth['auth_view'] || !$is_auth['auth_read'] )
// End auth check
//
$forum_name = $forum_row['forum_name'];
$topic_title = $forum_row['topic_title'];
$topic_id = $forum_row['topic_id'];
$topic_time = $forum_row['topic_time'];
if ( !empty($post_id) )
{
$start = floor(($forum_row['prev_posts'] - 1) / $board_config['posts_per_page']) * $board_config['posts_per_page'];
}
//
// Is user watching this thread? This could potentially
// be combined into the above query but the LEFT JOIN causes