add_user_into_group($group_id, $userdata['user_id'], 1, TIMENOW); if ($bb_cfg['group_send_email']) { require CLASS_DIR . 'emailer.php'; $emailer = new emailer($bb_cfg['smtp_delivery']); $emailer->from($bb_cfg['sitename'] . " <{$bb_cfg['board_email']}>"); $emailer->email_address($moderator['username'] . " <{$moderator['user_email']}>"); $emailer->use_template('group_request', $moderator['user_lang']); $emailer->assign_vars(array('USER' => $userdata['username'], 'SITENAME' => $bb_cfg['sitename'], 'GROUP_MODERATOR' => $moderator['username'], 'U_GROUP' => make_url(GROUP_URL . $group_id))); $emailer->send(); $emailer->reset(); } set_die_append_msg(false, false, $group_id); bb_die($lang['GROUP_JOINED']); } else { if (!empty($_POST['unsub']) || !empty($_POST['unsubpending'])) { delete_user_group($group_id, $userdata['user_id']); set_die_append_msg(false, false, $group_id); bb_die($lang['UNSUB_SUCCESS']); } else { // Handle Additions, removals, approvals and denials $group_moderator = $group_info['group_moderator']; if (!empty($_POST['add']) || !empty($_POST['remove']) || !empty($_POST['approve']) || !empty($_POST['deny'])) { if (!$is_moderator) { bb_die($lang['NOT_GROUP_MODERATOR']); } if (!empty($_POST['add'])) { if (isset($_POST['username']) && !($row = get_userdata($_POST['username'], true))) { bb_die($lang['COULD_NOT_ADD_USER']); } add_user_into_group($group_id, $row['user_id']); if ($bb_cfg['group_send_email']) {
foreach ($group_groupid as $usrgrpid) { if (!($group = get_group_by_usrgrpid($usrgrpid))) { continue; } $result |= delete_user_group($usrgrpid); if ($result) { add_audit(AUDIT_ACTION_DELETE, AUDIT_RESOURCE_USER_GROUP, 'Group name [' . $group['name'] . ']'); } } $result = DBend($result); show_messages($result, S_GROUP_DELETED, S_CANNOT_DELETE_GROUP); } else { if (isset($_REQUEST['delete'])) { $group = get_group_by_usrgrpid($_REQUEST['usrgrpid']); DBstart(); $result = delete_user_group($_REQUEST['usrgrpid']); $result = DBend($result); show_messages($result, S_GROUP_DELETED, S_CANNOT_DELETE_GROUP); if ($result) { add_audit(AUDIT_ACTION_DELETE, AUDIT_RESOURCE_USER_GROUP, 'Group name [' . $group['name'] . ']'); unset($_REQUEST['usrgrpid']); unset($_REQUEST['form']); } } else { if (isset($_REQUEST['set_gui_access']) && isset($_REQUEST['usrgrpid'])) { $group = get_group_by_usrgrpid($_REQUEST['usrgrpid']); $result = change_group_gui_access($_REQUEST['usrgrpid'], $_REQUEST['set_gui_access']); show_messages($result, S_GROUP . ' "' . $group['name'] . '" ' . S_GUI_ACCESS_UPDATED, S_CANNOT_UPDATE_GUI_ACCESS); if ($result) { $audit_action = $_REQUEST['set_gui_access'] == GROUP_GUI_ACCESS_DISABLED ? AUDIT_ACTION_DISABLE : AUDIT_ACTION_UPDATE; add_audit($audit_action, AUDIT_RESOURCE_USER_GROUP, 'GUI access for group name [' . $group['name'] . ']');
global $current_section; $current_section = 'configuration'; require_once '../../init.php'; // Required files require_once MAD_PATH . '/www/cp/auth.php'; require_once MAD_PATH . '/functions/adminredirect.php'; require_once MAD_PATH . '/www/cp/restricted.php'; require_once MAD_PATH . '/www/cp/admin_functions.php'; require_once MAD_PATH . '/www/cp/templates/header.tpl.php'; if (!check_permission('configuration', $user_detail['user_id'])) { exit; } if (isset($_GET['delete'])) { if ($_GET['delete'] == 1 && is_numeric($_GET['delid'])) { delete_user_group($_GET['delid']); } } ?> <div id="content"> <div id="contentHeader"> <h1>User Group Management</h1> </div> <!-- #contentHeader --> <div class="container"> <div class="grid-24">
add_action(array('code' => 'ajax_get_user_group', 'rule' => 'admin_ajax, admin_users', 'category' => 'admin', 'function' => function ($params = null) { if (isset($params['button']['pre']['value']) && $params['button']['pre']['type'] == 'ID') { $params = $params['button']['pre']['value']; if ($res = get_user_group($params, 'code, name')) { echo ajax_make_res(array('data' => $res)); die; } } echo ajax_make_res('error', 'Произошла неизвестная ошибка', 'Ошибка!'); })); add_action(array('code' => 'ajax_update_user_group', 'rule' => 'admin_ajax, admin_users', 'category' => 'admin', 'function' => function ($params = null) { $ID = null; if (isset($params['button']['pre']['value']) && $params['button']['pre']['type'] == 'ID') { $ID = $params['button']['pre']['value']; } if (isset($params['window']['input'])) { $params = $params['window']['input']; } if ($params !== null && $ID && update_user_group($ID, $params)) { echo ajax_make_res('reload', "Группа {$params['name']} успешно обновлена", 'Успех!'); } else { echo ajax_make_res('error', 'Проверьте правильность заполненных полей', 'Ошибка!'); } })); add_action(array('code' => 'ajax_delete_user_group', 'rule' => 'admin_ajax, admin_users', 'category' => 'admin', 'function' => function ($params = null) { if (isset($params['window']['pre_window']['value']) && $params['window']['pre_window']['type'] == 'ID' && delete_user_group($params['window']['pre_window']['value'])) { echo ajax_make_res('success', 'Группа успешно удалена', 'Успех!'); } else { echo ajax_make_res('error', 'Произошла неизвестная ошибка', 'Ошибка!'); } }));
$this_userdata = get_userdata($group_moderator, true); if (!($group_moderator = $this_userdata['user_id'])) { bb_die($lang['NO_GROUP_MODERATOR']); } $sql_ary = array('group_type' => (int) $group_type, 'release_group' => (int) $release_group, 'group_name' => (string) $group_name, 'group_description' => (string) $group_desc, 'group_moderator' => (int) $group_moderator, 'group_single_user' => 0); if ($mode == "editgroup") { if (!($group_info = get_group_data($group_id))) { bb_die($lang['GROUP_NOT_EXIST']); } if ($group_info['group_moderator'] != $group_moderator) { // Create user_group for new group's moderator add_user_into_group($group_id, $group_moderator); $sql_ary['mod_time'] = TIMENOW; // Delete old moderator's user_group if (isset($_POST['delete_old_moderator'])) { delete_user_group($group_id, $group_info['group_moderator']); } } $sql_args = DB()->build_array('UPDATE', $sql_ary); // Update group's data DB()->query("UPDATE " . BB_GROUPS . " SET {$sql_args} WHERE group_id = {$group_id}"); $message = $lang['UPDATED_GROUP'] . '<br /><br />'; $message .= sprintf($lang['CLICK_RETURN_GROUPSADMIN'], '<a href="admin_groups.php">', '</a>') . '<br /><br />'; $message .= sprintf($lang['CLICK_RETURN_ADMIN_INDEX'], '<a href="index.php?pane=right">', '</a>'); bb_die($message); } else { if ($mode == 'newgroup') { $sql_ary['group_time'] = $sql_ary['mod_time'] = TIMENOW; $sql_args = DB()->build_array('INSERT', $sql_ary); // Create new group DB()->query("INSERT INTO " . BB_GROUPS . " {$sql_args}");
unset($_REQUEST['usrgrpid']); unset($_REQUEST['form']); } } else { if ($_REQUEST['go'] == 'delete') { $groupids = get_request('group_groupid', get_request('usrgrpid')); zbx_value2array($groupids); $groups = array(); $sql = 'SELECT ug.usrgrpid, ug.name ' . ' FROM usrgrp ug ' . ' WHERE ' . DBin_node('ug.usrgrpid') . ' AND ' . DBcondition('ug.usrgrpid', $groupids); $res = DBselect($sql); while ($group = DBfetch($res)) { $groups[$group['usrgrpid']] = $group; } if (!empty($groups)) { DBstart(); $result = delete_user_group($groupids, $_REQUEST['set_gui_access']); $result = DBend($result); if ($result) { $audit_action = $_REQUEST['set_gui_access'] == GROUP_GUI_ACCESS_DISABLED ? AUDIT_ACTION_DISABLE : AUDIT_ACTION_UPDATE; foreach ($groups as $groupid => $group) { add_audit(AUDIT_ACTION_DELETE, AUDIT_RESOURCE_USER_GROUP, 'Group name [' . $group['name'] . ']'); } } show_messages($result, S_GROUP_DELETED, S_CANNOT_DELETE_GROUP); } } else { if ($_REQUEST['go'] == 'set_gui_access') { $groupids = get_request('group_groupid', get_request('usrgrpid')); zbx_value2array($groupids); $groups = array(); $sql = 'SELECT ug.usrgrpid, ug.name ' . ' FROM usrgrp ug ' . ' WHERE ' . DBin_node('ug.usrgrpid') . ' AND ' . DBcondition('ug.usrgrpid', $groupids);