diff options
Diffstat (limited to 'extensions/RestrictComments')
-rw-r--r-- | extensions/RestrictComments/Config.pm | 2 | ||||
-rw-r--r-- | extensions/RestrictComments/Extension.pm | 98 | ||||
-rw-r--r-- | extensions/RestrictComments/lib/Config.pm | 40 |
3 files changed, 71 insertions, 69 deletions
diff --git a/extensions/RestrictComments/Config.pm b/extensions/RestrictComments/Config.pm index be703bed7..eb99e5a94 100644 --- a/extensions/RestrictComments/Config.pm +++ b/extensions/RestrictComments/Config.pm @@ -11,7 +11,7 @@ use 5.10.1; use strict; use warnings; -use constant NAME => 'RestrictComments'; +use constant NAME => 'RestrictComments'; use constant REQUIRED_MODULES => []; use constant OPTIONAL_MODULES => []; diff --git a/extensions/RestrictComments/Extension.pm b/extensions/RestrictComments/Extension.pm index e93540d5a..83075ac23 100644 --- a/extensions/RestrictComments/Extension.pm +++ b/extensions/RestrictComments/Extension.pm @@ -17,84 +17,86 @@ use Bugzilla::Constants; use Bugzilla::Util qw(i_am_webservice); BEGIN { - *Bugzilla::Bug::restrict_comments = \&_bug_restrict_comments; + *Bugzilla::Bug::restrict_comments = \&_bug_restrict_comments; } sub _bug_restrict_comments { - my ($self) = @_; - return $self->{restrict_comments}; + my ($self) = @_; + return $self->{restrict_comments}; } sub bug_check_can_change_field { - my ($self, $args) = @_; - my ($bug, $priv_results) = @$args{qw(bug priv_results)}; - my $user = Bugzilla->user; - - if ($user->id - && $bug->restrict_comments - && !$user->in_group(Bugzilla->params->{'restrict_comments_group'})) - { - push(@$priv_results, PRIVILEGES_REQUIRED_EMPOWERED); - return; - } + my ($self, $args) = @_; + my ($bug, $priv_results) = @$args{qw(bug priv_results)}; + my $user = Bugzilla->user; + + if ( $user->id + && $bug->restrict_comments + && !$user->in_group(Bugzilla->params->{'restrict_comments_group'})) + { + push(@$priv_results, PRIVILEGES_REQUIRED_EMPOWERED); + return; + } } sub _can_restrict_comments { - my ($self, $object) = @_; - return unless $object->isa('Bugzilla::Bug'); - $self->{setter_group} ||= Bugzilla->params->{'restrict_comments_enable_group'}; - return Bugzilla->user->in_group($self->{setter_group}); + my ($self, $object) = @_; + return unless $object->isa('Bugzilla::Bug'); + $self->{setter_group} ||= Bugzilla->params->{'restrict_comments_enable_group'}; + return Bugzilla->user->in_group($self->{setter_group}); } sub object_end_of_set_all { - my ($self, $args) = @_; - my $object = $args->{object}; - my $input = Bugzilla->input_params; - my $update_restrict_comments = !i_am_webservice() || exists $input->{restrict_comments}; - if ($update_restrict_comments && $self->_can_restrict_comments($object)) { - $object->set('restrict_comments', $input->{restrict_comments} ? 1 : undef); - } + my ($self, $args) = @_; + my $object = $args->{object}; + my $input = Bugzilla->input_params; + my $update_restrict_comments + = !i_am_webservice() || exists $input->{restrict_comments}; + if ($update_restrict_comments && $self->_can_restrict_comments($object)) { + $object->set('restrict_comments', $input->{restrict_comments} ? 1 : undef); + } } sub object_update_columns { - my ($self, $args) = @_; - my ($object, $columns) = @$args{qw(object columns)}; - if ($self->_can_restrict_comments($object)) { - push(@$columns, 'restrict_comments'); - } + my ($self, $args) = @_; + my ($object, $columns) = @$args{qw(object columns)}; + if ($self->_can_restrict_comments($object)) { + push(@$columns, 'restrict_comments'); + } } sub object_columns { - my ($self, $args) = @_; - my ($class, $columns) = @$args{qw(class columns)}; - if ($class->isa('Bugzilla::Bug')) { - if (Bugzilla->dbh->bz_column_info($class->DB_TABLE, 'restrict_comments')) { - push @$columns, 'restrict_comments'; - } + my ($self, $args) = @_; + my ($class, $columns) = @$args{qw(class columns)}; + if ($class->isa('Bugzilla::Bug')) { + if (Bugzilla->dbh->bz_column_info($class->DB_TABLE, 'restrict_comments')) { + push @$columns, 'restrict_comments'; } + } } sub bug_fields { - my ($self, $args) = @_; - my $fields = $args->{'fields'}; - push (@$fields, 'restrict_comments') + my ($self, $args) = @_; + my $fields = $args->{'fields'}; + push(@$fields, 'restrict_comments'); } sub config_add_panels { - my ($self, $args) = @_; - my $modules = $args->{panel_modules}; - $modules->{RestrictComments} = "Bugzilla::Extension::RestrictComments::Config"; + my ($self, $args) = @_; + my $modules = $args->{panel_modules}; + $modules->{RestrictComments} = "Bugzilla::Extension::RestrictComments::Config"; } sub install_update_db { - my $dbh = Bugzilla->dbh; + my $dbh = Bugzilla->dbh; - my $field = new Bugzilla::Field({ name => 'restrict_comments' }); - if (!$field) { - Bugzilla::Field->create({ name => 'restrict_comments', description => 'Restrict Comments' }); - } + my $field = new Bugzilla::Field({name => 'restrict_comments'}); + if (!$field) { + Bugzilla::Field->create( + {name => 'restrict_comments', description => 'Restrict Comments'}); + } - $dbh->bz_add_column('bugs', 'restrict_comments', { TYPE => 'BOOLEAN' }); + $dbh->bz_add_column('bugs', 'restrict_comments', {TYPE => 'BOOLEAN'}); } __PACKAGE__->NAME; diff --git a/extensions/RestrictComments/lib/Config.pm b/extensions/RestrictComments/lib/Config.pm index e5dbc518c..c1f9829f9 100644 --- a/extensions/RestrictComments/lib/Config.pm +++ b/extensions/RestrictComments/lib/Config.pm @@ -17,26 +17,26 @@ use Bugzilla::Group; our $sortkey = 510; sub get_param_list { - my ($class) = @_; - - my @param_list = ( - { - name => 'restrict_comments_group', - type => 's', - choices => \&get_all_group_names, - default => '', - checker => \&check_group - }, - { - name => 'restrict_comments_enable_group', - type => 's', - choices => \&get_all_group_names, - default => '', - checker => \&check_group - }, - ); - - return @param_list; + my ($class) = @_; + + my @param_list = ( + { + name => 'restrict_comments_group', + type => 's', + choices => \&get_all_group_names, + default => '', + checker => \&check_group + }, + { + name => 'restrict_comments_enable_group', + type => 's', + choices => \&get_all_group_names, + default => '', + checker => \&check_group + }, + ); + + return @param_list; } 1; |