Commit b74f46a8 authored by lpsolit%gmail.com's avatar lpsolit%gmail.com

Bug 324783: The chartgroup, insidergroup and timetrackinggroup groups in…

Bug 324783: The chartgroup, insidergroup and timetrackinggroup groups in editparams.cgi should be listed in a dropdown menu - Patch by Frédéric Buclin <LpSolit@gmail.com> r=Colin r=mkanat a=myk
parent c4111734
...@@ -38,10 +38,11 @@ use Socket; ...@@ -38,10 +38,11 @@ use Socket;
use Bugzilla::Util; use Bugzilla::Util;
use Bugzilla::Constants; use Bugzilla::Constants;
use Bugzilla::Field; use Bugzilla::Field;
use Bugzilla::Group;
use base qw(Exporter); use base qw(Exporter);
@Bugzilla::Config::Common::EXPORT = @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_sslbase check_priority check_severity check_platform
check_opsys check_shadowdb check_urlbase check_webdotbase check_opsys check_shadowdb check_urlbase check_webdotbase
check_netmask check_user_verify_class check_image_converter check_netmask check_user_verify_class check_image_converter
...@@ -151,6 +152,15 @@ sub check_opsys { ...@@ -151,6 +152,15 @@ sub check_opsys {
return ""; 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 { sub check_shadowdb {
my ($value) = (@_); my ($value) = (@_);
$value = trim($value); $value = trim($value);
......
...@@ -34,11 +34,15 @@ package Bugzilla::Config::GroupSecurity; ...@@ -34,11 +34,15 @@ package Bugzilla::Config::GroupSecurity;
use strict; use strict;
use Bugzilla::Config::Common; use Bugzilla::Config::Common;
use Bugzilla::Group;
$Bugzilla::Config::GroupSecurity::sortkey = "07"; $Bugzilla::Config::GroupSecurity::sortkey = "07";
sub get_param_list { sub get_param_list {
my $class = shift; my $class = shift;
my @group_names = map {$_->name} Bugzilla::Group::get_all_groups();
my @param_list = ( my @param_list = (
{ {
name => 'makeproductgroups', name => 'makeproductgroups',
...@@ -54,22 +58,28 @@ sub get_param_list { ...@@ -54,22 +58,28 @@ sub get_param_list {
{ {
name => 'chartgroup', name => 'chartgroup',
type => 't', type => 's',
default => 'editbugs' choices => \@group_names,
default => 'editbugs',
checker => \&check_group
}, },
{ {
name => 'insidergroup', name => 'insidergroup',
type => 't', type => 's',
default => '' choices => \@group_names,
default => '',
checker => \&check_group
}, },
{ {
name => 'timetrackinggroup', name => 'timetrackinggroup',
type => 't', type => 's',
default => 'editbugs' choices => \@group_names,
default => 'editbugs',
checker => \&check_group
}, },
{ {
name => 'usevisibilitygroups', name => 'usevisibilitygroups',
type => 'b', type => 'b',
......
...@@ -25,7 +25,6 @@ use strict; ...@@ -25,7 +25,6 @@ use strict;
package Bugzilla::Group; package Bugzilla::Group;
use Bugzilla::Config;
use Bugzilla::Util; use Bugzilla::Util;
use Bugzilla::Error; use Bugzilla::Error;
...@@ -113,7 +112,7 @@ sub ValidateGroupName { ...@@ -113,7 +112,7 @@ sub ValidateGroupName {
my $dbh = Bugzilla->dbh; my $dbh = Bugzilla->dbh;
my $query = "SELECT id FROM groups " . my $query = "SELECT id FROM groups " .
"WHERE name = ?"; "WHERE name = ?";
if (Param('usevisibilitygroups')) { if (Bugzilla->params->{'usevisibilitygroups'}) {
my @visible = (-1); my @visible = (-1);
foreach my $user (@users) { foreach my $user (@users) {
$user && push @visible, @{$user->visible_groups_direct}; $user && push @visible, @{$user->visible_groups_direct};
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment