X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Faccess_right.pm;h=bc6dd5d841aa6f44f3ffb04f4871e12847efd7d5;hb=1a2e0285a2c596cc202ef9a9f1cf0815f4d7c5ff;hp=cf9730d7e2294baebca632fc209efdb5c10d58c5;hpb=5e05724a635a22776f1b973f5d7e77989da4e048;p=freeside.git diff --git a/FS/FS/access_right.pm b/FS/FS/access_right.pm index cf9730d7e..bc6dd5d84 100644 --- a/FS/FS/access_right.pm +++ b/FS/FS/access_right.pm @@ -111,12 +111,48 @@ 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 -The author forgot to customize this manpage. - =head1 SEE ALSO L, schema.html from the base documentation.