From bf31ed90b18bc314596838dc17485325de1c4406 Mon Sep 17 00:00:00 2001
From: "jocuri%softhome.net" \n";
- PutFooter();
- exit;
-}
+ThrowUserError("auth_cant_edit_groups") unless UserInGroup("creategroups");
-my $action = trim($::FORM{action} || '');
+my $action = trim($cgi->param('action') || '');
# RederiveRegexp: update user_group_map with regexp-based grants
sub RederiveRegexp ($$)
@@ -85,108 +80,40 @@ sub TestGroup ($)
return FetchOneColumn();
}
-sub ShowError ($)
-{
- my $msgtext = shift;
- print " ";
- return 1;
-}
-
-#
-# Displays a text like "a.", "a or b.", "a, b or c.", "a, b, c or d."
-#
-
-sub PutTrailer (@)
-{
- my (@links) = ("Back to the index", @_);
-
- my $count = $#links;
- my $num = 0;
- print " \n";
- foreach (@links) {
- print $_;
- if ($num == $count) {
- print ".\n";
- }
- elsif ($num == $count-1) {
- print " or ";
- }
- else {
- print ", ";
- }
- $num++;
- }
- PutFooter();
-}
-
#
# action='' -> No action specified, get a list.
#
unless ($action) {
- PutHeader("Edit Groups","Edit Groups","This lets you edit the groups available to put users in.");
-
- print " ";
- print "Name is what is used with the UserInGroup() function in any
-customized cgi files you write that use a given group. It can also be used by
-people submitting bugs by email to limit a bug to a certain set of groups. ";
- print "Description is what will be shown in the bug reports to
-members of the group where they can choose whether the bug will be restricted
-to others in the same group. ";
- print "User RegExp is optional, and if filled in, will automatically
-grant membership to this group to anyone with an
-email address that matches this perl regular expression. Do not forget the trailing \'\$\'. Example \'\@mycompany\\.com\$\' ";
- print "The Use For Bugs flag determines whether or not the group is eligible to be used for bugs.
-If you remove this flag, it will no longer be possible for users to add bugs
-to this group, although bugs already in the group will remain in the group.
-Doing so is a much less drastic way to stop a group from growing
-than deleting the group as well as a way to maintain lists of users without cluttering the lists of groups used for bug restrictions. ";
- print "The Type field identifies system groups. ";
+ $vars->{'groups'} = \@groups;
+
+ print Bugzilla->cgi->header();
+ $template->process("admin/groups/list.html.tmpl", $vars)
+ || ThrowTemplateError($template->error());
- PutFooter();
exit;
}
-#
#
# action='changeform' -> present form for altering an existing group
#
@@ -194,75 +121,21 @@ than deleting the group as well as a way to maintain lists of users without clut
#
if ($action eq 'changeform') {
- PutHeader("Change Group");
-
- my $gid = trim($::FORM{group} || '');
+ my $gid = trim($cgi->param('group') || '');
+ ThrowUserError("group_not_specified") unless ($gid);
detaint_natural($gid);
- unless ($gid) {
- ShowError("No group specified. \n";
- PutTrailer("add another group",
- "back to the group list");
+
+ print Bugzilla->cgi->header();
+ $template->process("admin/groups/created.html.tmpl", $vars)
+ || ThrowTemplateError($template->error());
exit;
}
@@ -422,96 +266,58 @@ if ($action eq 'new') {
#
if ($action eq 'del') {
- PutHeader("Delete group");
- my $gid = trim($::FORM{group} || '');
+ my $gid = trim($cgi->param('group') || '');
+ ThrowUserError("group_not_specified") unless ($gid);
detaint_natural($gid);
- unless ($gid) {
- ShowError("No group specified. \n";
- }
- confirmRemove(0,$gid);
- PutFooter();
- exit;
- } elsif ($::FORM{remove_explicit_members_regexp}) {
- PutHeader("Confirm: Remove Explicit Members in the Regular Expression?");
- my ($gid, $chgs, $rexp) = doGroupChanges();
- print " \n";
- }
- confirmRemove(1, $gid, $rexp);
- PutFooter();
- exit;
+ my $action;
+
+ if ($cgi->param('remove_explicit_members')) {
+ $action = 1;
+ } elsif ($cgi->param('remove_explicit_members_regexp')) {
+ $action = 2;
+ } else {
+ $action = 3;
}
- # if we got this far, the admin doesn't want to convert, so just save their changes
-
- PutHeader("Updating group hierarchy");
my ($gid, $chgs) = doGroupChanges();
- if (!$chgs) {
- print "You didn't change anything! \n";
- } else {
- print "Done. \n";
+ $vars->{'action'} = $action;
+ $vars->{'changes'} = $chgs;
+ $vars->{'gid'} = $gid;
+ $vars->{'name'} = $cgi->param('name');
+ if ($action == 2) {
+ $vars->{'regexp'} = $cgi->param("rexp");
}
- PutTrailer("back to the group list");
+
+ print Bugzilla->cgi->header();
+ $template->process("admin/groups/change.html.tmpl", $vars)
+ || ThrowTemplateError($template->error());
exit;
}
if (($action eq 'remove_all_regexp') || ($action eq 'remove_all')) {
- # remove all explicit users from the group with gid $::FORM{group}
- # that match the regexp stored in the db for that group
+ # remove all explicit users from the group with gid $cgi->param('group')
+ # that match the regexp stored in the DB for that group
# or all of them period
- my $dbh = Bugzilla->dbh;
- my $gid = $::FORM{group};
+
+ my $gid = $cgi->param('group');
+ ThrowUserError("group_not_specified") unless ($gid);
detaint_natural($gid);
+
+ my $dbh = Bugzilla->dbh;
my $sth = $dbh->prepare("SELECT name, userregexp FROM groups
WHERE id = ?");
$sth->execute($gid);
my ($name, $regexp) = $sth->fetchrow_array();
- if ($action eq 'remove_all_regexp') {
- PutHeader("Removing All Explicit Group Memberships Matching "
- . "Group RegExp from \'" . html_quote($name) . "\'");
- } else {
- PutHeader("Removing All Explicit Group Memberships from \'"
- . html_quote($name) . "\'");
- }
$dbh->do("LOCK TABLES
groups WRITE,
profiles READ,
@@ -653,157 +432,115 @@ if (($action eq 'remove_all_regexp') || ($action eq 'remove_all')) {
AND grant_type = ?
AND isbless = 0");
$sth->execute($gid, GRANT_DIRECT);
+
+ my @users;
my $sth2 = $dbh->prepare("DELETE FROM user_group_map
WHERE user_id = ?
AND isbless = 0
AND group_id = ?");
- if ($action eq 'remove_all_regexp') {
- print " \n";
- print "return to the Edit Groups page\n";
- return;
- }
- print "from group $::FORM{name}. \n";
- print "Generally, you will only need to do this when upgrading groups ";
- print "created with Bugzilla versions 2.16 and prior. Use this option ";
- print "with extreme care and consult the Bugzilla Guide for ";
- print "further information. \n";
-
- print "
+ Checking....
+
+ [% IF changes %]
+ changed.
+ [% END %]
+ Group updated, please confirm removal: This option will remove all explicitly defined users
+ [% ELSIF regexp %]
+ This option will remove all users included in the regular expression:
+ [% regexp FILTER html %]
+ [% ELSE %]
+
+ There is no regular expression defined.
+ No users will be removed.
+ Sorry, you aren't a member of the 'creategroups' group.
\n";
- print "And so, you aren't allowed to edit the groups.\n";
- print "";
- print "$msgtext";
- print " \n";
- print "
\n";
- print "";
- print " \n";
+ my @groups;
SendSQL("SELECT id,name,description,userregexp,isactive,isbuggroup " .
"FROM groups " .
"ORDER BY isbuggroup, name");
while (MoreSQLData()) {
- my ($groupid, $name, $desc, $regexp, $isactive, $isbuggroup) = FetchSQLData();
- print "Name ";
- print "Description ";
- print "User RegExp ";
- print "Use For Bugs ";
- print "Type ";
- print "Action ";
- print "\n";
- print " \n";
+ my ($id, $name, $description, $regexp, $isactive, $isbuggroup)
+ = FetchSQLData();
+ my $group = {};
+ $group->{'id'} = $id;
+ $group->{'name'} = $name;
+ $group->{'description'} = $description;
+ $group->{'regexp'} = $regexp;
+ $group->{'isactive'} = $isactive;
+ $group->{'isbuggroup'} = $isbuggroup;
+
+ push(@groups, $group);
}
- print "" . html_quote($name) . " \n";
- print "" . html_quote($desc) . " \n";
- print "" . html_quote($regexp) . "  \n";
- print "";
- print "X" if (($isactive != 0) && ($isbuggroup != 0));
- print "  \n";
- print "   ";
- print (($isbuggroup == 0 ) ? "system" : "user");
- print "  \n";
- print "
- Edit";
- print " | Delete" if ($isbuggroup != 0);
- print " \n";
- print " \n";
- print "\n";
- print " Add Group \n";
- print "
" .
- "Click the Back button and try again.");
- PutFooter();
- exit;
- }
SendSQL("SELECT id, name, description, userregexp, isactive, isbuggroup
- FROM groups WHERE id=$gid");
+ FROM groups WHERE id = $gid");
my ($group_id, $name, $description, $rexp, $isactive, $isbuggroup)
= FetchSQLData();
- print "
" .
- "Please click the Back button and try again.");
- PutFooter();
- exit;
- }
- unless ($desc) {
- ShowError("You must enter a description for the new group.
" .
- "Please click the Back button and try again.");
- PutFooter();
- exit;
- }
if (TestGroup($name)) {
- ShowError("The group '" . $name . "' already exists.
" .
- "Please click the Back button and try again.");
- PutFooter();
- exit;
+ ThrowUserError("group_exists", { name => $name });
}
- if (!eval {qr/$regexp/}) {
- ShowError("The regular expression you entered is invalid. " .
- "Please click the Back button and try again.");
- PutFooter();
- exit;
- }
+ ThrowUserError("invalid_regexp") unless (eval {qr/$regexp/});
+
+ # We use SqlQuote and FILTER html on name, description and regexp.
+ # So they are safe to be detaint
+ trick_taint($name);
+ trick_taint($desc);
+ trick_taint($regexp);
# Add the new group
SendSQL("INSERT INTO groups ( " .
@@ -399,7 +242,7 @@ if ($action eq 'new') {
SendSQL("INSERT INTO group_group_map (member_id, grantor_id, isbless)
VALUES ($admin, $gid, 1)");
# Permit all existing products to use the new group if makeproductgroups.
- if ($::FORM{insertnew}) {
+ if ($cgi->param('insertnew')) {
SendSQL("INSERT INTO group_control_map " .
"(group_id, product_id, entry, membercontrol, " .
"othercontrol, canedit) " .
@@ -409,9 +252,10 @@ if ($action eq 'new') {
"FROM products");
}
RederiveRegexp($regexp, $gid);
- print "OK, done.
" .
- "Click the Back button and try again.");
- PutFooter();
- exit;
- }
+
SendSQL("SELECT id FROM groups WHERE id=$gid");
- if (!FetchOneColumn()) {
- ShowError("That group doesn't exist.
" .
- "Click the Back button and try again.");
- PutFooter();
- exit;
- }
+ ThrowUserError("invalid_group_ID") unless FetchOneColumn();
+
SendSQL("SELECT name,description " .
"FROM groups " .
- "WHERE id=$gid");
+ "WHERE id = $gid");
my ($name, $desc) = FetchSQLData();
- print "\n";
- print "
\n";
- print "";
+ $vars->{'gid'} = $gid;
+ $vars->{'name'} = $name;
+ $vars->{'description'} = $desc;
+ $vars->{'hasusers'} = $hasusers;
+ $vars->{'hasbugs'} = $hasbugs;
+ $vars->{'hasproduct'} = $hasproduct;
+ $vars->{'buglist'} = $buglist;
- PutTrailer("No, go back to the group list");
+ print Bugzilla->cgi->header();
+ $template->process("admin/groups/delete.html.tmpl", $vars)
+ || ThrowTemplateError($template->error());
+
exit;
}
@@ -520,18 +326,11 @@ You cannot delete this group while it is tied to a product.";
- print " \n";
- print "Id ";
- print "Name ";
- print "Description ";
- print "\n";
- print " \n";
- print "$gid \n";
- print "$name \n";
- print "$desc \n";
- print "
#
if ($action eq 'delete') {
- PutHeader("Deleting group");
- my $gid = trim($::FORM{group} || '');
+ my $gid = trim($cgi->param('group') || '');
+ ThrowUserError("group_not_specified") unless ($gid);
detaint_natural($gid);
- unless ($gid) {
- ShowError("No group specified.
" .
- "Click the Back button and try again.");
- PutFooter();
- exit;
- }
- SendSQL("SELECT name " .
- "FROM groups " .
- "WHERE id = $gid");
+
+ SendSQL("SELECT name FROM groups WHERE id = $gid");
my ($name) = FetchSQLData();
my $cantdelete = 0;
@@ -539,43 +338,39 @@ if ($action eq 'delete') {
SendSQL("SELECT user_id FROM user_group_map
WHERE group_id = $gid AND isbless = 0");
if (FetchOneColumn()) {
- if (!defined $::FORM{'removeusers'}) {
- $cantdelete = 1;
- }
+ if (!defined $cgi->param('removeusers')) {
+ $cantdelete = 1;
+ }
}
SendSQL("SELECT bug_id FROM bug_group_map WHERE group_id = $gid");
if (FetchOneColumn()) {
- if (!defined $::FORM{'removebugs'}) {
- $cantdelete = 1;
- }
+ if (!defined $cgi->param('removebugs')) {
+ $cantdelete = 1;
+ }
}
SendSQL("SELECT name FROM products WHERE name=" . SqlQuote($name));
if (FetchOneColumn()) {
- if (!defined $::FORM{'unbind'}) {
- $cantdelete = 1;
- }
+ if (!defined $cgi->param('unbind')) {
+ $cantdelete = 1;
+ }
}
- if ($cantdelete == 1) {
- ShowError("This group cannot be deleted because there are " .
- "records in the database which refer to it. All such records " .
- "must be removed or altered to remove the reference to this " .
- "group before the group can be deleted.");
- print "" .
- "View the list of which records are affected.
";
- PutTrailer("back to the group list");
- exit;
+ if (!$cantdelete) {
+ SendSQL("DELETE FROM user_group_map WHERE group_id = $gid");
+ SendSQL("DELETE FROM group_group_map WHERE grantor_id = $gid");
+ SendSQL("DELETE FROM bug_group_map WHERE group_id = $gid");
+ SendSQL("DELETE FROM group_control_map WHERE group_id = $gid");
+ SendSQL("DELETE FROM groups WHERE id = $gid");
}
- SendSQL("DELETE FROM user_group_map WHERE group_id = $gid");
- SendSQL("DELETE FROM group_group_map WHERE grantor_id = $gid");
- SendSQL("DELETE FROM bug_group_map WHERE group_id = $gid");
- SendSQL("DELETE FROM group_control_map WHERE group_id = $gid");
- SendSQL("DELETE FROM groups WHERE id = $gid");
- print "Group $gid has been deleted.
";
+ $vars->{'gid'} = $gid;
+ $vars->{'name'} = $name;
+ $vars->{'cantdelete'} = $cantdelete;
+ print Bugzilla->cgi->header();
+ $template->process("admin/groups/deleted.html.tmpl", $vars)
+ || ThrowTemplateError($template->error());
- PutTrailer("back to the group list");
exit;
}
@@ -584,64 +379,48 @@ if ($action eq 'delete') {
#
if ($action eq 'postchanges') {
-
# ZLL: Bug 181589: we need to have something to remove explictly listed users from
# groups in order for the conversion to 2.18 groups to work
- if ($::FORM{remove_explicit_members}) {
- PutHeader("Confirm: Remove All Explicit Members?");
- my ($gid, $chgs) = doGroupChanges();
- print "
\n";
- if ($chgs) {
- print "Group updated, please confirm removal:
\n";
- if ($chgs) {
- print "Group updated, please confirm removal:
\n";
- print "If you really meant it, hit the Back button and try again.
Removing explicit memberships of users matching \'"
- . html_quote($regexp) . "\'...
\n";
- } else {
- print "
Removing explicit membership
\n";
- }
while ( my ($userid, $userlogin) = $sth->fetchrow_array() ) {
if ((($regexp =~ /\S/) && ($userlogin =~ m/$regexp/i))
|| ($action eq 'remove_all'))
{
$sth2->execute($userid,$gid);
- print html_quote($userlogin) . " removed
\n";
+
+ my $user = {};
+ $user->{'login'} = $userlogin;
+ push(@users, $user);
}
}
- print "
Done
";
$sth = $dbh->prepare("UPDATE groups
SET last_changed = NOW()
WHERE id = ?");
$sth->execute($gid);
$dbh->do("UNLOCK TABLES");
- PutTrailer("back to the group list");
+
+ $vars->{'users'} = \@users;
+ $vars->{'name'} = $name;
+ $vars->{'regexp'} = $regexp;
+ $vars->{'remove_all'} = ($action eq 'remove_all');
+ $vars->{'gid'} = $gid;
+
+ print Bugzilla->cgi->header();
+ $template->process("admin/groups/remove.html.tmpl", $vars)
+ || ThrowTemplateError($template->error());
+
exit;
}
-
-
#
# No valid action found
#
-PutHeader("Error");
-print "I don't have a clue what you want.
\n";
+ThrowCodeError("action_unrecognized", $vars);
-PutTrailer("Try the group list");
-
-# confirm if the user wants to remove the explicit users
-sub confirmRemove {
- my ($remove_regexp_only, $group, $regexp) = @_;
-
- if (!$remove_regexp_only) {
- print "This option will remove ";
- print "all explicitly defined users ";
- } elsif ($regexp =~ /\S/) {
- print "This option will remove ";
- print "all users included in the regular expression: " .
- html_quote($regexp) . " ";
- } else {
- print "There is no regular expression defined.\n";
- print "No users will be removed
" .
- "Click the Back button and try again.");
- PutFooter();
- exit;
- }
+
SendSQL("SELECT isbuggroup FROM groups WHERE id = $gid");
my ($isbuggroup) = FetchSQLData();
my $chgs = 0;
- if (($isbuggroup == 1) && ($::FORM{"oldname"} ne $::FORM{"name"})) {
+
+ if (($isbuggroup == 1) && ($cgi->param('oldname') ne $cgi->param("name"))) {
$chgs = 1;
SendSQL("UPDATE groups SET name = " .
- SqlQuote($::FORM{"name"}) . " WHERE id = $gid");
+ SqlQuote($cgi->param("name")) . " WHERE id = $gid");
}
- if (($isbuggroup == 1) && ($::FORM{"olddesc"} ne $::FORM{"desc"})) {
+ if (($isbuggroup == 1) && ($cgi->param('olddesc') ne $cgi->param("desc"))) {
$chgs = 1;
SendSQL("UPDATE groups SET description = " .
- SqlQuote($::FORM{"desc"}) . " WHERE id = $gid");
+ SqlQuote($cgi->param("desc")) . " WHERE id = $gid");
}
- if ($::FORM{"oldrexp"} ne $::FORM{"rexp"}) {
+ if ($cgi->param("oldrexp") ne $cgi->param("rexp")) {
$chgs = 1;
- if (!eval {qr/$::FORM{"rexp"}/}) {
- ShowError("The regular expression you entered is invalid. " .
- "Please click the Back button and try again.");
- PutFooter();
- exit;
- }
+
+ my $rexp = $cgi->param('rexp');
+ ThrowUserError("invalid_regexp") unless (eval {qr/$rexp/});
+
SendSQL("UPDATE groups SET userregexp = " .
- SqlQuote($::FORM{"rexp"}) . " WHERE id = $gid");
+ SqlQuote($rexp) . " WHERE id = $gid");
RederiveRegexp($::FORM{"rexp"}, $gid);
}
- if (($isbuggroup == 1) && ($::FORM{"oldisactive"} ne $::FORM{"isactive"})) {
+ if (($isbuggroup == 1) && ($cgi->param("oldisactive") ne $cgi->param("isactive"))) {
$chgs = 1;
SendSQL("UPDATE groups SET isactive = " .
- SqlQuote($::FORM{"isactive"}) . " WHERE id = $gid");
+ SqlQuote($cgi->param("isactive")) . " WHERE id = $gid");
}
-
- print "Checking....";
- foreach my $b (grep(/^oldgrp-\d*$/, keys %::FORM)) {
- if (defined($::FORM{$b})) {
- my $v = substr($b, 7);
- my $grp = $::FORM{"grp-$v"} || 0;
- if ($::FORM{"oldgrp-$v"} != $grp) {
+
+ foreach my $b (grep {/^oldgrp-\d*$/} $cgi->param()) {
+ if (defined($cgi->param($b))) {
+ $b =~ /^oldgrp-(\d+)$/;
+ my $v = $1;
+ my $grp = $cgi->param("grp-$v") || 0;
+ if ($cgi->param("oldgrp-$v") != $grp) {
$chgs = 1;
- print "changed";
if ($grp != 0) {
- print " set ";
SendSQL("INSERT INTO group_group_map
(member_id, grantor_id, isbless)
VALUES ($v, $gid, 0)");
} else {
- print " cleared ";
SendSQL("DELETE FROM group_group_map
WHERE member_id = $v AND grantor_id = $gid
AND isbless = 0");
}
}
- my $bless = $::FORM{"bless-$v"} || 0;
- if ($::FORM{"oldbless-$v"} != $bless) {
+ my $bless = $cgi->param("bless-$v") || 0;
+ if ($cgi->param("oldbless-$v") != $bless) {
$chgs = 1;
- print "changed";
if ($bless != 0) {
- print " set ";
SendSQL("INSERT INTO group_group_map
(member_id, grantor_id, isbless)
VALUES ($v, $gid, 1)");
} else {
- print " cleared ";
SendSQL("DELETE FROM group_group_map
WHERE member_id = $v AND grantor_id = $gid
AND isbless = 1");
@@ -817,5 +554,5 @@ sub doGroupChanges {
# mark the changes
SendSQL("UPDATE groups SET last_changed = NOW() WHERE id = $gid");
}
- return $gid, $chgs, $::FORM{"rexp"};
+ return $gid, $chgs;
}
diff --git a/webtools/bugzilla/template/en/default/admin/groups/change.html.tmpl b/webtools/bugzilla/template/en/default/admin/groups/change.html.tmpl
new file mode 100644
index 00000000000..c2f2c8f9f67
--- /dev/null
+++ b/webtools/bugzilla/template/en/default/admin/groups/change.html.tmpl
@@ -0,0 +1,111 @@
+[%# 1.0@bugzilla.org %]
+[%# The contents of this file are subject to the Mozilla Public
+ # License Version 1.1 (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): Dave Miller
+ Generally, you will only need to do this when upgrading groups + created with [% terms.Bugzilla %] versions 2.16 and prior. Use + this option with extreme care and consult the documentation + for further information. +
+ + + [% END %] +[% ELSE %] + [%# if we got this far, the admin doesn't want to convert, so just save + # their changes %] + + [% IF changes %] +Done.
+ [% ELSE %] ++ You didn't change anything! If you really meant it, hit the Back + button and try again. +
+ [% END %] + +Back to the group list.
+[% END %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/webtools/bugzilla/template/en/default/admin/groups/create.html.tmpl b/webtools/bugzilla/template/en/default/admin/groups/create.html.tmpl index 239d7f9840d..8da00a7994b 100644 --- a/webtools/bugzilla/template/en/default/admin/groups/create.html.tmpl +++ b/webtools/bugzilla/template/en/default/admin/groups/create.html.tmpl @@ -20,7 +20,10 @@ # Joel PeshkinOK, done.
+ +Add another group or +go back to the group list.
+ +[% PROCESS global/footer.html.tmpl %] diff --git a/webtools/bugzilla/template/en/default/admin/groups/delete.html.tmpl b/webtools/bugzilla/template/en/default/admin/groups/delete.html.tmpl new file mode 100644 index 00000000000..0e17cbb1ccb --- /dev/null +++ b/webtools/bugzilla/template/en/default/admin/groups/delete.html.tmpl @@ -0,0 +1,100 @@ +[%# 1.0@bugzilla.org %] +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (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): Dave MillerId | +Name | +Description | +
---|---|---|
[% gid FILTER html %] | +[% name FILTER html %] | +[% desc FILTER html %] | +
+ This group cannot be deleted because there are records + in the database which refer to it. All such records + must be removed or altered to remove the reference to this + group before the group can be deleted. +
+ ++ View + the list of which records are affected. +
+[% ELSE %] +The group [% name FILTER html %] has been deleted.
+[% END %] + +Go back to the group list.
+
+[% PROCESS global/footer.html.tmpl %]
diff --git a/webtools/bugzilla/template/en/default/admin/groups/edit.html.tmpl b/webtools/bugzilla/template/en/default/admin/groups/edit.html.tmpl
new file mode 100644
index 00000000000..619db777c3b
--- /dev/null
+++ b/webtools/bugzilla/template/en/default/admin/groups/edit.html.tmpl
@@ -0,0 +1,159 @@
+[%# 1.0@bugzilla.org %]
+[%# The contents of this file are subject to the Mozilla Public
+ # License Version 1.1 (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): Dave Miller
Members of these groups can grant membership to this group | +|||
| | +Members of these groups are included in this group | +||
| | +| | ++ | |
+ + + | ++ + + | +[% group.grpnam FILTER html %] | +[% group.grpdesc FILTER html %] | +
+
+ Conversion of groups created with [% terms.Bugzilla %] + versions 2.16 and prior: + +
|
+
Name | +Description | +User RegExp | +Use For [% terms.Bugs %] | +Type | +Action | +
---|---|---|---|---|---|
[% group.name FILTER html %] | +[% group.description FILTER html %] | +[% group.regexp FILTER html %]  | + ++ [% IF (group.isactive != 0) && (group.isbuggroup) %] + X + [% ELSE %] +   + [% END %] + | + ++ [% (group.isbuggroup) ? "user" : "system" %] + | + ++ Edit + [% IF (group.isbuggroup) %] + | Delete + [% END %] + | +
+ | Add Group | +
+ Name is what is used with the UserInGroup() function in any +customized cgi files you write that use a given group. It can also be used +by people submitting [% terms.bugs %] by email to limit [% terms.abug %] +to a certain set of groups. +
+ ++ Description is what will be shown in the [% terms.bug %] reports +to members of the group where they can choose whether the [% terms.bug %] +will be restricted to others in the same group. +
+ ++ User RegExp is optional, and if filled in, will automatically +grant membership to this group to anyone with an email address +that matches this perl regular expression. Do not forget +the trailing '$'. Example '@mycompany\.com$' +
+ ++ The Use For [% terms.Bugs %] flag determines whether or not +the group is eligible to be used for [% terms.bugs %]. If you remove +this flag, it will no longer be possible for users to add [% terms.bugs %] +to this group, although [% terms.bugs %] already in the group will remain +in the group. Doing so is a much less drastic way to stop a group +from growing than deleting the group as well as a way to maintain +lists of users without cluttering the lists of groups used +for [% terms.bug %] restrictions. +
+ ++ The Type field identifies system groups. +
+ +[% PROCESS global/footer.html.tmpl %] diff --git a/webtools/bugzilla/template/en/default/admin/groups/remove.html.tmpl b/webtools/bugzilla/template/en/default/admin/groups/remove.html.tmpl new file mode 100644 index 00000000000..0eed2d9fbee --- /dev/null +++ b/webtools/bugzilla/template/en/default/admin/groups/remove.html.tmpl @@ -0,0 +1,60 @@ +[%# 1.0@bugzilla.org %] +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (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): Dave MillerRemoving explicit membership
+[% ELSE %] +Removing explicit memberships of users matching + '[% regexp FILTER html %]'...
+[% END %] + +[% FOREACH user = users %] + [% user.login FILTER html %] removedDone.
+ +Back to the group list.
+ +[% PROCESS global/footer.html.tmpl %] diff --git a/webtools/bugzilla/template/en/default/global/code-error.html.tmpl b/webtools/bugzilla/template/en/default/global/code-error.html.tmpl index c5233b8e88d..ae47ed34955 100644 --- a/webtools/bugzilla/template/en/default/global/code-error.html.tmpl +++ b/webtools/bugzilla/template/en/default/global/code-error.html.tmpl @@ -61,6 +61,10 @@ The ID[% page_id FILTER html %]
is not a
valid page identifier.
+ [% ELSIF error == "bad_arg" %]
+ Bad argument [% argument FILTER html %]
sent to
+ [% function FILTER html %]
function.
+
[% ELSIF error == "bug_error" %]
Trying to retrieve [% terms.bug %] [%+ bug.bug_id FILTER html %] returned
the error [% bug.error FILTER html %].
@@ -104,10 +108,6 @@
Attempted to add [% terms.bug %] to an inactive group, identified by the bit
'[% bit FILTER html %]'.
- [% ELSIF error == "bad_arg" %]
- Bad argument [% argument FILTER html %]
sent to
- [% function FILTER html %]
function.
-
[% ELSIF error == "invalid_attach_id_to_obsolete" %]
The attachment number of one of the attachments you wanted to obsolete,
[% attach_id FILTER html %], is invalid.
@@ -131,7 +131,12 @@
[% ELSIF error == "invalid_dimensions" %]
[% title = "Invalid Dimensions" %]
The width or height specified is not a positive integer.
-
+
+ [% ELSIF error == "invalid_isactive_flag" %]
+ [% title = "Invalid isactive flag" %]
+ The active flag was improperly set. There may be
+ a problem with [% terms.Bugzilla %] or [% terms.abug %] in your browser.
+
[% ELSIF error == "invalid_series_id" %]
[% title = "Invalid Series" %]
The series_id [% series_id FILTER html %] is not valid. It may be that
diff --git a/webtools/bugzilla/template/en/default/global/user-error.html.tmpl b/webtools/bugzilla/template/en/default/global/user-error.html.tmpl
index e4c9863df72..97987b786b5 100644
--- a/webtools/bugzilla/template/en/default/global/user-error.html.tmpl
+++ b/webtools/bugzilla/template/en/default/global/user-error.html.tmpl
@@ -96,6 +96,11 @@
account creation. Please contact an administrator to get a new account
created.
+ [% ELSIF error == "auth_cant_edit_groups" %]
+ [% title = "Not authorized to edit groups" %]
+ Sorry, you aren't a member of the 'creategroups' group. And so,
+ you aren't allowed to edit the groups.
+
[% ELSIF error == "authorization_failure" %]
[% title = "Authorization Failed" %]
You are not allowed to [% action FILTER html %].
@@ -169,6 +174,14 @@
[% title = "Email Address Confirmation Failed" %]
Email address confirmation failed.
+ [% ELSIF error == "empty_group_description" %]
+ [% title = "The group description can not be empty" %]
+ You must enter a description for the new group.
+
+ [% ELSIF error == "empty_group_name" %]
+ [% title = "The group name can not be empty" %]
+ You must enter a name for the new group.
+
[% ELSIF error == "entry_access_denied" %]
[% title = "Permission Denied" %]
Sorry; you do not have the permissions necessary to enter [% terms.abug %]
@@ -235,7 +248,15 @@
[% title = "Flag Type Sort Key Invalid" %]
The sort key must be an integer between 0 and 32767 inclusive.
It cannot be [% sortkey FILTER html %].
-
+
+ [% ELSIF error == "group_exists" %]
+ [% title = "The group already exists" %]
+ The group [% name FILTER html %] already exists.
+
+ [% ELSIF error == "group_not_specified" %]
+ [% title = "Group not specified" %]
+ No group was specified.
+
[% ELSIF error == "illegal_at_least_x_votes" %]
[% title = "Your Search Makes No Sense" %]
The At least ___ votes field must be a simple number.
@@ -370,6 +391,10 @@
[% END %]
).
+ [% ELSIF error == "invalid_group_ID" %]
+ [% title = "Invalid group ID" %]
+ The group you specified doesn't exist.
+
[% ELSIF error == "invalid_maxrows" %]
[% title = "Invalid Max Rows" %]
The maximum number of rows, '[% maxrows FILTER html %]', must be
@@ -378,7 +403,11 @@
[% ELSIF error == "invalid_product_name" %]
[% title = "Invalid Product Name" %]
The product name '[% product FILTER html %]' is invalid or does not exist.
-
+
+ [% ELSIF error == "invalid_regexp" %]
+ [% title = "Invalid regular expression" %]
+ The regular expression you entered is invalid.
+
[% ELSIF error == "invalid_username" %]
[% title = "Invalid Username" %]
The name [% name FILTER html %] is not a valid username.