Commit 6af8aec0 authored by mkanat%bugzilla.org's avatar mkanat%bugzilla.org

Bug 524007: New Hook: object-end_of_create_validators

Patch by Max Kanat-Alexander <mkanat@bugzilla.org> r=dkl, a=mkanat
parent b29c8663
...@@ -605,6 +605,31 @@ A hashref. The set of named parameters passed to C<create>. ...@@ -605,6 +605,31 @@ A hashref. The set of named parameters passed to C<create>.
=back =back
=head2 object-end_of_create_validators
Called at the end of L<Bugzilla::Object/run_create_validators>. You can
use this to run additional validation when creating an object.
If a subclass has overridden C<run_create_validators>, then this usually
happens I<before> the subclass does its custom validation.
Params:
=over
=item C<class>
The name of the class that C<create> was called on. You can check this
like C<< if ($class->isa('Some::Class')) >> in your code, to perform specific
tasks for only certain classes.
=item C<params>
A hashref. The set of named parameters passed to C<create>, modified and
validated by the C<VALIDATORS> specified for the object.
=back
=head2 page-before_template =head2 page-before_template
This is a simple way to add your own pages to Bugzilla. This hooks C<page.cgi>, This is a simple way to add your own pages to Bugzilla. This hooks C<page.cgi>,
......
...@@ -435,6 +435,9 @@ sub run_create_validators { ...@@ -435,6 +435,9 @@ sub run_create_validators {
$field_values{$field} = $value; $field_values{$field} = $value;
} }
Bugzilla::Hook::process('object-end_of_create_validators',
{ class => $class, params => \%field_values });
return \%field_values; return \%field_values;
} }
......
# -*- 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 Example Plugin.
#
# The Initial Developer of the Original Code is ITA Software
# Portions created by the Initial Developer are Copyright (C) 2009
# the Initial Developer. All Rights Reserved.
#
# Contributor(s): Max Kanat-Alexander <mkanat@bugzilla.org>
use strict;
use warnings;
use Bugzilla;
my $args = Bugzilla->hook_args;
my $class = $args->{'class'};
my $params = $args->{'params'};
# Note that this is a made-up class, for this example.
if ($class->isa('Bugzilla::ExampleObject')) {
# Always set example_field to 1, even if the validators said otherwise.
$params->{example_field} = 1;
}
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