AUTH_VIEW,
"auth_read" => AUTH_READ,
"auth_post" => AUTH_POST,
"auth_reply" => AUTH_REPLY,
"auth_edit" => AUTH_EDIT,
"auth_delete" => AUTH_DELETE,
"auth_vote" => AUTH_VOTE,
"auth_votecreate" => AUTH_VOTECREATE,
"auth_attachments" => AUTH_ATTACH
);
$forum_auth_fields = array("auth_view", "auth_read", "auth_post", "auth_reply", "auth_edit", "auth_delete", "auth_votecreate", "auth_vote", "auth_attachments");
?>
phpBB - auth testing
User Authorisation Control
sql_query($sql);
$forum_fields = $db->sql_fetchrow($f_result);
$sql = "SELECT aa.*, g.group_name, u.user_id, u.username, u.user_level, f.forum_name
FROM ".AUTH_ACCESS_TABLE." aa, ".GROUPS_TABLE." g, ".USER_GROUP_TABLE." ug, ".USERS_TABLE." u, ".FORUMS_TABLE." f
WHERE f.forum_id = $forum_id
AND aa.forum_id = f.forum_id
AND ug.group_id = aa.group_id
AND g.group_id = ug.group_id
AND u.user_id = ug.user_id
ORDER BY u.user_id, aa.group_id";
$aa_result = $db->sql_query($sql);
$user_list = $db->sql_fetchrowset($aa_result);
for($i = 0; $i < count($user_list); $i++)
{
$user_id = $user_list[$i]['user_id'];
$userinfo[$user_id]['username'] = $user_list[$i]['username'];
$is_admin = ($user_list[$i]['user_level'] == ADMIN) ? 1 : 0;
for($j = 0; $j < count($forum_field_name); $j++)
{
$this_field = $forum_field_name[$j];
$is_auth[$this_field][$user_id] = auth_check_user($forum_fields[$this_field], $this_field, $user_list[$i], $is_admin);
}
}
echo "Forum: ".$forum_fields['forum_name']."
\n";
?>
Forum Auth Field |
Users with Access |
\n";
}
?>
sql_query($sql);
$f_access = $db->sql_fetchrowset($af_result);
$sql = "SELECT user_id, username, user_level
FROM " . USERS_TABLE . "
WHERE user_id = $user_id";
$u_result = $db->sql_query($sql);
$userinf = $db->sql_fetchrow($u_result);
$sql = "SELECT aa.forum_id, aa.auth_view, aa.auth_read, aa.auth_post, aa.auth_reply, aa.auth_edit, aa.auth_delete, aa.auth_votecreate, aa.auth_vote, aa.auth_attachments, aa.auth_mod, g.group_single_user
FROM " . AUTH_ACCESS_TABLE . " aa, " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE. " g
WHERE ug.user_id = $user_id
AND g.group_id = ug.group_id
AND aa.group_id = ug.group_id";
$au_result = $db->sql_query($sql);
$num_u_access = $db->sql_numrows($au_result);
if($num_u_access)
{
$u_access = $db->sql_fetchrowset($au_result);
}
$is_admin = ($userinf['user_level'] == ADMIN) ? 1 : 0;
for($i = 0; $i < count($f_access); $i++)
{
$f_forum_id = $f_access[$i]['forum_id'];
$is_forum_restricted[$f_forum_id] = 0;
for($j = 0; $j < count($forum_auth_fields); $j++)
{
$key = $forum_auth_fields[$j];
$value = $f_access[$i][$key];
if($user_id == ANONYMOUS)
{
$auth_user[$f_forum_id][$key] = ($value == AUTH_ALL) ? 1 : 0;
if($value == AUTH_ACL || $value == AUTH_MOD || $value == AUTH_ADMIN)
{
$is_forum_restricted[$f_forum_id] = 1;
}
}
else if(!$num_u_access)
{
$auth_user[$f_forum_id][$key] = ($value == AUTH_ALL || $value == AUTH_REG) ? 1 : 0;
if($value == AUTH_ACL || $value == AUTH_MOD || $value == AUTH_ADMIN)
{
$is_forum_restricted[$f_forum_id] = 1;
}
}
else
{
switch($value)
{
case AUTH_ALL:
$auth_user[$f_forum_id][$key] = 1;
break;
case AUTH_REG:
$auth_user[$f_forum_id][$key] = 1;
break;
case AUTH_ACL:
$auth_user[$f_forum_id][$key] = auth_check_user(AUTH_ACL, $key, $u_access, $is_admin);
$is_forum_restricted[$f_forum_id] = 1;
break;
case AUTH_MOD:
$auth_user[$f_forum_id][$key] = auth_check_user(AUTH_MOD, $key, $u_access, $is_admin);
$is_forum_restricted[$f_forum_id] = 1;
break;
case AUTH_ADMIN:
$auth_user[$f_forum_id][$key] = $is_admin;
$is_forum_restricted[$f_forum_id] = 1;
break;
default:
$auth_user[$f_forum_id][$key] = 0;
break;
}
}
}
//
// Is user a moderator?
//
$auth_user[$f_forum_id]['auth_mod'] = auth_check_user(AUTH_MOD, 'auth_mod', $u_access, $is_admin);
}
?>
Restricted forums
Forum Name |
".preg_replace("/auth_/", "", $forum_auth_fields[$j])."\n";
}
echo "\tModerator | \n";
echo "
\n";
$i = 0;
while(list($forumkey, $user_ary) = each($auth_user))
{
if($is_forum_restricted[$forumkey])
{
echo "\n";
echo "\t".$f_access[$i]['forum_name']." | \n";
while(list($fieldkey, $value) = each($user_ary))
{
$can_they = ($auth_user[$forumkey][$fieldkey]) ? "Yes" : "No";
echo "\t$can_they | \n";
}
echo "
\n";
}
$i++;
}
reset($auth_user);
?>
Forums with general (public or registered) access
The following forums are set to be generally accessible to most users, either everyone or just registered users. To limit these forums (or certain fields) to specific users you need to change the forum authorisation type via the Forum Authorisation Admin panel.
Forum Name |
".preg_replace("/auth_/", "", $forum_auth_fields[$j])."\n";
}
echo "\tModerator | \n";
echo "
\n";
$i = 0;
while(list($forumkey, $user_ary) = each($auth_user))
{
if(!$is_forum_restricted[$forumkey])
{
echo "\n";
echo "\t".$f_access[$i]['forum_name']." | \n";
while(list($fieldkey, $value) = each($user_ary))
{
$can_they = ($auth_user[$forumkey][$fieldkey]) ? "Yes" : "No";
echo "\t$can_they | \n";
}
echo "
\n";
}
$i++;
}
reset($auth_user);
?>
sql_query($sql);
$user_list = $db->sql_fetchrowset($u_result);
?>
Forum Authorisation Admin
Powered By phpBB 2.0
Copyright © 2001 phpBB Group, All Rights Reserved