working textradius export
[freeside.git] / FS / FS / svc_acct_sm.pm
index 96bc3a2..c92f142 100644 (file)
@@ -5,7 +5,7 @@ use vars qw( @ISA $nossh_hack $conf $shellmachine @qmailmachines );
 use FS::Record qw( fields qsearch qsearchs );
 use FS::svc_Common;
 use FS::cust_svc;
-use FS::SSH qw(ssh);
+use Net::SSH qw(ssh);
 use FS::Conf;
 use FS::svc_acct;
 use FS::svc_domain;
@@ -13,12 +13,12 @@ use FS::svc_domain;
 @ISA = qw( FS::svc_Common );
 
 #ask FS::UID to run this stuff for us later
-$FS::UID::callback{'FS::svc_acct_sm'} = sub { 
-  $conf = new FS::Conf;
-  $shellmachine = $conf->exists('qmailmachines')
-                  ? $conf->config('shellmachine')
-                  : '';
-};
+#$FS::UID::callback{'FS::svc_acct_sm'} = sub { 
+#  $conf = new FS::Conf;
+#  $shellmachine = $conf->exists('qmailmachines')
+#                  ? $conf->config('shellmachine')
+#                  : '';
+#};
 
 =head1 NAME
 
@@ -45,10 +45,15 @@ FS::svc_acct_sm - Object methods for svc_acct_sm records
 
   $error = $record->cancel;
 
+=head1 WARNING
+
+FS::svc_acct_sm is B<depreciated>.  This class is only included for migration
+purposes.  See L<FS::svc_forward>.
+
 =head1 DESCRIPTION
 
-An FS::svc_acct object represents a virtual mail alias.  FS::svc_acct inherits
-from FS::Record.  The following fields are currently supported:
+An FS::svc_acct_sm object represents a virtual mail alias.  FS::svc_acct_sm
+inherits from FS::Record.  The following fields are currently supported:
 
 =over 4
 
@@ -83,16 +88,16 @@ the error, otherwise returns false.
 The additional fields pkgnum and svcpart (see L<FS::cust_svc>) should be 
 defined.  An FS::cust_svc record will be created and inserted.
 
-If the configuration values (see L<FS::Conf>) shellmachine and qmailmachines
-exist, and domuser is `*' (meaning a catch-all mailbox), the command:
-
-  [ -e $dir/.qmail-$qdomain-default ] || {
-    touch $dir/.qmail-$qdomain-default;
-    chown $uid:$gid $dir/.qmail-$qdomain-default;
-  }
-
-is executed on shellmachine via ssh (see L<dot-qmail/"EXTENSION ADDRESSES">).
-This behaviour can be surpressed by setting $FS::svc_acct_sm::nossh_hack true.
+ #If the configuration values (see L<FS::Conf>) shellmachine and qmailmachines
+ #exist, and domuser is `*' (meaning a catch-all mailbox), the command:
+ #
 [ -e $dir/.qmail-$qdomain-default ] || {
   touch $dir/.qmail-$qdomain-default;
   chown $uid:$gid $dir/.qmail-$qdomain-default;
 }
+ #
+ #is executed on shellmachine via ssh (see L<dot-qmail/"EXTENSION ADDRESSES">).
+ #This behaviour can be surpressed by setting $FS::svc_acct_sm::nossh_hack true.
 
 =cut
 
@@ -117,24 +122,25 @@ sub insert {
 
   return "First domain username (domuser) for domain (domsvc) must be " .
          qq='*' (catch-all)!=
-    if $self->domuser ne '*' &&
-       ! qsearch('svc_acct_sm',{ 'domsvc' => $self->domsvc } );
+    if $self->domuser ne '*'
+       && ! qsearch('svc_acct_sm',{ 'domsvc' => $self->domsvc } )
+       && ! $conf->exists('maildisablecatchall');
 
   $error = $self->SUPER::insert;
   return $error if $error;
 
-  my $svc_domain = qsearchs( 'svc_domain', { 'svcnum' => $self->domsvc } );
-  my $svc_acct = qsearchs( 'svc_acct', { 'uid' => $self->domuid } );
-  my ( $uid, $gid, $dir, $domain ) = (
-    $svc_acct->uid,
-    $svc_acct->gid,
-    $svc_acct->dir,
-    $svc_domain->domain,
-  );
-  my $qdomain = $domain;
-  $qdomain =~ s/\./:/g; #see manpage for 'dot-qmail': EXTENSION ADDRESSES
-  ssh("root\@$shellmachine","[ -e $dir/.qmail-$qdomain-default ] || { touch $dir/.qmail-$qdomain-default; chown $uid:$gid $dir/.qmail-$qdomain-default; }")  
-    if ( ! $nossh_hack && $shellmachine && $dir && $self->domuser eq '*' );
+  #my $svc_domain = qsearchs( 'svc_domain', { 'svcnum' => $self->domsvc } );
+  #my $svc_acct = qsearchs( 'svc_acct', { 'uid' => $self->domuid } );
+  #my ( $uid, $gid, $dir, $domain ) = (
+  #  $svc_acct->uid,
+  #  $svc_acct->gid,
+  #  $svc_acct->dir,
+  #  $svc_domain->domain,
+  #);
+  #my $qdomain = $domain;
+  #$qdomain =~ s/\./:/g; #see manpage for 'dot-qmail': EXTENSION ADDRESSES
+  #ssh("root\@$shellmachine","[ -e $dir/.qmail-$qdomain-default ] || { touch $dir/.qmail-$qdomain-default; chown $uid:$gid $dir/.qmail-$qdomain-default; }")  
+  #  if ( ! $nossh_hack && $shellmachine && $dir && $self->domuser eq '*' );
 
   ''; #no error
 
@@ -205,7 +211,7 @@ sub check {
 
   my $x = $self->setfixed;
   return $x unless ref($x);
-  my $part_svc = $x;
+  #my $part_svc = $x;
 
   my($recref) = $self->hashref;
 
@@ -232,7 +238,7 @@ sub check {
 
 =head1 VERSION
 
-$Id: svc_acct_sm.pm,v 1.1 1999-08-04 09:03:53 ivan Exp $
+$Id: svc_acct_sm.pm,v 1.5 2001-09-06 20:41:59 ivan Exp $
 
 =head1 BUGS
 
@@ -242,8 +248,10 @@ The $recref stuff in sub check should be cleaned up.
 
 =head1 SEE ALSO
 
+L<FS::svc_forward>
+
 L<FS::Record>, L<FS::Conf>, L<FS::cust_svc>, L<FS::part_svc>, L<FS::cust_pkg>,
-L<FS::svc_acct>, L<FS::svc_domain>, L<FS::SSH>, L<ssh>, L<dot-qmail>,
+L<FS::svc_acct>, L<FS::svc_domain>, L<Net::SSH>, L<ssh>, L<dot-qmail>,
 schema.html from the base documentation.
 
 =cut