summaryrefslogtreecommitdiffstats
path: root/makegroupstable.sh
diff options
context:
space:
mode:
authorterry%netscape.com <>1999-03-12 01:30:51 +0100
committerterry%netscape.com <>1999-03-12 01:30:51 +0100
commit6f3e5c8018709ef5a43427c5259e24372eefe7c3 (patch)
treeb2cbd1c250a035299e5bde3402aa1a0aa26b6492 /makegroupstable.sh
parent5b2ed378cc135b0f3b94d960824c65e43365e247 (diff)
downloadbugzilla-6f3e5c8018709ef5a43427c5259e24372eefe7c3.tar.gz
bugzilla-6f3e5c8018709ef5a43427c5259e24372eefe7c3.tar.xz
Added 'groups' stuff, where we have different group bits that we can
put on a person or on a bug. Some of the group bits control access to bugzilla features. And a person can't access a bug unless he has every group bit set that is also set on the bug.
Diffstat (limited to 'makegroupstable.sh')
-rwxr-xr-xmakegroupstable.sh69
1 files changed, 69 insertions, 0 deletions
diff --git a/makegroupstable.sh b/makegroupstable.sh
new file mode 100755
index 000000000..561823878
--- /dev/null
+++ b/makegroupstable.sh
@@ -0,0 +1,69 @@
+#!/bin/sh
+#
+# The contents of this file are subject to the Mozilla Public License
+# Version 1.0 (the "License"); you may not use this file except in
+# compliance with the License. You may obtain a copy of the License at
+# http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS"
+# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+# License for the specific language governing rights and limitations
+# under the License.
+#
+# The Original Code is the Bugzilla Bug Tracking System.
+#
+# The Initial Developer of the Original Code is Netscape Communications
+# Corporation. Portions created by Netscape are Copyright (C) 1998
+# Netscape Communications Corporation. All Rights Reserved.
+#
+# Contributor(s): Terry Weissman <terry@mozilla.org>
+
+mysql > /dev/null 2>/dev/null << OK_ALL_DONE
+
+use bugs;
+
+drop table groups
+OK_ALL_DONE
+
+mysql << OK_ALL_DONE
+use bugs;
+create table groups (
+ # This must be a power of two. Groups are identified by a bit; sets of
+ # groups are indicated by or-ing these values together.
+ bit bigint not null,
+ name varchar(255) not null,
+ description text not null,
+
+ # isbuggroup is nonzero if this is a group that controls access to a set
+ # of bugs. In otherword, the groupset field in the bugs table should only
+ # have this group's bit set if isbuggroup is nonzero.
+ isbuggroup tinyint not null,
+
+ # User regexp is which email addresses are initially put into this group.
+ # This is only used when an email account is created; otherwise, profiles
+ # may be individually tweaked to add them in and out of groups.
+ userregexp tinytext not null,
+
+
+ unique(bit),
+ unique(name)
+
+);
+
+
+insert into groups (bit, name, description, userregexp) values (pow(2,0), "tweakparams", "Can tweak operating parameters", "");
+insert into groups (bit, name, description, userregexp) values (pow(2,1), "editgroupmembers", "Can put people in and out of groups that they are members of.", "");
+insert into groups (bit, name, description, userregexp) values (pow(2,2), "creategroups", "Can create and destroy groups.", "");
+insert into groups (bit, name, description, userregexp) values (pow(2,3), "editcomponents", "Can create, destroy, and edit components.", "");
+
+
+
+show columns from groups;
+show index from groups;
+
+
+# Check for bad bit values.
+
+select "*** Bad bit value", bit from groups where bit != pow(2, round(log(bit) / log(2)));
+
+OK_ALL_DONE