X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Faccess_right.pm;h=4f8d1e9a081fce134e0306e735eb84285d04ade5;hb=3e2c08dba947ea254c60cbd621776c0f5dddb2e8;hp=cf9730d7e2294baebca632fc209efdb5c10d58c5;hpb=c648976f0b7975f2328ebd7ba8c711fad0ca4195;p=freeside.git diff --git a/FS/FS/access_right.pm b/FS/FS/access_right.pm index cf9730d7e..4f8d1e9a0 100644 --- a/FS/FS/access_right.pm +++ b/FS/FS/access_right.pm @@ -111,6 +111,44 @@ sub check { $self->SUPER::check; } +# _upgrade_data +# +# Used by FS::Upgrade to migrate to a new database. + +sub _upgrade_data { # class method + my ($class, %opts) = @_; + + my @unmigrated = ( qsearch( 'access_right', + { 'righttype'=>'FS::access_group', + 'rightname'=>'Engineering configuration', + } + ), + qsearch( 'access_right', + { 'righttype'=>'FS::access_group', + 'rightname'=>'Engineering global configuration', + } + ) + ); + foreach ( @unmigrated ) { + my $rightname = $_->rightname; + $rightname =~ s/Engineering/Dialup/; + $_->rightname($rightname); + my $error = $_->replace; + die "Failed to update access right: $error" + if $error; + my $broadband = new FS::access_right { $_->hash }; + $rightname =~ s/Dialup/Broadband/; + $broadband->rightnum(''); + $broadband->rightname($rightname); + $error = $broadband->insert; + die "Failed to insert access right: $error" + if $error; + } + + ''; + +} + =back =head1 BUGS