$votestoconfirm ||= 0;
my $defaultmilestone = $::FORM{defaultmilestone} || "---";
+
+ # find the next bit first in case this operation fails; we don't calculate
+ # this by hand; table stolen from editgroups.cgi; see bug 167485
+ my $bit = "";
+ if(Param("usebuggroups")) {
+ my @bitvals = ('1','2','4','8','16','32','64','128','256','512','1024',
+ '2048','4096','8192','16384','32768',
+
+ '65536','131072','262144','524288','1048576','2097152',
+ '4194304','8388608','16777216','33554432','67108864',
+ '134217728','268435456','536870912','1073741824',
+ '2147483648',
+
+ '4294967296','8589934592','17179869184','34359738368',
+ '68719476736','137438953472','274877906944',
+ '549755813888','1099511627776','2199023255552',
+ '4398046511104','8796093022208','17592186044416',
+ '35184372088832','70368744177664','140737488355328',
+
+ '281474976710656','562949953421312','1125899906842624',
+ '2251799813685248','4503599627370496','9007199254740992',
+ '18014398509481984','36028797018963968','72057594037927936',
+ '144115188075855872','288230376151711744',
+ '576460752303423488','1152921504606846976',
+ '2305843009213693952','4611686018427387904');
+
+ # First the next available bit
+ foreach my $bv (@bitvals) {
+ if ($bit eq "") {
+ SendSQL("SELECT bit FROM groups WHERE bit=" . SqlQuote($bv));
+ if (!FetchOneColumn()) {
+ $bit = $bv;
+ }
+ }
+ }
+ if ($bit eq "") {
+ ShowError("Sorry, you already have the maximum number of groups " .
+ "defined.<BR><BR>You must delete a group first before you " .
+ "can add any more.</B>");
+ PutTrailer("<a href=editgroups.cgi>Back to the group list</a>");
+ exit;
+ }
+ }
+
+
# Add the new product.
SendSQL("INSERT INTO products ( " .
"product, description, milestoneurl, disallownew, votesperuser, " .
# If we're using bug groups, then we need to create a group for this
# product as well. -JMR, 2/16/00
if(Param("usebuggroups")) {
- # First we need to figure out the bit for this group. We'll simply
- # use the next highest bit available. We'll use a minimum bit of 256,
- # to leave room for a few more Bugzilla operation groups at the bottom.
- SendSQL("SELECT MAX(bit) FROM groups");
- my $bit = FetchOneColumn();
- if($bit < 256) {
- $bit = 256;
- } else {
- $bit = $bit * 2;
- }
# Next we insert into the groups table
SendSQL("INSERT INTO groups " .