65573b3c7423dfc5e403e01efd72fec19fc75705
2 /*=====================================================================*\
3 || ################################################################### ||
4 || # [#]app[#] [#]version[#]
5 || # --------------------------------------------------------------- # ||
6 || # All parts of this file are ©2003-[#]year[#] Iris Studios, Inc. No # ||
7 || # part of this file may be reproduced in any way: part or whole. # ||
8 || # --------------------------------------------------------------- # ||
9 || # ©2003 - [#]year[#] Iris Studios, Inc. | http://www.iris-studios.com # ||
10 || ################################################################### ||
11 \*=====================================================================*/
13 require_once('./global.php');
14 require_once('./includes/functions_datastore.php');
16 if (!can_perform('canadmingroups'))
21 // ###################################################################
23 if (empty($_REQUEST['do']))
25 $_REQUEST['do'] = 'modify';
28 // ###################################################################
30 if ($_REQUEST['do'] == 'kill')
32 sanitize(array('usergroupid' => INT));
34 if ($vars['usergroupid'] < 7)
36 $admin->error('You can\'t delete a default usergroup.');
39 $DB_sql->query("DELETE FROM " . TABLE_PREFIX
. "usergroup WHERE usergroupid = $vars[usergroupid]");
40 $DB_sql->query("UPDATE " . TABLE_PREFIX
. "user SET usergroupid = 2 WHERE usergroupid = $vars[usergroupid]");
45 $admin->redirect('usergroup.php?do=modify');
48 // ###################################################################
50 if ($_REQUEST['do'] == 'delete')
52 sanitize(array('usergroupid' => INT));
54 if ($vars['usergroupid'] < 7)
56 $admin->error('You can\'t delete a default usergroup.');
59 $admin->page_confirm('Are you sure you want to delete this usergroup? All users in this group will be set back to the default registered usergroup (id: 2).', 'usergroup.php?do=kill&usergroupid=' . $vars['usergroupid']);
62 // ###################################################################
64 if ($_REQUEST['do'] == 'add' OR $_REQUEST['do'] == 'edit')
66 $add = iff($_REQUEST['do'] == 'add', true
, false
);
67 $edit = iff($_REQUEST['do'] == 'edit', true
, false
);
69 sanitize(array('usergroupid' => INT));
71 $admin->page_start(iff($add, 'New Usergroup', 'Edit Usergroup'));
73 $admin->form_start('usergroup.php', iff($add, 'insert', 'update'));
77 $usergroup = $DB_sql->query_first("SELECT * FROM " . TABLE_PREFIX
. "usergroup WHERE usergroupid = $vars[usergroupid]");
78 if (!is_array($usergroup))
83 $admin->form_hidden_field('usergroupid', $usergroup['usergroupid']);
87 $usergroup['permissions'] = 319;
91 $admin->table_start();
92 $admin->table_head('Usergroup Details');
93 $admin->row_input('Usergroup Title', 'title', htmlspecialcharslike($usergroup['title']));
94 $admin->row_input('Display Title<div><dfn>This is the title that others will be able to see when comments are posted.</dfn></div>', 'displaytitle', htmlspecialcharslike($usergroup['displaytitle']));
95 $admin->row_input('Opening Tag Markup<div><dfn>Place all open HTML tags here that will be wrapped around the username.</dfn></div>', 'opentag', htmlspecialcharslike($usergroup['opentag']));
96 $admin->row_input('Closing Tag Markup<div><dfn>Place all closed HTML tags that will close any open HTML tags entered above.</dfn></div>', 'closetag', htmlspecialcharslike($usergroup['closetag']));
100 $admin->table_start();
101 $admin->table_head('Permission Settings');
102 $admin->row_span('General Permissions', 'thead', 'center');
103 $admin->row_yesno('Can View the Tracker', 'perm[canviewbugs]', $usergroup['permissions'] & $_PERMISSION['canviewbugs']);
104 $admin->row_yesno('Can Search Bugs', 'perm[cansearch]', $usergroup['permissions'] & $_PERMISSION['cansearch']);
105 $admin->row_yesno('Can Subscribe to Bugs', 'perm[cansubscribe]', $usergroup['permissions'] & $_PERMISSION['cansubscribe']);
106 $admin->row_yesno('Can Be Assigned Bugs', 'perm[canbeassignedto]', $usergroup['permissions'] & $_PERMISSION['canbeassignedto']);
107 $admin->row_span('Posting/Submitting Permissions', 'thead', 'center');
108 $admin->row_yesno('Can Vote on Polls', 'perm[canvote]', $usergroup['permissions'] & $_PERMISSION['canvote']);
109 $admin->row_yesno('Can Submit Bugs', 'perm[cansubmitbugs]', $usergroup['permissions'] & $_PERMISSION['cansubmitbugs']);
110 $admin->row_yesno('Can Post Comments', 'perm[canpostcomments]', $usergroup['permissions'] & $_PERMISSION['canpostcomments']);
111 $admin->row_yesno('Can View Attachments', 'perm[cangetattach]', $usergroup['permissions'] & $_PERMISSION['cangetattach']);
112 $admin->row_yesno('Can Put Attachments', 'perm[canputattach]', $usergroup['permissions'] & $_PERMISSION['canputattach']);
113 $admin->row_span('Moderation/Managment Permissions', 'thead', 'center');
114 $admin->row_yesno('Can Edit Own Bugs', 'perm[caneditown]', $usergroup['permissions'] & $_PERMISSION['caneditown']);
115 $admin->row_yesno('Can Edit Others\' Bugs', 'perm[caneditothers]', $usergroup['permissions'] & $_PERMISSION['caneditothers']);
116 $admin->row_yesno('Can Edit Bug Information', 'perm[caneditinfo]', $usergroup['permissions'] & $_PERMISSION['caneditinfo']);
117 $admin->row_yesno('Can Assign Bugs', 'perm[canassign]', $usergroup['permissions'] & $_PERMISSION['canassign']);
118 $admin->row_yesno('Can Change Status', 'perm[canchangestatus]', $usergroup['permissions'] & $_PERMISSION['canchangestatus']);
119 $admin->row_span('Administrator Permissions', 'thead', 'center');
120 $admin->row_yesno('Can Access Control Panel', 'perm[canadminpanel]', $usergroup['permissions'] & $_PERMISSION['canadminpanel']);
121 $admin->row_yesno('Can Administer Bug Reports', 'perm[canadminbugs]', $usergroup['permissions'] & $_PERMISSION['canadminbugs']);
122 $admin->row_yesno('Can Administer Products / Components / Versions', 'perm[canadminversions]', $usergroup['permissions'] & $_PERMISSION['canadminversions']);
123 $admin->row_yesno('Can Administer Additional Bug Fields', 'perm[canadminfields]', $usergroup['permissions'] & $_PERMISSION['canadminfields']);
124 $admin->row_yesno('Can Administer Users', 'perm[canadminusers]', $usergroup['permissions'] & $_PERMISSION['canadminusers']);
125 $admin->row_yesno('Can Administer Usergroups', 'perm[canadmingroups]', $usergroup['permissions'] & $_PERMISSION['canadmingroups']);
126 $admin->row_yesno('Can Administer Settings / Maintenance Tools', 'perm[canadmintools]', $usergroup['permissions'] & $_PERMISSION['canadmintools']);
130 $admin->table_start();
131 $admin->row_submit();
139 // ###################################################################
141 if ($_POST['do'] == 'insert')
143 sanitize(array('title' => STR
, 'displaytitle' => STR
, 'opentag' => STR
, 'closetag' => STR
));
145 foreach ($_POST['perm'] AS $permtitle => $binaryswitch)
147 $permissionvalue +
= $_PERMISSION["$permtitle"] * $binaryswitch;
151 INSERT INTO " . TABLE_PREFIX
. "usergroup
152 (title, displaytitle, opentag, closetag, permissions)
154 ('" . addslasheslike($vars['title']) . "',
155 '" . addslasheslike($vars['displaytitle']) . "',
156 '" . addslasheslike($vars['opentag']) . "',
157 '" . addslasheslike($vars['closetag']) . "',
164 $admin->redirect('usergroup.php?do=modify');
166 /*echo '$permvalue = ' . $permissionvalue;
170 foreach ($_PERMISSION AS $permtitle => $bitmask)
172 echo $permtitle . ' & $permvalue = ' . ($bitmask & $permissionvalue) . '<br>';
178 // ###################################################################
180 if ($_POST['do'] == 'update')
182 sanitize(array('usergroupid' => INT, 'title' => STR
, 'displaytitle' => STR
, 'opentag' => STR
, 'closetag' => STR
));
184 foreach ($_POST['perm'] AS $permtitle => $binaryswitch)
186 $permissionvalue +
= $_PERMISSION["$permtitle"] * $binaryswitch;
190 UPDATE " . TABLE_PREFIX
. "usergroup
191 SET title = '" . addslasheslike($vars['title']) . "',
192 displaytitle = '" . addslasheslike($vars['displaytitle']) . "',
193 opentag = '" . addslasheslike(unhtmlspecialchars($vars['opentag'])) . "',
194 closetag = '" . addslasheslike(unhtmlspecialchars($vars['closetag'])) . "',
195 permissions = $permissionvalue
196 WHERE usergroupid = $vars[usergroupid]"
202 $admin->redirect('usergroup.php?do=modify');
205 // ###################################################################
207 if ($_REQUEST['do'] == 'modify')
209 $admin->page_start('Usergroup Manager');
211 $admin->form_start('usergroup.php', 'null');
212 $admin->table_start();
213 $admin->table_head('Usergroup Manager', 3);
215 $groups = $DB_sql->query("SELECT * FROM " . TABLE_PREFIX
. "usergroup ORDER BY usergroupid ASC");
216 while ($group = $DB_sql->fetch_array($groups))
218 $usergroups["$group[usergroupid]"] = $group;
220 $DB_sql->free_result($groups);
222 $groups = $DB_sql->query("
223 SELECT COUNT(user.userid) AS total, user.usergroupid
224 FROM " . TABLE_PREFIX
. "user AS user
225 LEFT JOIN " . TABLE_PREFIX
. "usergroup AS usergroup USING (usergroupid)
226 GROUP BY usergroup.usergroupid
227 ORDER BY usergroup.usergroupid"
229 while ($group = $DB_sql->fetch_array($groups))
231 $usergroups["$group[usergroupid]"]['total'] = $group['total'];
234 $admin->table_column_head(array('Usergroup', 'Number of Users', 'Action'));
235 foreach ($usergroups AS $group)
237 $admin->row_multi_item(array("<a href=\"usergroup.php?do=edit&usergroupid=$group[usergroupid]\">$group[title]</a>" => 'l', iff(!$group['total'], '-', $group['total']) => 'c', "<a href=\"usergroup.php?do=edit&usergroupid=$group[usergroupid]\">[Edit]</a>" . iff($group['usergroupid'] > 6, "<a href=\"usergroup.php?do=delete&usergroupid=$group[usergroupid]\">[Delete]</a>") => 'c'));
240 $admin->row_span('<input type="button" name="addug" value=" Add New Usergroup " onclick="window.location = \'usergroup.php?do=add\';" />', 'tfoot', 'center', 3);
247 /*=====================================================================*\
248 || ###################################################################
251 || ###################################################################
252 \*=====================================================================*/