mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-10 21:38:54 +00:00
404 lines
No EOL
12 KiB
PHP
404 lines
No EOL
12 KiB
PHP
<?php
|
|
/***************************************************************************
|
|
* admin_permissions.php
|
|
* -------------------
|
|
* begin : Saturday, Feb 13, 2001
|
|
* copyright : (C) 2001 The phpBB Group
|
|
* email : support@phpbb.com
|
|
*
|
|
* $Id$
|
|
*
|
|
***************************************************************************/
|
|
|
|
/***************************************************************************
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
***************************************************************************/
|
|
|
|
if ( !empty($setmodules) )
|
|
{
|
|
if ( !$acl->get_acl_admin('auth') )
|
|
{
|
|
return;
|
|
}
|
|
|
|
$filename = basename(__FILE__);
|
|
$module['Forums']['Permissions'] = $filename . $SID . '&mode=forums';
|
|
$module['Forums']['Moderators'] = $filename . $SID . '&mode=moderators';
|
|
$module['General']['Administrators'] = $filename . $SID . '&mode=administrators';
|
|
|
|
return;
|
|
}
|
|
|
|
define('IN_PHPBB', 1);
|
|
//
|
|
// Include files
|
|
//
|
|
$phpbb_root_path = '../';
|
|
require($phpbb_root_path . 'extension.inc');
|
|
require('pagestart.' . $phpEx);
|
|
|
|
//
|
|
// Do we have forum admin permissions?
|
|
//
|
|
if ( !$acl->get_acl_admin('auth') )
|
|
{
|
|
message_die(MESSAGE, $lang['No_admin']);
|
|
}
|
|
|
|
//
|
|
// Define some vars
|
|
//
|
|
if ( isset($HTTP_GET_VARS['f']) || isset($HTTP_POST_VARS['f']) )
|
|
{
|
|
$forum_id = ( isset($HTTP_POST_VARS['f']) ) ? intval($HTTP_POST_VARS['f']) : intval($HTTP_GET_VARS['f']);
|
|
$forum_sql = " WHERE forum_id = $forum_id";
|
|
}
|
|
else
|
|
{
|
|
unset($forum_id);
|
|
$forum_sql = '';
|
|
}
|
|
|
|
$mode = ( isset($HTTP_GET_VARS['mode']) ) ? $HTTP_GET_VARS['mode'] : $HTTP_POST_VARS['mode'];
|
|
|
|
//
|
|
// Start program proper
|
|
//
|
|
switch ( $mode )
|
|
{
|
|
case 'forums':
|
|
$l_title = $lang['Permissions'];
|
|
$l_title_explain = $lang['Permissions_explain'];
|
|
break;
|
|
case 'moderators':
|
|
$l_title = $lang['Moderators'];
|
|
$l_title_explain = $lang['Moderators_explain'];
|
|
break;
|
|
case 'administrators':
|
|
$l_title = $lang['Administrators'];
|
|
$l_title_explain = $lang['Administrators_explain'];
|
|
break;
|
|
}
|
|
|
|
//
|
|
// Get required information, either all forums if
|
|
// no id was specified or just the requsted if it
|
|
// was
|
|
//
|
|
if ( !empty($forum_id) || $mode == 'administrators' )
|
|
{
|
|
//
|
|
// Clear some vars, grab some info if relevant ...
|
|
//
|
|
$s_hidden_fields = '';
|
|
if ( !empty($forum_id) )
|
|
{
|
|
$sql = "SELECT forum_name
|
|
FROM " . FORUMS_TABLE . "
|
|
WHERE forum_id = $forum_id";
|
|
$result = $db->sql_query($sql);
|
|
|
|
$forum_info = $db->sql_fetchrow($result);
|
|
|
|
$l_title .= ' : <i>' . $forum_info['forum_name'] . '</i>';
|
|
$s_hidden_fields = '<input type="hidden" name="f" value="' . $forum_id .'" />';
|
|
}
|
|
|
|
//
|
|
// Generate header
|
|
//
|
|
page_header($lang['Forums']);
|
|
|
|
?>
|
|
|
|
<h1><?php echo $l_title; ?></h1>
|
|
|
|
<p><?php echo $l_title_explain; ?></p>
|
|
|
|
<?php
|
|
|
|
switch ( $mode )
|
|
{
|
|
case 'forums':
|
|
|
|
?>
|
|
|
|
<form method="post" action="<?php echo "admin_permissions.$phpEx$SID&mode=$mode"; ?>"><table width="50%" class="bg" cellspacing="1" cellpadding="4" border="0" align="center">
|
|
<tr>
|
|
<th><?php echo $lang['Allowed_users']; ?></th>
|
|
</tr>
|
|
<tr>
|
|
<td class="row1" align="center"><select name="user_allowed" multiple="multiple" size="4"><?php echo $user_allowed_options; ?></select><br />[ <a href=""><?php echo $lang['Advanced']; ?></a> ]</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="cat" align="center"><input class="liteoption" type="submit" name="adduser" value="Add New User" /> <input class="liteoption" type="submit" name="deluser" value="Remove User" /></td>
|
|
</tr>
|
|
</table>
|
|
|
|
<br clear="all" />
|
|
|
|
<table class="bg" width="50%" cellspacing="1" cellpadding="4" border="0" align="center">
|
|
<tr>
|
|
<th><?php echo $lang['Disallowed_users']; ?></th>
|
|
</tr>
|
|
<tr>
|
|
<td class="row2" align="center"><select name="user_disallowed" multiple="multiple" size="4"><?php echo $user_allowed_options; ?></select><br />[ <a href=""><?php echo $lang['Advanced']; ?></a> ]</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="cat" align="center"><input class="liteoption" type="submit" name="adduser" value="Add New User" /> <input class="liteoption" type="submit" name="deluser" value="Remove User" /></td>
|
|
</tr>
|
|
</table>
|
|
|
|
<br clear="all" />
|
|
|
|
<table class="bg" width="50%" cellspacing="1" cellpadding="4" border="0" align="center">
|
|
<tr>
|
|
<th><?php echo $lang['Allowed_groups']; ?></th>
|
|
</tr>
|
|
<tr>
|
|
<td class="row1" align="center"><select name="group_allowed" multiple="multiple" size="4"><?php echo $group_allowed_options; ?></select><br />[ <a href=""><?php echo $lang['Advanced']; ?></a> ]</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="cat" align="center"><input class="liteoption" type="submit" name="addgroup" value="Add New Group" /> <input class="liteoption" type="submit" name="delgroup" value="Remove Group" /></td>
|
|
</tr>
|
|
</table>
|
|
|
|
<br clear="all" />
|
|
|
|
<table class="bg" width="50%" cellspacing="1" cellpadding="4" border="0" align="center">
|
|
<tr>
|
|
<th><?php echo $lang['Disallowed_groups']; ?></th>
|
|
</tr>
|
|
<tr>
|
|
<td class="row2" align="center"><select name="group_disallowed" multiple="multiple" size="4"><?php echo $group_disallowed_options; ?></select><br />[ <a href=""><?php echo $lang['Advanced']; ?></a> ]</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="cat" align="center"><input class="liteoption" type="submit" name="addgroup" value="Add New Group" /> <input class="liteoption" type="submit" name="delgroup" value="Remove Group" /></td>
|
|
</tr>
|
|
</table>
|
|
|
|
<?php
|
|
break;
|
|
|
|
case 'moderators':
|
|
$sql = "SELECT auth_option
|
|
FROM " . ACL_OPTIONS_TABLE . "
|
|
WHERE auth_type LIKE 'mod'";
|
|
$result = $db->sql_query($sql);
|
|
|
|
$auth_options = array();
|
|
while ( $row = $db->sql_fetchrow($result) )
|
|
{
|
|
$auth_options[] = $row;
|
|
}
|
|
|
|
$sql = "SELECT u.user_id, u.username, ao.auth_option
|
|
FROM " . USERS_TABLE . " u, " . ACL_USERS_TABLE . " au, " . ACL_OPTIONS_TABLE . " ao
|
|
WHERE ao.auth_type LIKE 'mod'
|
|
AND au.auth_option_id = ao.auth_option_id
|
|
AND au.forum_id = $forum_id
|
|
AND u.user_id = au.user_id
|
|
ORDER BY u.username, u.user_regdate ASC";
|
|
$result = $db->sql_query($sql);
|
|
|
|
$auth_users = array();
|
|
while ( $row = $db->sql_fetchrow($result) )
|
|
{
|
|
$auth_users[$row['auth_option']] .= '<option value="' . $row['user_id'] . '">' . $row['username'] . '</option>';
|
|
}
|
|
|
|
$sql = "SELECT g.group_id, g.group_name, ao.auth_option
|
|
FROM " . GROUPS_TABLE . " g, " . ACL_GROUPS_TABLE . " ag, " . ACL_OPTIONS_TABLE . " ao
|
|
WHERE ao.auth_type LIKE 'mod'
|
|
AND ag.auth_option_id = ao.auth_option_id
|
|
AND ag.forum_id = $forum_id
|
|
AND g.group_id = ag.group_id
|
|
ORDER BY g.group_name ASC";
|
|
$result = $db->sql_query($sql);
|
|
|
|
$auth_groups = array();
|
|
while ( $row = $db->sql_fetchrow($result) )
|
|
{
|
|
$auth_groups[$row['auth_option']] .= '<option value="' . $row['group_id'] . '">' . $row['group_name'] . '</option>';
|
|
}
|
|
|
|
?>
|
|
|
|
<table class="bg" cellspacing="1" cellpadding="4" border="0" align="center">
|
|
<tr>
|
|
<th>Setting</th>
|
|
<th>Users</th>
|
|
<th>Groups</th>
|
|
</tr>
|
|
<?php
|
|
for($i = 0; $i < sizeof($auth_options); $i++)
|
|
{
|
|
$cell_bg = ( $cell_bg == 'row1' ) ? 'row2' : 'row1';
|
|
|
|
?>
|
|
<tr>
|
|
<td class="<?php echo $cell_bg; ?>" align="center"><?php echo $auth_options[$i]['auth_option']; ?></td>
|
|
<td class="<?php echo $cell_bg; ?>" align="center"><select name="option[<?php echo $auth_options[$i]['auth_option']; ?>]" multiple="multiple"><?php echo $auth_users[$auth_options[$i]['auth_option']]; ?></select></td>
|
|
<td class="<?php echo $cell_bg; ?>" align="center"><select name="option[<?php echo $auth_options[$i]['auth_option']; ?>]" multiple="multiple"><?php echo $auth_groups[$auth_options[$i]['auth_option']]; ?></select></td>
|
|
</tr>
|
|
|
|
<?php
|
|
}
|
|
|
|
?>
|
|
</table>
|
|
|
|
<?php
|
|
break;
|
|
|
|
case 'administrators':
|
|
$sql = "SELECT auth_option
|
|
FROM " . ACL_OPTIONS_TABLE . "
|
|
WHERE auth_type LIKE 'admin'";
|
|
$result = $db->sql_query($sql);
|
|
|
|
$auth_options = array();
|
|
while ( $row = $db->sql_fetchrow($result) )
|
|
{
|
|
$auth_options[] = $row;
|
|
}
|
|
|
|
$sql = "SELECT u.user_id, u.username, ao.auth_option
|
|
FROM " . USERS_TABLE . " u, " . ACL_USERS_TABLE . " au, " . ACL_OPTIONS_TABLE . " ao
|
|
WHERE ao.auth_type LIKE 'admin'
|
|
AND au.auth_option_id = ao.auth_option_id
|
|
AND u.user_id = au.user_id
|
|
ORDER BY u.username, u.user_regdate ASC";
|
|
$result = $db->sql_query($sql);
|
|
|
|
$auth_users = array();
|
|
while ( $row = $db->sql_fetchrow($result) )
|
|
{
|
|
$auth_users[$row['auth_option']] .= '<option value="' . $row['user_id'] . '">' . $row['username'] . '</option>';
|
|
}
|
|
|
|
$sql = "SELECT g.group_id, g.group_name, ao.auth_option
|
|
FROM " . GROUPS_TABLE . " g, " . ACL_GROUPS_TABLE . " ag, " . ACL_OPTIONS_TABLE . " ao
|
|
WHERE ao.auth_type LIKE 'admin'
|
|
AND ag.auth_option_id = ao.auth_option_id
|
|
AND g.group_id = ag.group_id
|
|
ORDER BY g.group_name ASC";
|
|
$result = $db->sql_query($sql);
|
|
|
|
$auth_groups = array();
|
|
while ( $row = $db->sql_fetchrow($result) )
|
|
{
|
|
$auth_groups[$row['auth_option']] .= '<option value="' . $row['group_id'] . '">' . ( ( $row['group_name'] == 'ADMINISTRATORS' ) ? $lang['Admin_group'] : $row['group_name'] ) . '</option>';
|
|
}
|
|
|
|
?>
|
|
|
|
<table class="bg" cellspacing="1" cellpadding="4" border="0" align="center">
|
|
<tr>
|
|
<th>Setting</th>
|
|
<th>Users</th>
|
|
</tr>
|
|
<?php
|
|
for($i = 0; $i < sizeof($auth_options); $i++)
|
|
{
|
|
$cell_bg = ( $cell_bg == 'row1' ) ? 'row2' : 'row1';
|
|
|
|
$l_can_cell = ( !empty($lang['acl_admin_' . $auth_options[$i]['auth_option']]) ) ? $lang['acl_admin_' . $auth_options[$i]['auth_option']] : $auth_options[$i]['auth_option'];
|
|
|
|
?>
|
|
<tr>
|
|
<td class="<?php echo $cell_bg; ?>"><?php echo $l_can_cell; ?></td>
|
|
<td class="<?php echo $cell_bg; ?>" align="center"><?php if ( !empty($auth_users[$auth_options[$i]['auth_option']]) ) { ?><select name="user_option[<?php echo $auth_options[$i]['auth_option']; ?>]" multiple="multiple"><?php echo $auth_users[$auth_options[$i]['auth_option']]; ?></select><?php } else { ?> <?php } ?></td>
|
|
</tr>
|
|
<?php
|
|
}
|
|
|
|
?>
|
|
<tr>
|
|
<td class="cat" colspan="2" align="center"><input class="liteoption" type="submit" name="adduser" value="Add New User" /> <input class="liteoption" type="submit" name="deluser" value="Remove User" /></td>
|
|
</tr>
|
|
</table>
|
|
|
|
<br clear="all" />
|
|
|
|
<table class="bg" cellspacing="1" cellpadding="4" border="0" align="center">
|
|
<tr>
|
|
<th>Setting</th>
|
|
<th>Groups</th>
|
|
</tr>
|
|
<?php
|
|
for($i = 0; $i < sizeof($auth_options); $i++)
|
|
{
|
|
$cell_bg = ( $cell_bg == 'row1' ) ? 'row2' : 'row1';
|
|
|
|
$l_can_cell = ( !empty($lang['acl_admin_' . $auth_options[$i]['auth_option']]) ) ? $lang['acl_admin_' . $auth_options[$i]['auth_option']] : $auth_options[$i]['auth_option'];
|
|
|
|
?>
|
|
<tr>
|
|
<td class="<?php echo $cell_bg; ?>"><?php echo $l_can_cell; ?></td>
|
|
<td class="<?php echo $cell_bg; ?>" align="center"><?php if ( !empty($auth_groups[$auth_options[$i]['auth_option']]) ) { ?><select name="group_option[<?php echo $auth_options[$i]['auth_option']; ?>]"><?php echo $auth_groups[$auth_options[$i]['auth_option']]; ?></select><?php } else { ?> <?php } ?></td>
|
|
</tr>
|
|
<?php
|
|
}
|
|
|
|
?>
|
|
<tr>
|
|
<td class="cat" colspan="2" align="center"><input class="liteoption" type="submit" name="adduser" value="Add New Group" /> <input class="liteoption" type="submit" name="deluser" value="Remove Group" /></td>
|
|
</tr>
|
|
</table>
|
|
|
|
<?php
|
|
break;
|
|
}
|
|
|
|
|
|
?>
|
|
|
|
<?php echo $s_hidden_fields; ?></form>
|
|
|
|
<?php
|
|
|
|
}
|
|
else
|
|
{
|
|
$sql = "SELECT forum_id, forum_name
|
|
FROM " . FORUMS_TABLE . "
|
|
ORDER BY cat_id ASC, forum_order ASC";
|
|
$result = $db->sql_query($sql);
|
|
|
|
$select_list = '';
|
|
while ( $row = $db->sql_fetchrow($result) )
|
|
{
|
|
$select_list .= '<option value="' . $row['forum_id'] . '">' . $row['forum_name'] . '</option>';
|
|
}
|
|
$db->sql_freeresult($result);
|
|
|
|
page_header($lang['Forums']);
|
|
|
|
?>
|
|
|
|
<h1><?php echo $l_title; ?></h1>
|
|
|
|
<p><?php echo $l_title_explain ?></p>
|
|
|
|
<form method="post" action="<?php echo "admin_permissions.$phpEx$SID&mode=$mode"; ?>"><table class="bg" cellspacing="1" cellpadding="4" border="0" align="center">
|
|
<tr>
|
|
<th align="center"><?php echo $lang['Select_a_Forum']; ?></th>
|
|
</tr>
|
|
<tr>
|
|
<td class="row1" align="center"> <select name="f"><?php echo $select_list; ?></select> <input type="submit" value="<?php echo $lang['Look_up_Forum']; ?>" class="mainoption" /> </td>
|
|
</tr>
|
|
</table></form>
|
|
|
|
<?php
|
|
|
|
}
|
|
|
|
page_footer();
|
|
|
|
?>
|