INT)); if ($vars['usergroupid'] < 7) { $admin->error(phrase('cant_delete_default_usergroup')); } $DB_sql->query("DELETE FROM " . TABLE_PREFIX . "usergroup WHERE usergroupid = $vars[usergroupid]"); $DB_sql->query("UPDATE " . TABLE_PREFIX . "user SET usergroupid = 2 WHERE usergroupid = $vars[usergroupid]"); build_usergroups(); build_assignedto(); $admin->redirect('usergroup.php?do=modify'); } // ################################################################### if ($_REQUEST['do'] == 'delete') { sanitize(array('usergroupid' => INT)); if ($vars['usergroupid'] < 7) { $admin->error(phrase('cant_delete_default_usergroup')); } $admin->page_confirm(phrase('confirm_delete_usergroup'), 'usergroup.php?do=kill&usergroupid=' . $vars['usergroupid']); } // ################################################################### if ($_REQUEST['do'] == 'add' OR $_REQUEST['do'] == 'edit') { $add = iff($_REQUEST['do'] == 'add', true, false); $edit = iff($_REQUEST['do'] == 'edit', true, false); sanitize(array('usergroupid' => INT)); $admin->page_start(iff($add, phrase('new_usergroup'), phrase('edit_usergroup'))); $admin->form_start('usergroup.php', iff($add, 'insert', 'update')); if ($edit) { $usergroup = $DB_sql->query_first("SELECT * FROM " . TABLE_PREFIX . "usergroup WHERE usergroupid = $vars[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', htmlspecialcharslike($usergroup['title'])); $admin->row_input(phrase('usergroup_display_title'), 'displaytitle', htmlspecialcharslike($usergroup['displaytitle'])); $admin->row_input(phrase('usergroup_open_markup'), 'opentag', htmlspecialcharslike($usergroup['opentag'])); $admin->row_input(phrase('usergroup_close_markup'), 'closetag', htmlspecialcharslike($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'), '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') { sanitize(array('title' => STR, 'displaytitle' => STR, 'opentag' => STR, 'closetag' => STR)); foreach ($_POST['perm'] AS $permtitle => $binaryswitch) { $permissionvalue += $_PERMISSION["$permtitle"] * $binaryswitch; } $DB_sql->query(" INSERT INTO " . TABLE_PREFIX . "usergroup (title, displaytitle, opentag, closetag, permissions) VALUES ('" . addslasheslike($vars['title']) . "', '" . addslasheslike($vars['displaytitle']) . "', '" . addslasheslike($vars['opentag']) . "', '" . addslasheslike($vars['closetag']) . "', $permissionvalue )" ); build_usergroups(); $admin->redirect('usergroup.php?do=modify'); } // ################################################################### if ($_POST['do'] == 'update') { sanitize(array('usergroupid' => INT, 'title' => STR, 'displaytitle' => STR, 'opentag' => STR, 'closetag' => STR)); foreach ($_POST['perm'] AS $permtitle => $binaryswitch) { $permissionvalue += $_PERMISSION["$permtitle"] * $binaryswitch; } $DB_sql->query(" UPDATE " . TABLE_PREFIX . "usergroup SET title = '" . addslasheslike($vars['title']) . "', displaytitle = '" . addslasheslike($vars['displaytitle']) . "', opentag = '" . addslasheslike(unhtmlspecialchars($vars['opentag'])) . "', closetag = '" . addslasheslike(unhtmlspecialchars($vars['closetag'])) . "', permissions = $permissionvalue WHERE usergroupid = $vars[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_sql->query("SELECT * FROM " . TABLE_PREFIX . "usergroup ORDER BY usergroupid ASC"); while ($group = $DB_sql->fetch_array($groups)) { $usergroups["$group[usergroupid]"] = $group; } $DB_sql->free_result($groups); $groups = $DB_sql->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_sql->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', iff(!$group['total'], '-', $group['total']) => 'c', "" . phrase('edit_wraplink') . "" . iff($group['usergroupid'] > 6, "" . phrase('delete_wraplink') . "") => 'c')); } $admin->row_span('', 'tfoot', 'center', 3); $admin->table_end(); $admin->form_end(); $admin->page_end(); } /*=====================================================================*\ || ################################################################### || # $HeadURL$ || # $Id$ || ################################################################### \*=====================================================================*/ ?>