summaryrefslogtreecommitdiff
path: root/FS/FS/option_Common.pm
diff options
context:
space:
mode:
authorMike Robinson <miker@freeside.biz>2012-04-27 14:47:57 -0500
committerMike Robinson <miker@freeside.biz>2012-04-27 14:47:57 -0500
commit03dc5996825a284a3bb922324402730f9f2e404f (patch)
tree7a08b61ef981b0dc37b7cdac2bd1954bb2126589 /FS/FS/option_Common.pm
parentd54109cc3035ce63ab0f6c2ec94317e378887d49 (diff)
Netsapiens export; check URLs for validity. (#14919)
A new "check_options()" subroutine is added to option_Common.pm which is called by "insert" and "replace." (Do-nothing routine provided, designed to be overridden.) A "real" implementation is provided in netsapiens.pm.
Diffstat (limited to 'FS/FS/option_Common.pm')
-rw-r--r--FS/FS/option_Common.pm37
1 files changed, 35 insertions, 2 deletions
diff --git a/FS/FS/option_Common.pm b/FS/FS/option_Common.pm
index 968dcdf..b29cf44 100644
--- a/FS/FS/option_Common.pm
+++ b/FS/FS/option_Common.pm
@@ -65,7 +65,15 @@ sub insert {
local $FS::UID::AutoCommit = 0;
my $dbh = dbh;
- my $error = $self->SUPER::insert;
+ my $error;
+
+ $error = $self->check_options($options);
+ if ( $error ) {
+ $dbh->rollback if $oldAutoCommit;
+ return $error;
+ }
+
+ $error = $self->SUPER::insert;
if ( $error ) {
$dbh->rollback if $oldAutoCommit;
return $error;
@@ -197,7 +205,17 @@ sub replace {
local $FS::UID::AutoCommit = 0;
my $dbh = dbh;
- my $error = $self->SUPER::replace($old);
+ my $error;
+
+ if ($options_supplied) {
+ $error = $self->check_options($options);
+ if ( $error ) {
+ $dbh->rollback if $oldAutoCommit;
+ return $error;
+ }
+ }
+
+ $error = $self->SUPER::replace($old);
if ( $error ) {
$dbh->rollback if $oldAutoCommit;
return $error;
@@ -274,6 +292,21 @@ sub replace {
}
+=item check_options HASHREF
+
+This method is called by 'insert' and 'replace' to check the options that were supplied.
+
+Return error-message, or false.
+
+(In this class, this is a do-nothing routine that always returns false. Override as necessary. No need to call superclass.)
+
+=cut
+
+sub check_options {
+ my ($self, $options) = @_;
+ '';
+}
+
=item option_objects
Returns all options as FS::I<tablename>_option objects.