]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 324783: The chartgroup, insidergroup and timetrackinggroup groups in editparams...
authorlpsolit%gmail.com <>
Wed, 21 Jun 2006 08:05:59 +0000 (08:05 +0000)
committerlpsolit%gmail.com <>
Wed, 21 Jun 2006 08:05:59 +0000 (08:05 +0000)
Bugzilla/Config/Common.pm
Bugzilla/Config/GroupSecurity.pm
Bugzilla/Group.pm

index 3e6e22a57b00b2294c9eb9d5f1d7a943c34484fb..416a8784961e29adc447c37fa2798271fd62fc9f 100644 (file)
@@ -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);
index f1f1ac2a69cf9e89e3e7f648cb1eeaf03726ab03..4e9e5f51c154e7fe719da3851ba85ca102ad39af 100644 (file)
@@ -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',
index 31b031381b5c577f93deda478eb64d16734cb6cd..45caf65cceb3feb94cbd806d6598dd7d17c2b662 100644 (file)
@@ -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};