icradius transactional password changes (suspensions, unsuspensions)
[freeside.git] / FS / FS / svc_acct.pm
index 74a5f31..fb773c0 100644 (file)
@@ -367,8 +367,10 @@ $username and $dir.
 sub delete {
   my $self = shift;
 
-  return "Can't delete an account which has (svc_acct_sm) mail aliases!"
-    if $self->uid && qsearch( 'svc_acct_sm', { 'domuid' => $self->uid } );
+  if ( defined( $FS::Record::dbdef->table('svc_acct_sm') ) ) {
+    return "Can't delete an account which has (svc_acct_sm) mail aliases!"
+      if $self->uid && qsearch( 'svc_acct_sm', { 'domuid' => $self->uid } );
+  }
 
   return "Can't delete an account which is a (svc_forward) source!"
     if qsearch( 'svc_forward', { 'srcsvc' => $self->svcnum } );
@@ -395,6 +397,9 @@ sub delete {
   foreach my $cust_main_invoice (
     qsearch( 'cust_main_invoice', { 'dest' => $self->svcnum } )
   ) {
+    #next unless defined; #wtf is up with qsearch?
+    warn $cust_main_invoice;
+    next unless defined $cust_main_invoice;
     my %hash = $cust_main_invoice->hash;
     $hash{'dest'} = $self->email;
     my $new = new FS::cust_main_invoice \%hash;
@@ -567,10 +572,33 @@ sub replace {
     }
   }
 
+  if ( $icradius_dbh ) {
+    my $queue = new FS::queue { 'job' => 'FS::svc_acct::icradius_rc_replace' };
+    $error = $queue->insert( $new->username,
+                             $new->_password,
+                           );
+    if ( $error ) {
+      $dbh->rollback if $oldAutoCommit;
+      return "queueing job (transaction rolled back): $error";
+    }
+  }
+
   $dbh->commit or die $dbh->errstr if $oldAutoCommit;
   ''; #no error
 }
 
+sub icradius_rc_replace {
+  my( $username, $new_password ) = @_;
+   my $sth = $icradius_dbh->prepare(
+     "UPDATE radcheck SET Value = ? WHERE UserName = ? and Attribute = ?"
+   );
+   $sth->execute($new_password, $username, 'Password' )
+     or die "can't update radcheck table: ". $sth->errstr;
+
+  1;
+}
+
 =item suspend
 
 Suspends this account by prefixing *SUSPENDED* to the password.  If there is an
@@ -839,7 +867,7 @@ sub email {
 
 =head1 VERSION
 
-$Id: svc_acct.pm,v 1.38 2001-09-11 13:10:22 ivan Exp $
+$Id: svc_acct.pm,v 1.41 2001-09-19 00:24:27 ivan Exp $
 
 =head1 BUGS