check old_password if passed to self-service API, require with config setting, RT...
[freeside.git] / FS / FS / part_svc.pm
index da794dd..01f3034 100644 (file)
@@ -1,7 +1,8 @@
 package FS::part_svc;
+use base qw(FS::Record);
 
 use strict;
-use vars qw( @ISA $DEBUG );
+use vars qw( $DEBUG );
 use Tie::IxHash;
 use FS::Record qw( qsearch qsearchs fields dbh );
 use FS::Schema qw( dbdef );
@@ -11,8 +12,6 @@ use FS::export_svc;
 use FS::cust_svc;
 use FS::part_svc_class;
 
-@ISA = qw(FS::Record);
-
 $DEBUG = 0;
 
 =head1 NAME
@@ -65,6 +64,10 @@ empty for full access, "readonly" for read-only, "hidden" to hide it entirely
 right to change the password field, rather than just "Edit password".  Only
 relevant to svc_acct for now.
 
+=item has_router - Allow the service to have an L<FS::router> connected 
+through it.  Probably only relevant to svc_broadband, svc_acct, and svc_dsl
+for now.
+
 =back
 
 =head1 METHODS
@@ -394,11 +397,12 @@ sub check {
     $self->ut_numbern('svcpart')
     || $self->ut_text('svc')
     || $self->ut_alpha('svcdb')
-    || $self->ut_enum('disabled', [ '', 'Y' ] )
-    || $self->ut_enum('preserve', [ '', 'Y' ] )
+    || $self->ut_flag('disabled')
+    || $self->ut_flag('preserve')
     || $self->ut_enum('selfservice_access', [ '', 'hidden', 'readonly' ] )
     || $self->ut_foreign_keyn('classnum', 'part_svc_class', 'classnum' )
-    || $self->ut_enum('restrict_edit_password', [ '', 'Y' ] )
+    || $self->ut_flag('restrict_edit_password')
+    || $self->ut_flag('has_router')
 ;
   return $error if $error;
 
@@ -476,7 +480,7 @@ are capable of returing available DID (phone number) information.
 
 sub part_export_did {
   my $self = shift;
-  grep $_->can('get_dids'), $self->part_export;
+  grep $_->can_get_dids, $self->part_export;
 }
 
 =item part_export_dsl_pull