diff options
Diffstat (limited to 'Bugzilla/Config/GroupSecurity.pm')
-rw-r--r-- | Bugzilla/Config/GroupSecurity.pm | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/Bugzilla/Config/GroupSecurity.pm b/Bugzilla/Config/GroupSecurity.pm new file mode 100644 index 000000000..f7f717379 --- /dev/null +++ b/Bugzilla/Config/GroupSecurity.pm @@ -0,0 +1,102 @@ +# -*- Mode: perl; indent-tabs-mode: nil -*- +# +# 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): Terry Weissman <terry@mozilla.org> +# Dawn Endico <endico@mozilla.org> +# Dan Mosedale <dmose@mozilla.org> +# Joe Robins <jmrobins@tgix.com> +# Jacob Steenhagen <jake@bugzilla.org> +# J. Paul Reed <preed@sigkill.com> +# Bradley Baetz <bbaetz@student.usyd.edu.au> +# Joseph Heenan <joseph@heenan.me.uk> +# Erik Stambaugh <erik@dasbistro.com> +# Frédéric Buclin <LpSolit@gmail.com> +# + +package Bugzilla::Config::GroupSecurity; + +use strict; + +use Bugzilla::Config::Common; +use Bugzilla::Group; + +our $sortkey = 900; + +sub get_param_list { + my $class = shift; + + my @param_list = ( + { + name => 'makeproductgroups', + type => 'b', + default => 0 + }, + + { + name => 'chartgroup', + type => 's', + choices => \&_get_all_group_names, + default => 'editbugs', + checker => \&check_group + }, + + { + name => 'insidergroup', + type => 's', + choices => \&_get_all_group_names, + default => '', + checker => \&check_group + }, + + { + name => 'timetrackinggroup', + type => 's', + choices => \&_get_all_group_names, + default => 'editbugs', + checker => \&check_group + }, + + { + name => 'querysharegroup', + type => 's', + choices => \&_get_all_group_names, + default => 'editbugs', + checker => \&check_group + }, + + { + name => 'usevisibilitygroups', + type => 'b', + default => 0 + }, + + { + name => 'strict_isolation', + type => 'b', + default => 0 + } ); + return @param_list; +} + +sub _get_all_group_names { + my @group_names = map {$_->name} Bugzilla::Group->get_all; + unshift(@group_names, ''); + return \@group_names; +} +1; |