X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2Fradius_attr.pm;h=1b7df2ee46c3563274d2e5c90c2d8e2f998c8784;hp=51b1bab6d201a9f48b92c76f506771ac4bec6de1;hb=dc83512c36dc6bea2585abada4f88d714c600e55;hpb=99d1d8e1d4230097dbe5f00ca10241e74941d6e3 diff --git a/FS/FS/radius_attr.pm b/FS/FS/radius_attr.pm index 51b1bab6d..1b7df2ee4 100644 --- a/FS/FS/radius_attr.pm +++ b/FS/FS/radius_attr.pm @@ -1,9 +1,11 @@ package FS::radius_attr; +use base qw( FS::Record ); use strict; -use base qw( FS::Record ); -use FS::Record qw( qsearch qsearchs ); use vars qw( $noexport_hack ); +use FS::Record qw( qsearch dbh ); + +$noexport_hack = 0; =head1 NAME @@ -174,13 +176,6 @@ sub check { Returns the L object to which this attribute applies. -=cut - -sub radius_group { - my $self = shift; - qsearchs('radius_group', { 'groupnum' => $self->groupnum }); -} - =back =head1 CLASS METHODS @@ -195,7 +190,7 @@ check or R for reply. =cut my %ops = ( - C => [ '==', ':=', '+=', '!=', '>', '>=', '<', '<=', '=~', '!~', '=*', '!*' ], + C => [ '=', '==', ':=', '+=', '!=', '>', '>=', '<', '<=', '=~', '!~', '=*', '!*' ], R => [ '=', ':=', '+=' ], ); @@ -207,6 +202,21 @@ sub ops { =back +=cut + +sub _upgrade_schema { + my ($class, %opts) = @_; + + my $sql = ' + DELETE FROM radius_attr WHERE NOT EXISTS + ( SELECT 1 FROM radius_group WHERE radius_group.groupnum = radius_attr.groupnum ) + '; + + my $sth = dbh->prepare($sql) or die dbh->errstr; + $sth->execute or die $sth->errstr; + ''; +} + =head1 BUGS =head1 SEE ALSO