/** +---------------------------------------------------------- * 默认操作 +---------------------------------------------------------- */ public function index() { import("ORG.Util.Page"); $AdminU = M('ausers'); $page_size = $page_szie == 0 ? C('ADMIN_PAGE_SIZE') : $page_szie; $count = $AdminU->count(); // 查询满足要求的总记录数 $Page = new Page($count, $page_size); // 实例化分页类传入总记录数和每页显示的记录数 $show = $Page->show(); // 分页显示输出 $fields = "id,user_name,u_group_id,real_name,is_ban,area_name,is_kf,qq,phone,land_line"; $order = "id DESC,u_group_id DESC"; $list = $AdminU->field($fields)->order($order)->limit($Page->firstRow . ',' . $Page->listRows)->select(); $AdminUserList = $list; $GroupArr = get_group_data(); foreach ($AdminUserList as $key => $v) { $AdminUserList[$key]['groupname'] = $GroupArr[$v['u_group_id']]['groupname']; } $this->assign('position', '管理员管理'); $this->assign('pagebar', $show); $this->assign('admin_list', $AdminUserList); $this->assign('arealist', M("area")->field("id,name")->where("is_open=1")->select()); $this->assign('group_list', $GroupArr); $this->display(); }
} else { $www = ''; } return; } $user->session_start(array('req_login' => true)); set_die_append_msg(); $group_id = isset($_REQUEST[POST_GROUPS_URL]) ? intval($_REQUEST[POST_GROUPS_URL]) : null; $start = isset($_REQUEST['start']) ? abs(intval($_REQUEST['start'])) : 0; $per_page = $bb_cfg['group_members_per_page']; $view_mode = isset($_REQUEST['view']) ? (string) $_REQUEST['view'] : null; $rel_limit = 50; $group_info = array(); $is_moderator = false; if ($group_id) { if (!($group_info = get_group_data($group_id))) { bb_die($lang['GROUP_NOT_EXIST']); } if (!$group_info['group_id'] || !$group_info['group_moderator'] || !$group_info['moderator_name']) { bb_die("Invalid group data [group_id: {$group_id}]"); } $is_moderator = $userdata['user_id'] == $group_info['group_moderator'] || IS_ADMIN; } if (!$group_id) { // Show the main screen where the user can select a group. $groups = array(); $pending = 10; $member = 20; $sql = "\n\t\tSELECT\n\t\t\tg.group_name, g.group_description, g.group_id, g.group_type, g.release_group,\n\t\t\tIF(ug.user_id IS NOT NULL, IF(ug.user_pending = 1, {$pending}, {$member}), 0) AS membership,\n\t\t\tg.group_moderator, u.username AS moderator_name,\n\t\t\tIF(g.group_moderator = ug.user_id, 1, 0) AS is_group_mod,\n\t\t\tCOUNT(ug2.user_id) AS members, SUM(ug2.user_pending) AS candidates\n\t\tFROM\n\t\t\t" . BB_GROUPS . " g\n\t\tLEFT JOIN\n\t\t\t" . BB_USER_GROUP . " ug ON\n\t\t\t ug.group_id = g.group_id\n\t\t\tAND ug.user_id = " . $userdata['user_id'] . "\n\t\tLEFT JOIN\n\t\t\t" . BB_USER_GROUP . " ug2 ON\n\t\t\t ug2.group_id = g.group_id\n\t\tLEFT JOIN\n\t\t\t" . BB_USERS . " u ON g.group_moderator = u.user_id\n\t\tWHERE\n\t\t\tg.group_single_user = 0\n\t\tGROUP BY g.group_id\n\t\tORDER BY\n\t\t\tis_group_mod DESC,\n\t\t\tmembership DESC,\n\t\t\tg.group_type ASC,\n\t\t\tg.group_name ASC\n\t"; foreach (DB()->fetch_rowset($sql) as $row) { if ($row['is_group_mod']) {
function get_user_acl($uid = "") { $model = strtolower(MODULE_NAME); if (empty($uid)) { return false; } $gid = M('ausers')->field('u_group_id')->find($uid); $al = get_group_data($gid['u_group_id']); $acl = $al['controller']; $acl_key = acl_get_key(); if (array_keys($acl[$model], $acl_key)) { return true; } else { return false; } }
<?php if (!defined('IN_AJAX')) { die(basename(__FILE__)); } global $bb_cfg, $userdata, $lang; if (!($group_id = intval($this->request['group_id'])) or !($group_info = get_group_data($group_id))) { $this->ajax_die($lang['NO_GROUP_ID_SPECIFIED']); } if (!($mode = (string) $this->request['mode'])) { $this->ajax_die('No mode specified'); } $value = $this->request['value'] = (string) isset($this->request['value']) ? $this->request['value'] : 0; if (!IS_ADMIN && $userdata['user_id'] != $group_info['group_moderator']) { $this->ajax_die($lang['ONLY_FOR_MOD']); } switch ($mode) { case 'group_name': case 'group_signature': case 'group_description': $value = htmlCHR($value, false, ENT_NOQUOTES); $this->response['new_value'] = $value; break; case 'group_type': $this->response['new_value'] = $value; break; case 'release_group': $this->response['new_value'] = $value; break; case 'delete_avatar': delete_avatar(GROUP_AVATAR_MASK . $group_id, $group_info['avatar_ext_id']);
<option value="admin" selected="selected">' . $lang['AUTH_ADMIN'] . '</option> <option value="user">' . $lang['AUTH_USER'] . '</option> </select> ' : ' <select name="userlevel"> <option value="admin">' . $lang['AUTH_ADMIN'] . '</option> <option value="user" selected="selected">' . $lang['AUTH_USER'] . '</option> </select> '; $template->assign_block_vars('switch_user_auth', array()); $template->assign_vars(array('TPL_AUTH_UG_MAIN' => true, 'USER_OR_GROUPNAME' => $this_userdata['username'], 'USER_LEVEL' => $lang['USER_LEVEL'] . ' : ' . $s_user_type, 'USER_GROUP_MEMBERSHIPS' => $lang['GROUP_MEMBERSHIPS'])); $template->assign_vars(array('T_USER_OR_GROUPNAME' => $lang['USERNAME'], 'T_AUTH_TITLE' => $lang['AUTH_CONTROL_USER'], 'T_AUTH_EXPLAIN' => $lang['USER_AUTH_EXPLAIN'], 'S_COLUMN_SPAN' => $s_column_span, 'S_HIDDEN_FIELDS' => $s_hidden_fields)); } else { if ($mode == 'group' && $group_id) { $page_cfg['quirks_mode'] = true; if (!($group_data = get_group_data($group_id))) { bb_die($lang['GROUP_NOT_EXIST']); } if (!($forums = $datastore->get('cat_forums'))) { $datastore->update('cat_forums'); $forums = $datastore->get('cat_forums'); } $base_url = basename(__FILE__) . "?mode=group&g={$group_id}"; $ug_data = array('group_id' => $group_id); $u_access = auth(AUTH_ALL, AUTH_LIST_ALL, $ug_data); foreach ($forums['c'] as $c_id => $c_data) { $template->assign_block_vars('c', array('CAT_ID' => $c_id, 'CAT_TITLE' => $forums['cat_title_html'][$c_id], 'CAT_HREF' => "{$base_url}&c={$c_id}")); if (!($c =& $_REQUEST['c']) or !in_array($c, array('all', $c_id)) or empty($c_data['forums'])) { continue; } foreach ($c_data['forums'] as $f_id) {
} // Sort direction $sort_opt = array($sort_asc => array('lang' => $lang['ASC'], 'sql' => 'ASC'), $sort_desc => array('lang' => $lang['DESC'], 'sql' => 'DESC')); // Previous days $time_opt = array($search_all => array('lang' => $lang['BT_ALL_DAYS_FOR'], 'sql' => 0), 1 => array('lang' => $lang['BT_1_DAY_FOR'], 'sql' => TIMENOW - 86400), 3 => array('lang' => $lang['BT_3_DAY_FOR'], 'sql' => TIMENOW - 86400 * 3), 7 => array('lang' => $lang['BT_7_DAYS_FOR'], 'sql' => TIMENOW - 86400 * 7), 14 => array('lang' => $lang['BT_2_WEEKS_FOR'], 'sql' => TIMENOW - 86400 * 14), 30 => array('lang' => $lang['BT_1_MONTH_FOR'], 'sql' => TIMENOW - 86400 * 30)); $time_select = array(); foreach ($time_opt as $val => $opt) { $time_select[$opt['lang']] = $val; } // Seeder not seen $s_not_seen_opt = array($search_all => array('lang' => $lang['BT_DISREGARD'], 'sql' => 0), 1 => array('lang' => $lang['BT_1_DAY'], 'sql' => TIMENOW - 86400), 3 => array('lang' => $lang['BT_3_DAYS'], 'sql' => TIMENOW - 86400 * 3), 7 => array('lang' => $lang['BT_7_DAYS'], 'sql' => TIMENOW - 86400 * 7), 14 => array('lang' => $lang['BT_2_WEEKS'], 'sql' => TIMENOW - 86400 * 14), 30 => array('lang' => $lang['BT_1_MONTH'], 'sql' => TIMENOW - 86400 * 30), $never => array('lang' => $lang['BT_NEVER'], 'sql' => 0)); $s_not_seen_select = array(); foreach ($s_not_seen_opt as $val => $opt) { $s_not_seen_select[$opt['lang']] = $val; } if ($release_groups = get_group_data('all')) { $s_rg_opt = array($search_all => array('lang' => $lang['CHOOSE_RELEASE_GROUP'], 'sql' => 0)); foreach ($release_groups as $rg) { if ($rg['release_group']) { $s_rg_opt[$rg['group_id']] = array('lang' => $rg['group_name'], 'sql' => $rg['group_id']); } } foreach ($s_rg_opt as $val => $opt) { $s_release_group_select[$opt['lang']] = $val; } } else { $s_rg_opt = ''; $s_release_group_select = array($lang['CHOOSE_RELEASE_GROUP'] => 0); } $GPC = array('all_words' => array('allw', 1, CHBOX), 'active' => array('a', 0, CHBOX), 'cat' => array('c', null, REQUEST), 'dl_cancel' => array('dla', 0, CHBOX), 'dl_compl' => array('dlc', 0, CHBOX), 'dl_down' => array('dld', 0, CHBOX), 'dl_will' => array('dlw', 0, CHBOX), 'forum' => array('f', $search_all, REQUEST), 'my' => array('my', 0, CHBOX), 'new' => array('new', 0, CHBOX), 'title_match' => array('nm', null, REQUEST), 'order' => array('o', $ord_posted, SELECT), 'poster_id' => array('pid', null, GET), 'poster_name' => array('pn', null, REQUEST), 'user_releases' => array('rid', null, GET), 'sort' => array('s', $sort_desc, SELECT), 'seed_exist' => array('sd', 0, CHBOX), 'show_author' => array('da', 1, CHBOX), 'show_cat' => array('dc', 0, CHBOX), 'show_forum' => array('df', 1, CHBOX), 'show_speed' => array('ds', 0, CHBOX), 's_rg' => array('srg', $search_all, SELECT), 's_not_seen' => array('sns', $search_all, SELECT), 'time' => array('tm', $search_all, SELECT), 'tor_type' => array('tor_type', 0, CHBOX), 'hash' => array('hash', null, REQUEST)); // Define all GPC vars with default values