From b74f46a8039ebb62472a48a50139f696e6b6d0c7 Mon Sep 17 00:00:00 2001 From: "lpsolit%gmail.com" <> Date: Wed, 21 Jun 2006 08:05:59 +0000 Subject: [PATCH] =?utf8?q?Bug=20324783:=20The=20chartgroup,=20insidergroup?= =?utf8?q?=20and=20timetrackinggroup=20groups=20in=20editparams.cgi=20shou?= =?utf8?q?ld=20be=20listed=20in=20a=20dropdown=20menu=20-=20Patch=20by=20F?= =?utf8?q?r=C3=A9d=C3=A9ric=20Buclin=20=20r=3DColin=20r?= =?utf8?q?=3Dmkanat=20a=3Dmyk?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- Bugzilla/Config/Common.pm | 12 +++++++++++- Bugzilla/Config/GroupSecurity.pm | 26 ++++++++++++++++++-------- Bugzilla/Group.pm | 3 +-- 3 files changed, 30 insertions(+), 11 deletions(-) diff --git a/Bugzilla/Config/Common.pm b/Bugzilla/Config/Common.pm index 3e6e22a57b..416a878496 100644 --- a/Bugzilla/Config/Common.pm +++ b/Bugzilla/Config/Common.pm @@ -38,10 +38,11 @@ use Socket; use Bugzilla::Util; use Bugzilla::Constants; use Bugzilla::Field; +use Bugzilla::Group; use base qw(Exporter); @Bugzilla::Config::Common::EXPORT = - qw(check_multi check_numeric check_regexp check_url + qw(check_multi check_numeric check_regexp check_url check_group check_sslbase check_priority check_severity check_platform check_opsys check_shadowdb check_urlbase check_webdotbase check_netmask check_user_verify_class check_image_converter @@ -151,6 +152,15 @@ sub check_opsys { return ""; } +sub check_group { + my $group_name = shift; + my $group = new Bugzilla::Group({'name' => $group_name}); + unless (defined $group) { + return "Must be an existing group name"; + } + return ""; +} + sub check_shadowdb { my ($value) = (@_); $value = trim($value); diff --git a/Bugzilla/Config/GroupSecurity.pm b/Bugzilla/Config/GroupSecurity.pm index f1f1ac2a69..4e9e5f51c1 100644 --- a/Bugzilla/Config/GroupSecurity.pm +++ b/Bugzilla/Config/GroupSecurity.pm @@ -34,11 +34,15 @@ package Bugzilla::Config::GroupSecurity; use strict; use Bugzilla::Config::Common; +use Bugzilla::Group; $Bugzilla::Config::GroupSecurity::sortkey = "07"; sub get_param_list { my $class = shift; + + my @group_names = map {$_->name} Bugzilla::Group::get_all_groups(); + my @param_list = ( { name => 'makeproductgroups', @@ -54,22 +58,28 @@ sub get_param_list { { name => 'chartgroup', - type => 't', - default => 'editbugs' + type => 's', + choices => \@group_names, + default => 'editbugs', + checker => \&check_group }, - + { name => 'insidergroup', - type => 't', - default => '' + type => 's', + choices => \@group_names, + default => '', + checker => \&check_group }, { name => 'timetrackinggroup', - type => 't', - default => 'editbugs' + type => 's', + choices => \@group_names, + default => 'editbugs', + checker => \&check_group }, - + { name => 'usevisibilitygroups', type => 'b', diff --git a/Bugzilla/Group.pm b/Bugzilla/Group.pm index 31b031381b..45caf65cce 100644 --- a/Bugzilla/Group.pm +++ b/Bugzilla/Group.pm @@ -25,7 +25,6 @@ use strict; package Bugzilla::Group; -use Bugzilla::Config; use Bugzilla::Util; use Bugzilla::Error; @@ -113,7 +112,7 @@ sub ValidateGroupName { my $dbh = Bugzilla->dbh; my $query = "SELECT id FROM groups " . "WHERE name = ?"; - if (Param('usevisibilitygroups')) { + if (Bugzilla->params->{'usevisibilitygroups'}) { my @visible = (-1); foreach my $user (@users) { $user && push @visible, @{$user->visible_groups_direct}; -- 2.47.2