acl_get('a_auth') ) { return; } $filename = basename(__FILE__); $module['Forums']['Permissions'] = $filename . $SID . '&mode=forums'; $module['Forums']['Moderators'] = $filename . $SID . '&mode=moderators'; $module['Forums']['Super_Moderators'] = $filename . $SID . '&mode=supermoderators'; $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); require($phpbb_root_path . 'includes/functions_admin.'.$phpEx); // Do we have forum admin permissions? if ( !$auth->acl_get('a_auth') ) { trigger_error($user->lang['No_admin']); } // Define some vars if ( isset($_GET['f']) || isset($_POST['f']) ) { $forum_id = ( isset($_POST['f']) ) ? intval($_POST['f']) : intval($_GET['f']); $forum_sql = " WHERE forum_id = $forum_id"; } else { $forum_id = 0; $forum_sql = ''; } if ( isset($_GET['mode']) || isset($_POST['mode']) ) { $mode = ( isset($_POST['mode']) ) ? $_POST['mode'] : $_GET['mode']; } else { $mode = ''; } // Start program proper switch ( $mode ) { case 'forums': $l_title = $user->lang['Permissions']; $l_title_explain = $user->lang['Permissions_explain']; $l_can = '_can'; break; case 'moderators': $l_title = $user->lang['Moderators']; $l_title_explain = $user->lang['Moderators_explain']; $l_can = '_can'; break; case 'supermoderators': $l_title = $user->lang['Super_Moderators']; $l_title_explain = $user->lang['Super_Moderators_explain']; $l_can = '_can'; break; case 'administrators': $l_title = $user->lang['Administrators']; $l_title_explain = $user->lang['Administrators_explain']; $l_can = '_can_admin'; break; } // Call update or delete, both can take multiple user/group // ids. Additionally inheritance is handled (by the auth API) if ( isset($_POST['update']) ) { $auth_admin = new auth_admin(); // Admin wants subforums to inherit permissions ... so handle this if ( !empty($_POST['inherit']) ) { array_push($_POST['inherit'], $forum_id); $forum_id = $_POST['inherit']; } foreach ( $_POST['entries'] as $id ) { $auth_admin->acl_set($_POST['type'], $forum_id, $id, $_POST['option']); } trigger_error('Permissions updated successfully'); } else if ( isset($_POST['delete']) ) { $auth_admin = new auth_admin(); $option_ids = false; if ( !empty($_POST['option']) ) { $sql = "SELECT auth_option_id FROM " . ACL_OPTIONS_TABLE . " WHERE auth_value LIKE '" . $_POST['option'] . "_%'"; $result = $db->sql_query($sql); if ( $row = $db->sql_fetchrow($result) ) { $option_ids = array(); do { $option_ids[] = $row['auth_option_id']; } while( $row = $db->sql_fetchrow($result) ); } $db->sql_freeresult($result); } foreach ( $_POST['entries'] as $id ) { $auth_admin->acl_delete($_POST['type'], $forum_id, $id, $option_ids); } trigger_error('Permissions updated successfully'); } // Get required information, either all forums if no id was // specified or just the requsted if it was if ( !empty($forum_id) || $mode == 'administrators' || $mode == 'supermoderators' ) { // 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); $db->sql_freeresult($result); $l_title .= ' : ' . $forum_info['forum_name'] . ''; } // Generate header page_header($l_title); ?>

sql_query($sql); $group_list = ''; while ( $row = $db->sql_fetchrow($result) ) { $group_list .= ''; } $db->sql_freeresult($result); if ( empty($_POST['advanced']) || empty($_POST['entries']) ) { ?>

lang['Users']; ?>

lang['Groups']; ?>

">sql_query($sql); $users = ''; while ( $row = $db->sql_fetchrow($result) ) { $users .= ''; } $db->sql_freeresult($result); ?>
lang['Manage_users']; ?>
 
">sql_query($sql); $groups = ''; while ( $row = $db->sql_fetchrow($result) ) { $groups .= ''; } $db->sql_freeresult($result); ?>
lang['Manage_groups']; ?>
 
">
lang['Add_users']; ?>
    &mode=searchuser&form=2&field=entries', '_phpbbsearch', 'HEIGHT=500,resizable=yes,scrollbars=yes,WIDTH=650');return false;" />
">
lang['Add_groups']; ?>
 
1' : ''; $sql = "SELECT auth_option_id, auth_value FROM " . ACL_OPTIONS_TABLE . " WHERE auth_value LIKE '" . $type_sql . "_%' AND auth_value <> '" . $type_sql . "_' $founder_sql"; $result = $db->sql_query($sql); $auth_options = array(); while ( $row = $db->sql_fetchrow($result) ) { $auth_options[] = $row; } $db->sql_freeresult($result); if ( $_POST['type'] == 'user' && !empty($_POST['new']) ) { $_POST['entries'] = explode("\n", $_POST['entries']); } $where_sql = ''; foreach ( $_POST['entries'] as $value ) { $where_sql .= ( ( $where_sql != '' ) ? ', ' : '' ) . ( ( $_POST['type'] == 'user' && !empty($_POST['new']) ) ? '\'' . $value . '\'' : intval($value) ); } switch ( $_POST['type'] ) { case 'group': $l_type = 'Group'; $sql = ( empty($_POST['new']) ) ? "SELECT g.group_id AS id, g.group_name AS name, o.auth_value, a.auth_allow_deny FROM " . GROUPS_TABLE . " g, " . ACL_GROUPS_TABLE . " a, " . ACL_OPTIONS_TABLE . " o WHERE o.auth_value LIKE '" . $type_sql . "_%' AND a.auth_option_id = o.auth_option_id $forum_sql AND g.group_id = a.group_id AND g.group_id IN ($where_sql) ORDER BY g.group_name ASC" : "SELECT group_id AS id, group_name AS name FROM " . GROUPS_TABLE . " WHERE group_id IN ($where_sql) ORDER BY group_name ASC"; break; case 'user': $l_type = 'User'; $sql = ( empty($_POST['new']) ) ? "SELECT u.user_id AS id, u.username AS name, u.user_founder, o.auth_value, a.auth_allow_deny FROM " . USERS_TABLE . " u, " . ACL_USERS_TABLE . " a, " . ACL_OPTIONS_TABLE . " o WHERE o.auth_value LIKE '" . $type_sql . "_%' AND a.auth_option_id = o.auth_option_id $forum_sql AND u.user_id = a.user_id AND u.user_id IN ($where_sql) ORDER BY u.username, u.user_regdate ASC" : "SELECT user_id AS id, username AS name, user_founder FROM " . USERS_TABLE . " WHERE username IN ($where_sql) ORDER BY username, user_regdate ASC"; break; } $result = $db->sql_query($sql); $ug = '';; $ug_hidden = ''; $auth = array(); while ( $row = $db->sql_fetchrow($result) ) { $ug_test = ( !empty($user->lang[$row['name']]) ) ? $user->lang[$row['name']] : $row['name']; $ug .= ( !strstr($ug, $ug_test) ) ? $ug_test . "\n" : ''; $ug_test = ''; $ug_hidden .= ( !strstr($ug_hidden, $ug_test) ) ? $ug_test : ''; $auth[$row['auth_value']] = ( isset($auth_group[$row['auth_value']]) ) ? min($auth_group[$row['auth_value']], $row['auth_allow_deny']) : $row['auth_allow_deny']; } $db->sql_freeresult($result); ?>

lang['ACL_explain']; ?>

">
Quick settings:
lang['acl_' . $auth_options[$i]['auth_value']]) ) ? $user->lang['acl_' . $auth_options[$i]['auth_value']] : ucfirst(preg_replace('#.*?_#', '', $auth_options[$i]['auth_value'])); $allow_type = ( $auth[$auth_options[$i]['auth_value']] == ACL_ALLOW ) ? ' checked="checked"' : ''; $deny_type = ( $auth[$auth_options[$i]['auth_value']] == ACL_DENY ) ? ' checked="checked"' : ''; $inherit_type = ( $auth[$auth_options[$i]['auth_value']] == ACL_INHERIT ) ? ' checked="checked"' : ''; ?>
 lang['Option']; ?>   lang['Allow']; ?>   lang['Deny']; ?>   lang['Inherit']; ?> 
/> /> />
lang['Inheritance']; ?>
lang['Inheritance_explain']; ?>
lang['Mark_all']; ?> :: lang['Unmark_all']; ?>
  

">
lang['Select_a_Forum']; ?>