]>
src.bluestatic.org Git - bugdar.git/blob - admin/usergroup.php
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 \*=====================================================================*/