in['usergroupid'] < 7) { $admin->error(phrase('cant_delete_default_usergroup')); } $db->query("DELETE FROM " . TABLE_PREFIX . "usergroup WHERE usergroupid = " . intval($bugsys->in['usergroupid'])); $db->query("UPDATE " . TABLE_PREFIX . "user SET usergroupid = 2 WHERE usergroupid = " . intval($bugsys->in['usergroupid'])); build_usergroups(); build_assignedto(); $admin->redirect('usergroup.php?do=modify'); } // ################################################################### if ($_REQUEST['do'] == 'delete') { if ($bugsys->in['usergroupid'] < 7) { $admin->error(phrase('cant_delete_default_usergroup')); } $admin->page_confirm(phrase('confirm_delete_usergroup'), 'usergroup.php?do=kill&usergroupid=' . intval($bugsys->in['usergroupid'])); } // ################################################################### if ($_REQUEST['do'] == 'add' OR $_REQUEST['do'] == 'edit') { $add = (($_REQUEST['do'] == 'add') ? true : false); $edit = (($_REQUEST['do'] == 'edit') ? true : false); $admin->page_start((($add) ? phrase('new_usergroup') : phrase('edit_usergroup'))); $admin->form_start('usergroup.php', (($add) ? 'insert' : 'update')); if ($edit) { $usergroup = $db->query_first("SELECT * FROM " . TABLE_PREFIX . "usergroup WHERE usergroupid = " . intval($bugsys->in['usergroupid'])); if (!is_array($usergroup)) { $admin->error('-1'); } $admin->form_hidden_field('usergroupid', $usergroup['usergroupid']); } else { $usergroup['permissions'] = 319; } // Details $admin->table_start(); $admin->table_head(phrase('usergroup_details')); $admin->row_input(phrase('usergroup_title'), 'title', $bugsys->sanitize($usergroup['title'])); $admin->row_input(phrase('usergroup_display_title'), 'displaytitle', $bugsys->sanitize($usergroup['displaytitle'])); $admin->row_input(phrase('usergroup_open_markup'), 'opentag', $bugsys->sanitize($usergroup['opentag'])); $admin->row_input(phrase('usergroup_close_markup'), 'closetag', $bugsys->sanitize($usergroup['closetag'])); $admin->table_end(); // Permission $admin->table_start(); // define permissions as groups $permissions = array( 'general' => array( 'canviewbugs', 'cansearch', 'cansubscribe', 'canbeassignedto'), 'posting' => array( 'canvote', 'cansubmitbugs', 'canpostcomments', 'cangetattach', 'canputattach', 'caneditattach'), 'moderation' => array( 'caneditown', 'caneditothers', 'caneditinfo', 'canassign', 'canchangestatus'), 'admin' => array( 'canadminpanel', 'canadminbugs', 'canadminfields', 'canadminusers', 'canadmingroups', 'canadmintools') ); $admin->table_head(phrase('usergroup_permission_settings')); foreach ($permissions AS $group => $settings) { $admin->row_span(phrase("permissions_group_$group"), 'thead', 'center'); foreach ($settings AS $setting) { $admin->row_yesno(phrase("permissions_$setting"), "perm[$setting]", ($usergroup['permissions'] & $_PERMISSION["$setting"])); } } $admin->table_end(); // Submit $admin->table_start(); $admin->row_submit(); $admin->table_end(); $admin->form_end(); $admin->page_end(); } // ################################################################### if ($_POST['do'] == 'insert') { foreach ($_POST['perm'] AS $permtitle => $binaryswitch) { $permissionvalue += $_PERMISSION["$permtitle"] * $binaryswitch; } $db->query(" INSERT INTO " . TABLE_PREFIX . "usergroup (title, displaytitle, opentag, closetag, permissions) VALUES ('" . $bugsys->in['title'] . "', '" . $bugsys->in['displaytitle'] . "', '" . $bugsys->in['opentag'] . "', '" . $bugsys->in['closetag'] . "', $permissionvalue )" ); build_usergroups(); $admin->redirect('usergroup.php?do=modify'); } // ################################################################### if ($_POST['do'] == 'update') { foreach ($_POST['perm'] AS $permtitle => $binaryswitch) { $permissionvalue += $_PERMISSION["$permtitle"] * $binaryswitch; } $db->query(" UPDATE " . TABLE_PREFIX . "usergroup SET title = '" . $bugsys->in['title'] . "', displaytitle = '" . $bugsys->in['displaytitle'] . "', opentag = '" . $bugsys->unsanitize($bugsys->in['opentag']) . "', closetag = '" . $bugsys->unsanitize($bugsys->in['closetag']) . "', permissions = $permissionvalue WHERE usergroupid = " . intval($bugsys->in['usergroupid']) ); build_usergroups(); build_assignedto(); $admin->redirect('usergroup.php?do=modify'); } // ################################################################### if ($_REQUEST['do'] == 'modify') { $admin->page_start(phrase('usergroup_manager')); $admin->form_start('usergroup.php', 'null'); $admin->table_start(); $admin->table_head(phrase('usergroup_manager'), 3); $groups = $db->query("SELECT * FROM " . TABLE_PREFIX . "usergroup ORDER BY usergroupid ASC"); while ($group = $db->fetch_array($groups)) { $usergroups["$group[usergroupid]"] = $group; } $db->free_result($groups); $groups = $db->query(" SELECT COUNT(user.userid) AS total, user.usergroupid FROM " . TABLE_PREFIX . "user AS user LEFT JOIN " . TABLE_PREFIX . "usergroup AS usergroup USING (usergroupid) GROUP BY usergroup.usergroupid ORDER BY usergroup.usergroupid" ); while ($group = $db->fetch_array($groups)) { $usergroups["$group[usergroupid]"]['total'] = $group['total']; } $admin->table_column_head(array(phrase('usergroup'), phrase('number_of_users'), phrase('action'))); foreach ($usergroups AS $group) { $admin->row_multi_item(array("$group[title]" => 'l', ((!$group['total']) ? '-' : $group['total']) => 'c', "" . phrase('edit_wraplink') . "" . (($group['usergroupid'] > 6) ? "" . phrase('delete_wraplink') . "" : '') => 'c')); } $admin->row_span('', 'tfoot', 'center', 3); $admin->table_end(); $admin->form_end(); $admin->page_end(); } /*=====================================================================*\ || ################################################################### || # $HeadURL$ || # $Id$ || ################################################################### \*=====================================================================*/ ?>