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
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);
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',
{
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',
package Bugzilla::Group;
-use Bugzilla::Config;
use Bugzilla::Util;
use Bugzilla::Error;
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};