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']; ?> |
lang['ACL_explain']; ?>