X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=rt%2Fetc%2Fupgrade%2Fsplit-out-cf-categories.in;h=582d7c1bed7df8a6a1daa6df15e42095f82f7f6e;hp=f34a1b616ef1d1de0a3545c86ff0de1d0b68dc76;hb=de9d037528895f7151a9aead6724ce2df95f9586;hpb=b4b0c7e72d7eaee2fbfc7022022c9698323203dd diff --git a/rt/etc/upgrade/split-out-cf-categories.in b/rt/etc/upgrade/split-out-cf-categories.in index f34a1b616..582d7c1be 100644 --- a/rt/etc/upgrade/split-out-cf-categories.in +++ b/rt/etc/upgrade/split-out-cf-categories.in @@ -1,41 +1,41 @@ #!@PERL@ # BEGIN BPS TAGGED BLOCK {{{ -# +# # COPYRIGHT: -# -# This software is Copyright (c) 1996-2008 Best Practical Solutions, LLC -# -# +# +# This software is Copyright (c) 1996-2017 Best Practical Solutions, LLC +# +# # (Except where explicitly superseded by other copyright notices) -# -# +# +# # LICENSE: -# +# # This work is made available to you under the terms of Version 2 of # the GNU General Public License. A copy of that license should have # been provided with this software, but in any event can be snarfed # from www.gnu.org. -# +# # This work is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. -# +# # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301 or visit their web page on the internet at # http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -# -# +# +# # CONTRIBUTION SUBMISSION POLICY: -# +# # (The following paragraph is not intended to limit the rights granted # to you to modify and distribute this software under the terms of # the GNU General Public License and is only of importance to you if # you choose to contribute your changes and enhancements to the # community by submitting them to Best Practical Solutions, LLC.) -# +# # By intentionally submitting any modifications, corrections or # derivatives to this work, or any other work intended for use with # Request Tracker, to Best Practical Solutions, LLC, you confirm that @@ -44,25 +44,22 @@ # royalty-free, perpetual, license to use, copy, create derivative # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. -# +# # END BPS TAGGED BLOCK }}} +use 5.10.1; use strict; use warnings; use lib "@LOCAL_LIB_PATH@"; use lib "@RT_LIB_PATH@"; -use RT; -RT::LoadConfig(); -RT->Config->Set('LogToScreen' => 'debug'); -RT::Init(); - -$| = 1; +use RT::Interface::CLI qw(Init); +Init(); $RT::Handle->BeginTransaction(); use RT::CustomFields; -my $CFs = RT::CustomFields->new( $RT::SystemUser ); +my $CFs = RT::CustomFields->new( RT->SystemUser ); $CFs->UnLimit; $CFs->Limit( FIELD => 'Type', VALUE => 'Select' ); @@ -96,7 +93,7 @@ while (my $cf = $CFs->Next ) { $cf->SetSortOrder( ($cf->SortOrder || 0) + 1 ); # ..and add a new CF before it - my $new = RT::CustomField->new( $RT::SystemUser ); + my $new = RT::CustomField->new( RT->SystemUser ); my ($id, $msg) = $new->Create( Name => $newname, Type => 'Select', @@ -111,10 +108,10 @@ while (my $cf = $CFs->Next ) { # Apply it to all of the same things { - my $ocfs = RT::ObjectCustomFields->new( $RT::SystemUser ); + my $ocfs = RT::ObjectCustomFields->new( RT->SystemUser ); $ocfs->LimitToCustomField( $cf->Id ); while (my $ocf = $ocfs->Next) { - my $newocf = RT::ObjectCustomField->new( $RT::SystemUser ); + my $newocf = RT::ObjectCustomField->new( RT->SystemUser ); ($id, $msg) = $newocf->Create( SortOrder => $ocf->SortOrder, CustomField => $new->Id, @@ -126,10 +123,10 @@ while (my $cf = $CFs->Next ) { # Copy over all of the rights { - my $acl = RT::ACL->new( $RT::SystemUser ); + my $acl = RT::ACL->new( RT->SystemUser ); $acl->LimitToObject( $cf ); while (my $ace = $acl->Next) { - my $newace = RT::ACE->new( $RT::SystemUser ); + my $newace = RT::ACE->new( RT->SystemUser ); ($id, $msg) = $newace->Create( PrincipalId => $ace->PrincipalId, PrincipalType => $ace->PrincipalType, @@ -152,11 +149,11 @@ while (my $cf = $CFs->Next ) { # Grovel through all ObjectCustomFieldValues, and add the # appropriate category { - my $ocfvs = RT::ObjectCustomFieldValues->new( $RT::SystemUser ); + my $ocfvs = RT::ObjectCustomFieldValues->new( RT->SystemUser ); $ocfvs->LimitToCustomField( $cf->Id ); while (my $ocfv = $ocfvs->Next) { next unless exists $mapping{$ocfv->Content}; - my $newocfv = RT::ObjectCustomFieldValue->new( $RT::SystemUser ); + my $newocfv = RT::ObjectCustomFieldValue->new( RT->SystemUser ); ($id, $msg) = $newocfv->Create( CustomField => $new->Id, ObjectType => $ocfv->ObjectType, @@ -168,4 +165,4 @@ while (my $cf = $CFs->Next ) { } $RT::Handle->Commit; -print "No custom fields with categories found\n" unless $seen; \ No newline at end of file +print "No custom fields with categories found\n" unless $seen;