[freeside-commits] branch master updated. d20e332890418a6713c0617cd7af5507664168e2

Ivan ivan at 420.am
Mon Oct 20 13:00:48 PDT 2014


The branch, master has been updated
       via  d20e332890418a6713c0617cd7af5507664168e2 (commit)
       via  06fd3d9f3ca53b2d2f7595e55be4b129ca69511c (commit)
       via  706da330626bab472bf6f4e50cf3c181bfa0cf9f (commit)
       via  686acdfba1e10deaceea97cde1dccd99c928263a (commit)
       via  cadbe893851333d903b01d6ad71e45fcf9ed2823 (commit)
       via  98542f4281bb4506a31a665f46597ada49619dfe (commit)
       via  519f2393ecc06f548c76a677490add1adb1c1edf (commit)
       via  de8af19ba927b41c29d905dba4bb5c1e7f2e2863 (commit)
      from  8da40d178b010952c42d564af2e2e5456d7e2fc2 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit d20e332890418a6713c0617cd7af5507664168e2
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Mon Oct 20 13:00:45 2014 -0700

    respect agent-specific packages in bulk order/cancel, RT#31665

diff --git a/httemplate/edit/cust_pkg.cgi b/httemplate/edit/cust_pkg.cgi
index d860499..7ffbb1f 100755
--- a/httemplate/edit/cust_pkg.cgi
+++ b/httemplate/edit/cust_pkg.cgi
@@ -46,17 +46,17 @@
 
 Order new packages
 <BR><BR>
-%
+
 %my $cust_main = qsearchs('cust_main',{'custnum'=>$custnum});
 %my $agent = qsearchs('agent',{'agentnum'=> $cust_main->agentnum });
 %
-%my %agent_pkgs = map { ( $_->pkgpart , $all_pkg{$_->pkgpart} ) }
-%                     qsearch('type_pkgs',{'typenum'=> $agent->typenum });
+%my %agent_pkgs = map { ( $_->pkgpart => $all_pkg{$_->pkgpart} ) }
+%                   ( qsearch('type_pkgs',{ typenum  => $agent->typenum      }),
+%                     qsearch('part_pkg', { agentnum => $cust_main->agentnum }),
+%                   );
 %
 %my $count = 0;
 %my $pkgparts = 0;
-%
-
 
 <TABLE>
   <TR STYLE="background-color: #cccccc;">

commit 06fd3d9f3ca53b2d2f7595e55be4b129ca69511c
Merge: 706da33 8da40d1
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Mon Oct 20 13:00:43 2014 -0700

    Merge branch 'master' of git.freeside.biz:/home/git/freeside


commit 706da330626bab472bf6f4e50cf3c181bfa0cf9f
Merge: 686acdf 98ea155
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Sun Oct 19 12:19:17 2014 -0700

    Merge branch 'master' of git.freeside.biz:/home/git/freeside


commit 686acdfba1e10deaceea97cde1dccd99c928263a
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Sun Oct 19 12:18:47 2014 -0700

    remove autogenerated files

diff --git a/rt/etc/upgrade/3.8-branded-queues-extension b/rt/etc/upgrade/3.8-branded-queues-extension
deleted file mode 100755
index 5f6e38a..0000000
--- a/rt/etc/upgrade/3.8-branded-queues-extension
+++ /dev/null
@@ -1,95 +0,0 @@
-#!/usr/bin/perl
-# BEGIN BPS TAGGED BLOCK {{{
-#
-# COPYRIGHT:
-#
-# This software is Copyright (c) 1996-2013 Best Practical Solutions, LLC
-#                                          <sales at bestpractical.com>
-#
-# (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
-# you are the copyright holder for those contributions and you grant
-# Best Practical Solutions,  LLC a nonexclusive, worldwide, irrevocable,
-# 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 strict;
-use warnings;
-
-use lib "/opt/rt3/local/lib";
-use lib "/opt/rt3/lib";
-
-
-use RT;
-RT::LoadConfig();
-RT::Init();
-
-use RT::Queues;
-
-my $queues = RT::Queues->new( RT->SystemUser );
-$queues->UnLimit();
-while ( my $queue = $queues->Next ) {
-    print "Processing queue ". ($queue->Name || $queue->id) ."...\n";
-    my $old_attr = $queue->FirstAttribute('BrandedSubjectTag');
-    unless ( $old_attr ) {
-        print "\thas no old-style subject tag. skipping\n";
-        next;
-    }
-    my $old_value = $old_attr->Content;
-    unless ( $old_value ) {
-        print "\thas empty old-style subject tag\n";
-    } else {
-        my ($status, $msg) = $queue->SetSubjectTag( $old_value );
-        unless ( $status ) {
-            print STDERR "\tERROR. Couldn't set tag: $msg\n";
-            next;
-        } else {
-            print "\thave set new-style subject tag to '$old_value'\n";
-        }
-    }
-
-    my ($status, $msg) = $queue->DeleteAttribute('BrandedSubjectTag');
-    unless ( $status ) {
-        print STDERR "\tERROR. Couldn't delete old-style tag: $msg\n";
-        next;
-    } else {
-        print "\tdeleted old-style tag entry\n";
-    }
-    print "\tDONE\n";
-}
-
-exit 0;
-
diff --git a/rt/etc/upgrade/3.8-ical-extension b/rt/etc/upgrade/3.8-ical-extension
deleted file mode 100755
index 10239dc..0000000
--- a/rt/etc/upgrade/3.8-ical-extension
+++ /dev/null
@@ -1,96 +0,0 @@
-#!/usr/bin/perl
-# BEGIN BPS TAGGED BLOCK {{{
-#
-# COPYRIGHT:
-#
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
-#                                          <sales at bestpractical.com>
-#
-# (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
-# you are the copyright holder for those contributions and you grant
-# Best Practical Solutions,  LLC a nonexclusive, worldwide, irrevocable,
-# 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 strict;
-use warnings;
-
-use lib "/opt/rt3/local/lib";
-use lib "/opt/rt3/lib";
-
-
-use RT;
-RT::LoadConfig();
-RT::Init();
-
-use RT::Attributes;
-my $attrs = RT::Attributes->new( RT->SystemUser );
-$attrs->Limit(FIELD => 'ObjectType', OPERATOR=> '=', VALUE => 'RT::User');
-$attrs->Limit(FIELD => 'Name', OPERATOR=> '=', VALUE => 'ical-auth-token');
-while ( my $attr = $attrs->Next ) {
-    my $uid = $attr->ObjectId;
-    print "Processing auth token of user #". $uid ."...\n";
-
-    my $user = RT::User->new( RT->SystemUser );
-    $user->Load( $uid );
-    unless ( $user->id ) {
-        print STDERR "\tERROR. Couldn't load user record\n";
-        next;
-    }
-
-    my ($status, $msg);
-
-    ($status, $msg) = $user->DeleteAttribute('AuthToken')
-        if $user->FirstAttribute('AuthToken');
-    unless ( $status ) {
-        print STDERR "\tERROR. Couldn't delete duplicated attribute: $msg\n";
-        next;
-    } else {
-        print "\tdeleted duplicate attribute\n";
-    }
-
-    ($status, $msg) = $attr->SetName('AuthToken');
-    unless ( $status ) {
-        print STDERR "\tERROR. Couldn't rename attribute: $msg\n";
-        next;
-    } else {
-        print "\trenamed attribute\n";
-    }
-    print "\tDONE\n";
-}
-
-exit 0;
diff --git a/rt/etc/upgrade/generate-rtaddressregexp b/rt/etc/upgrade/generate-rtaddressregexp
deleted file mode 100755
index 729228a..0000000
--- a/rt/etc/upgrade/generate-rtaddressregexp
+++ /dev/null
@@ -1,109 +0,0 @@
-#!/usr/bin/perl
-# BEGIN BPS TAGGED BLOCK {{{
-#
-# COPYRIGHT:
-#
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
-#                                          <sales at bestpractical.com>
-#
-# (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
-# you are the copyright holder for those contributions and you grant
-# Best Practical Solutions,  LLC a nonexclusive, worldwide, irrevocable,
-# 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 strict;
-use warnings;
-
-use lib "/opt/rt3/local/lib";
-use lib "/opt/rt3/lib";
-
-use RT;
-RT::LoadConfig();
-RT->Config->Set('LogToScreen' => 'debug');
-RT::Init();
-
-$| = 1;
-
-if (my $re = RT->Config->Get('RTAddressRegexp')) {
-    print "No need to use this script, you already have RTAddressRegexp set to $re\n";
-    exit;
-}
-
-use RT::Queues;
-my $queues = RT::Queues->new( RT->SystemUser );
-$queues->UnLimit;
-
-my %merged;
-merge(\%merged, RT->Config->Get('CorrespondAddress'), RT->Config->Get('CommentAddress'));
-while ( my $queue = $queues->Next ) {
-    merge(\%merged, $queue->CorrespondAddress, $queue->CommentAddress);
-}
-
-my @domains;
-for my $domain (sort keys %merged) {
-    my @addresses;
-    for my $base (sort keys %{$merged{$domain}}) {
-        my @subbits = keys(%{$merged{$domain}{$base}});
-        if (@subbits > 1) {
-            push @addresses, "\Q$base\E(?:".join("|", at subbits).")";
-        } else {
-            push @addresses, "\Q$base\E$subbits[0]";
-        }
-    }
-    if (@addresses > 1) {
-        push @domains, "(?:".join("|", @addresses).")\Q\@".$domain."\E";
-    } else {
-        push @domains, "$addresses[0]\Q\@$domain\E";
-    }
-}
-my $re = join "|", @domains;
-
-print <<ENDDESCRIPTION;
-You can add the following to RT_SiteConfig.pm, but may want to collapse it into a more efficient regexp.
-Keep in mind that this only contains the email addresses that RT knows about, you should also examine
-your mail system for aliases that reach RT but which RT doesn't know about.
-ENDDESCRIPTION
-print "Set(\$RTAddressRegexp,qr{^(?:${re})\$}i);\n";
-
-sub merge {
-    my $merged = shift;
-    for my $address (grep {defined and length} @_) {
-        $address =~ /^\s*(.*?)(-comments?)?\@(.*?)\s*$/;
-        $merged->{lc $3}{$1}{$2||''}++;
-    }
-}
diff --git a/rt/etc/upgrade/split-out-cf-categories b/rt/etc/upgrade/split-out-cf-categories
deleted file mode 100755
index b61ade3..0000000
--- a/rt/etc/upgrade/split-out-cf-categories
+++ /dev/null
@@ -1,171 +0,0 @@
-#!/usr/bin/perl
-# BEGIN BPS TAGGED BLOCK {{{
-#
-# COPYRIGHT:
-#
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
-#                                          <sales at bestpractical.com>
-#
-# (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
-# you are the copyright holder for those contributions and you grant
-# Best Practical Solutions,  LLC a nonexclusive, worldwide, irrevocable,
-# 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 strict;
-use warnings;
-
-use lib "/opt/rt3/local/lib";
-use lib "/opt/rt3/lib";
-
-use RT;
-RT::LoadConfig();
-RT->Config->Set('LogToScreen' => 'debug');
-RT::Init();
-
-$| = 1;
-
-$RT::Handle->BeginTransaction();
-
-use RT::CustomFields;
-my $CFs = RT::CustomFields->new( RT->SystemUser );
-$CFs->UnLimit;
-$CFs->Limit( FIELD => 'Type', VALUE => 'Select' );
-
-my $seen;
-while (my $cf  = $CFs->Next ) {
-    next if $cf->BasedOnObj->Id;
-    my @categories;
-    my %mapping;
-    my $values = $cf->Values;
-    while (my $value = $values->Next) {
-        next unless defined $value->Category and length $value->Category;
-        push @categories, $value->Category unless grep {$_ eq $value->Category} @categories;
-        $mapping{$value->Name} = $value->Category;
-    }
-    next unless @categories;
-
-    $seen++;
-    print "Found CF '@{[$cf->Name]}' with categories:\n";
-    print "  $_\n" for @categories;
-
-    print "Split this CF's categories into a hierarchical custom field (Y/n)? ";
-    my $dothis = <>;
-    next if $dothis =~ /n/i;
-
-    print "Enter name of CF to create as category ('@{[$cf->Name]} category'): ";
-    my $newname = <>;
-    chomp $newname;
-    $newname = $cf->Name . " category" unless length $newname;
-
-    # bump the CF's sort oder up by one
-    $cf->SetSortOrder( ($cf->SortOrder || 0) + 1 );
-
-    # ..and add a new CF before it
-    my $new = RT::CustomField->new( RT->SystemUser );
-    my ($id, $msg) = $new->Create(
-        Name => $newname,
-        Type => 'Select',
-        MaxValues => 1,
-        LookupType => $cf->LookupType,
-        SortOrder => $cf->SortOrder - 1,
-    );
-    die "Can't create custom field '$newname': $msg" unless $id;
-
-    # Set the CF to be based on what we just made
-    $cf->SetBasedOn( $new->Id );
-
-    # Apply it to all of the same things
-    {
-        my $ocfs = RT::ObjectCustomFields->new( RT->SystemUser );
-        $ocfs->LimitToCustomField( $cf->Id );
-        while (my $ocf = $ocfs->Next) {
-            my $newocf = RT::ObjectCustomField->new( RT->SystemUser );
-            ($id, $msg) = $newocf->Create(
-                SortOrder => $ocf->SortOrder,
-                CustomField => $new->Id,
-                ObjectId => $ocf->ObjectId,
-            );
-            die "Can't create ObjectCustomField: $msg" unless $id;
-        }
-    }
-
-    # Copy over all of the rights
-    {
-        my $acl = RT::ACL->new( RT->SystemUser );
-        $acl->LimitToObject( $cf );
-        while (my $ace = $acl->Next) {
-            my $newace = RT::ACE->new( RT->SystemUser );
-            ($id, $msg) = $newace->Create(
-                PrincipalId => $ace->PrincipalId,
-                PrincipalType => $ace->PrincipalType,
-                RightName => $ace->RightName,
-                Object => $new,
-            );
-            die "Can't assign rights: $msg" unless $id;
-        }
-    }
-
-    # Add values for all of the categories
-    for my $i (0..$#categories) {
-        ($id, $msg) = $new->AddValue(
-            Name => $categories[$i],
-            SortOrder => $i + 1,
-        );
-        die "Can't create custom field value: $msg" unless $id;
-    }
-
-    # Grovel through all ObjectCustomFieldValues, and add the
-    # appropriate category
-    {
-        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 );
-            ($id, $msg) = $newocfv->Create(
-                CustomField => $new->Id,
-                ObjectType => $ocfv->ObjectType,
-                ObjectId   => $ocfv->ObjectId,
-                Content    => $mapping{$ocfv->Content},
-            );
-        }
-    }
-}
-
-$RT::Handle->Commit;
-print "No custom fields with categories found\n" unless $seen;
diff --git a/rt/etc/upgrade/vulnerable-passwords b/rt/etc/upgrade/vulnerable-passwords
deleted file mode 100755
index 7f278a0..0000000
--- a/rt/etc/upgrade/vulnerable-passwords
+++ /dev/null
@@ -1,142 +0,0 @@
-#!/usr/bin/perl
-# BEGIN BPS TAGGED BLOCK {{{
-#
-# COPYRIGHT:
-#
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
-#                                          <sales at bestpractical.com>
-#
-# (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
-# you are the copyright holder for those contributions and you grant
-# Best Practical Solutions,  LLC a nonexclusive, worldwide, irrevocable,
-# 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 strict;
-use warnings;
-
-use lib "/opt/rt3/local/lib";
-use lib "/opt/rt3/lib";
-
-use RT;
-RT::LoadConfig;
-RT::Init;
-
-$| = 1;
-
-use Getopt::Long;
-use Digest::SHA;
-my $fix;
-GetOptions("fix!" => \$fix);
-
-use RT::Users;
-my $users = RT::Users->new( $RT::SystemUser );
-$users->Limit(
-    FIELD => 'Password',
-    OPERATOR => 'IS NOT',
-    VALUE => 'NULL',
-    ENTRYAGGREGATOR => 'AND',
-);
-$users->Limit(
-    FIELD => 'Password',
-    OPERATOR => '!=',
-    VALUE => '*NO-PASSWORD*',
-    ENTRYAGGREGATOR => 'AND',
-);
-$users->Limit(
-    FIELD => 'Password',
-    OPERATOR => 'NOT STARTSWITH',
-    VALUE => '!',
-    ENTRYAGGREGATOR => 'AND',
-);
-push @{$users->{'restrictions'}{ "main.Password" }}, "AND", {
-    field => 'LENGTH(main.Password)',
-    op => '<',
-    value => '40',
-};
-
-# we want to update passwords on disabled users
-$users->{'find_disabled_rows'} = 1;
-
-my $count = $users->Count;
-if ($count == 0) {
-    print "No users with unsalted or weak cryptography found.\n";
-    exit 0;
-}
-
-if ($fix) {
-    print "Upgrading $count users...\n";
-    while (my $u = $users->Next) {
-        my $stored = $u->__Value("Password");
-        my $raw;
-        if (length $stored == 32) {
-            $raw = pack("H*",$stored);
-        } elsif (length $stored == 22) {
-            $raw = MIME::Base64::decode_base64($stored);
-        } elsif (length $stored == 13) {
-            printf "%20s => Old crypt() format, cannot upgrade\n", $u->Name;
-        } else {
-            printf "%20s => Unknown password format!\n", $u->Name;
-        }
-        next unless $raw;
-
-        my $salt = pack("C4",map{int rand(256)} 1..4);
-        my $sha = Digest::SHA::sha256(
-            $salt . $raw
-        );
-        $u->_Set(
-            Field => "Password",
-            Value => MIME::Base64::encode_base64(
-                $salt . substr($sha,0,26), ""),
-        );
-    }
-    print "Done.\n";
-    exit 0;
-} else {
-    if ($count < 20) {
-        print "$count users found with unsalted or weak-cryptography passwords:\n";
-        print "      Id | Name\n", "-"x9, "+", "-"x9, "\n";
-        while (my $u = $users->Next) {
-            printf "%8d | %s\n", $u->Id, $u->Name;
-        }
-    } else {
-        print "$count users found with unsalted or weak-cryptography passwords\n";
-    }
-
-    print "\n", "Run again with --fix to upgrade.\n";
-    exit 1;
-}
diff --git a/rt/t/data/configs/apache2.2+fastcgi.conf b/rt/t/data/configs/apache2.2+fastcgi.conf
deleted file mode 100644
index ab26136..0000000
--- a/rt/t/data/configs/apache2.2+fastcgi.conf
+++ /dev/null
@@ -1,50 +0,0 @@
-ServerRoot %%SERVER_ROOT%%
-PidFile %%PID_FILE%%
-LockFile %%LOCK_FILE%%
-ServerAdmin root at localhost
-
-%%LOAD_MODULES%%
-
-<IfModule !mpm_netware_module>
-<IfModule !mpm_winnt_module>
-User freeside
-Group freeside
-</IfModule>
-</IfModule>
-
-ServerName localhost
-Listen %%LISTEN%%
-
-ErrorLog "%%LOG_FILE%%"
-LogLevel debug
-
-<Directory />
-    Options FollowSymLinks
-    AllowOverride None
-    Order deny,allow
-    Deny from all
-</Directory>
-
-AddDefaultCharset UTF-8
-
-FastCgiServer %%RT_SBIN_PATH%%/rt-server.fcgi \
-    -socket %%TMP_DIR%%/socket \
-    -processes 1 \
-    -idle-timeout 180 \
-    -initial-env RT_SITE_CONFIG=%%RT_SITE_CONFIG%% \
-    -initial-env RT_TESTING=1
-
-Alias /NoAuth/images/ %%DOCUMENT_ROOT%%/NoAuth/images/
-ScriptAlias / %%RT_SBIN_PATH%%/rt-server.fcgi/
-
-DocumentRoot "%%DOCUMENT_ROOT%%"
-<Location />
-    Order allow,deny
-    Allow from all
-
-%%BASIC_AUTH%%
-
-    Options +ExecCGI
-    AddHandler fastcgi-script fcgi
-</Location>
-
diff --git a/rt/t/data/configs/apache2.2+mod_perl.conf b/rt/t/data/configs/apache2.2+mod_perl.conf
deleted file mode 100644
index ae84c9d..0000000
--- a/rt/t/data/configs/apache2.2+mod_perl.conf
+++ /dev/null
@@ -1,67 +0,0 @@
-<IfModule mpm_prefork_module>
-    StartServers          1
-    MinSpareServers       1
-    MaxSpareServers       1
-    MaxClients            1
-    MaxRequestsPerChild   0
-</IfModule>
-
-<IfModule mpm_worker_module>
-    StartServers          1
-    MinSpareThreads       1
-    MaxSpareThreads       1
-    ThreadLimit           1
-    ThreadsPerChild       1
-    MaxClients            1
-    MaxRequestsPerChild   0
-</IfModule>
-
-ServerRoot %%SERVER_ROOT%%
-PidFile %%PID_FILE%%
-LockFile %%LOCK_FILE%%
-ServerAdmin root at localhost
-
-%%LOAD_MODULES%%
-
-<IfModule !mpm_netware_module>
-<IfModule !mpm_winnt_module>
-User freeside
-Group freeside
-</IfModule>
-</IfModule>
-
-ServerName localhost
-Listen %%LISTEN%%
-
-ErrorLog "%%LOG_FILE%%"
-LogLevel debug
-
-<Directory />
-    Options FollowSymLinks
-    AllowOverride None
-    Order deny,allow
-    Deny from all
-</Directory>
-
-AddDefaultCharset UTF-8
-PerlSetEnv RT_SITE_CONFIG %%RT_SITE_CONFIG%%
-
-DocumentRoot "%%DOCUMENT_ROOT%%"
-<Location />
-    Order allow,deny
-    Allow from all
-
-%%BASIC_AUTH%%
-
-    SetHandler modperl
-
-    PerlResponseHandler Plack::Handler::Apache2
-    PerlSetVar psgi_app %%RT_SBIN_PATH%%/rt-server
-</Location>
-
-<Perl>
-    $ENV{RT_TESTING}=1;
-    use Plack::Handler::Apache2;
-    Plack::Handler::Apache2->preload("%%RT_SBIN_PATH%%/rt-server");
-</Perl>
-

commit cadbe893851333d903b01d6ad71e45fcf9ed2823
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Sat Oct 18 04:11:59 2014 -0700

    byproduct #31593

diff --git a/httemplate/search/elements/search.html b/httemplate/search/elements/search.html
index e6309ea..3fb1e3e 100644
--- a/httemplate/search/elements/search.html
+++ b/httemplate/search/elements/search.html
@@ -43,7 +43,7 @@ Example:
 
     #listref of column labels, <TH>
     #recommended unless 'query' is an SQL query string
-    # (if not specified the database column names will be used)
+    # (if not specified the database column names will be used) (XXX this is not currently working either)
     'header'      => [ '#',
                        'Item',
                        { 'label' => 'Another Item',
@@ -52,7 +52,7 @@ Example:
                      ],
 
     #listref - each item is a literal column name (or method) or coderef
-    #if not specified all columns will be shown
+    #if not specified all columns will be shown (XXX this is not currently working?)
     'fields'      => [
                        'column',
                        sub { my $row = shift; $row->column; },
@@ -130,7 +130,7 @@ Example:
     'agent_pos'             => 3, # optional position (starting from 0) to
                                   # insert an Agent column (query needs to be a
                                   # qsearch hashref and header & fields need to
-                                  # be defined)
+                                  # be defined)cust_pkg_susp.html
 
     # sort, link & display properties for fields
 
@@ -141,7 +141,7 @@ Example:
     #          or a listref of link and method name to append,
     #          or a listref of link and coderef to run and append
     #          or a coderef that returns such a listref
-    'links'       => [],`
+    'links'       => [],
 
     #listref - each item is the empty string,
     #          or a string onClick handler for the corresponding link

commit 98542f4281bb4506a31a665f46597ada49619dfe
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Sat Oct 18 04:11:40 2014 -0700

    byproduct #31593

diff --git a/httemplate/search/contact.html b/httemplate/search/contact.html
new file mode 100644
index 0000000..0292fa5
--- /dev/null
+++ b/httemplate/search/contact.html
@@ -0,0 +1,43 @@
+<& elements/search.html,
+  title         => 'Contacts',
+  name_singular => 'contact',
+  query         => { select    => $select,
+                     table     => 'contact',
+                     addl_from => $addl_from,
+                     hashref   => \%hash,
+                     extra_sql => $extra_sql,
+                   },
+  count_query   => "SELECT COUNT(*) FROM contact $extra_sql", #XXX
+  header        => [ 'First', 'Last', 'Title', 'Company', 'Self-service', ],
+  fields        => [ 'first', 'last', 'title', 'company', 'selfservice_access' ],
+  links         => [ '', '', '', $company_link, '', ],
+&>
+<%init>
+
+my $select = 'contact.*';
+my %hash = ();
+my $addl_from = '';
+
+my $company_link = '';
+
+if ( $cgi->param('selfservice_access') eq 'Y' ) {
+  $hash{'selfservice_access'} = 'Y';
+}
+
+my $extra_sql = '';
+if ( $cgi->param('cust_main') ) {
+  $select .= ', cust_main.company';
+  $addl_from = ' LEFT JOIN cust_main USING ( custnum )';
+  $extra_sql = ' custnum IS NOT NULL ';
+  $company_link  = [ $p.'view/cust_main.cgi?', 'custnum' ];
+} elsif ( $cgi->param('prospect_main') ) {
+  $select .= ', prospect_main.company';
+  $addl_from = ' LEFT JOIN prospect_main USING ( prospectnum )';
+  $extra_sql = ' prospectnum IS NOT NULL ';
+  $company_link  = [ $p.'view/prospect_main.html?', 'prospectnum' ];
+}
+
+$extra_sql = (keys(%hash) ? ' AND ' : ' WHERE '). $extra_sql
+ if $extra_sql;
+
+</%init>

commit 519f2393ecc06f548c76a677490add1adb1c1edf
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Sat Oct 18 00:30:43 2014 -0700

    ezlocate is gone

diff --git a/FS/FS/Conf.pm b/FS/FS/Conf.pm
index 940303f..e410586 100644
--- a/FS/FS/Conf.pm
+++ b/FS/FS/Conf.pm
@@ -4330,7 +4330,6 @@ and customer address. Include units.',
     'type'        => 'select',
     'select_hash' => [ '' => '', 
                        'usps'     => 'U.S. Postal Service',
-                       'ezlocate' => 'EZLocate',
                        'tomtom'   => 'TomTom',
                        'melissa'  => 'Melissa WebSmart',
                      ],
@@ -4353,25 +4352,11 @@ and customer address. Include units.',
   {
     'key'         => 'tomtom-userid',
     'section'     => 'UI',
-    'description' => 'TomTom geocoding service API key.  See <a href="http://www.tomtom.com/">the TomTom website</a> to obtain a key.  This is recommended for addresses in the United States only.',
+    'description' => 'TomTom geocoding service API key.  See <a href="http://geocoder.tomtom.com/">the TomTom website</a> to obtain a key.  This is recommended for addresses in the United States only.',
     'type'        => 'text',
   },
 
   {
-    'key'         => 'ezlocate-userid',
-    'section'     => 'UI',
-    'description' => 'User ID for EZ-Locate service.  See <a href="http://www.geocode.com/">the TomTom website</a> for access and pricing information.',
-    'type'        => 'text',
-  },
-
-  {
-    'key'         => 'ezlocate-password',
-    'section'     => 'UI',
-    'description' => 'Password for EZ-Locate service.',
-    'type'        => 'text'
-  },
-
-  {
     'key'         => 'melissa-userid',
     'section'     => 'UI', # it's really not...
     'description' => 'User ID for Melissa WebSmart service.  See <a href="http://www.melissadata.com/">the Melissa website</a> for access and pricing.',
diff --git a/FS/FS/Misc/Geo.pm b/FS/FS/Misc/Geo.pm
index 1af4991..e41ba5d 100644
--- a/FS/FS/Misc/Geo.pm
+++ b/FS/FS/Misc/Geo.pm
@@ -333,87 +333,6 @@ sub standardize_usps {
     addr_clean=> 'Y' }
 }
 
-my %ezlocate_error = ( # USA_Geo_002 documentation
-  10  => 'State not found',
-  11  => 'City not found',
-  12  => 'Invalid street address',
-  14  => 'Street name not found',
-  15  => 'Address range does not exist',
-  16  => 'Ambiguous address',
-  17  => 'Intersection not found', #unused?
-);
-
-sub standardize_ezlocate {
-  my $self = shift;
-  my $location = shift;
-  my $class;
-  #if ( $location->{country} eq 'US' ) {
-  #  $class = 'USA_Geo_004Tool';
-  #}
-  #elsif ( $location->{country} eq 'CA' ) {
-  #  $class = 'CAN_Geo_001Tool';
-  #}
-  #else { # shouldn't be a fatal error, just pass through unverified address
-  #  warn "standardize_teleatlas: address lookup in '".$location->{country}.
-  #       "' not available\n";
-  #  return $location;
-  #}
-  #my $path = $conf->config('teleatlas-path') || '';
-  #local @INC = (@INC, $path);
-  #eval "use $class;";
-  #if ( $@ ) {
-  #  die "Loading $class failed:\n$@".
-  #      "\nMake sure the TeleAtlas Perl SDK is installed correctly.\n";
-  #}
-
-  $class = 'Geo::EZLocate'; # use our own library
-  eval "use $class 0.02"; #Geo::EZLocate 0.02 for error handling
-  die $@ if $@;
-
-  my $userid = $conf->config('ezlocate-userid')
-    or die "no ezlocate-userid configured\n";
-  my $password = $conf->config('ezlocate-password')
-    or die "no ezlocate-password configured\n";
-  
-  my $tool = $class->new($userid, $password);
-  my $match = $tool->findAddress(
-    $location->{address1},
-    $location->{city},
-    $location->{state},
-    $location->{zip}, #12345-6789 format is allowed
-  );
-  warn "ezlocate returned match:\n".Dumper($match) if $DEBUG > 1;
-  # error handling - B codes indicate success
-  die $ezlocate_error{$match->{MAT_STAT}}."\n"
-    unless $match->{MAT_STAT} =~ /^B\d$/;
-
-  my %result = (
-    address1    => $match->{MAT_ADDR},
-    address2    => $location->{address2},
-    city        => $match->{MAT_CITY},
-    state       => $match->{MAT_ST},
-    country     => $location->{country},
-    zip         => $match->{MAT_ZIP},
-    latitude    => $match->{MAT_LAT},
-    longitude   => $match->{MAT_LON},
-    censustract => $match->{FIPS_ST}.$match->{FIPS_CTY}.
-                   sprintf('%07.2f',$match->{CEN_TRCT}),
-    addr_clean  => 'Y',
-  );
-  if ( $match->{STD_ADDR} ) {
-    # then they have a postal standardized address for us
-    %result = ( %result,
-      address1    => $match->{STD_ADDR},
-      address2    => $location->{address2},
-      city        => $match->{STD_CITY},
-      state       => $match->{STD_ST},
-      zip         => $match->{STD_ZIP}.'-'.$match->{STD_P4},
-    );
-  }
-
-  \%result;
-}
-
 sub _tomtom_query { # helper method for the below
   my %args = @_;
   my $result = Geo::TomTom::Geocoding->query(%args);

commit de8af19ba927b41c29d905dba4bb5c1e7f2e2863
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Thu Oct 9 11:58:30 2014 -0700

    fix agent type selection for the simple case, RT#30942, RT#28804

diff --git a/httemplate/edit/part_pkg.cgi b/httemplate/edit/part_pkg.cgi
index 3674778..af69f71 100755
--- a/httemplate/edit/part_pkg.cgi
+++ b/httemplate/edit/part_pkg.cgi
@@ -233,7 +233,6 @@
                      { field       => 'agent_type',
                        type        => 'select-agent_type',
                        disabled    => ! $acl_edit_global,
-                #XXX ???  'element_name' => 'agent_type',
                        element_etc => 'size="10"',
                        multiple    =>  '1', #cause edit.html is dum
                        curr_value_callback => sub {

-----------------------------------------------------------------------

Summary of changes:
 FS/FS/Conf.pm                               |   17 +--
 FS/FS/Misc/Geo.pm                           |   81 -------------
 httemplate/edit/cust_pkg.cgi                |   10 +-
 httemplate/edit/part_pkg.cgi                |    1 -
 httemplate/search/contact.html              |   43 +++++++
 httemplate/search/elements/search.html      |    8 +-
 rt/etc/upgrade/3.8-branded-queues-extension |   95 ---------------
 rt/etc/upgrade/3.8-ical-extension           |   96 ---------------
 rt/etc/upgrade/generate-rtaddressregexp     |  109 -----------------
 rt/etc/upgrade/split-out-cf-categories      |  171 ---------------------------
 rt/etc/upgrade/vulnerable-passwords         |  142 ----------------------
 rt/t/data/configs/apache2.2+fastcgi.conf    |   50 --------
 rt/t/data/configs/apache2.2+mod_perl.conf   |   67 -----------
 13 files changed, 53 insertions(+), 837 deletions(-)
 create mode 100644 httemplate/search/contact.html
 delete mode 100755 rt/etc/upgrade/3.8-branded-queues-extension
 delete mode 100755 rt/etc/upgrade/3.8-ical-extension
 delete mode 100755 rt/etc/upgrade/generate-rtaddressregexp
 delete mode 100755 rt/etc/upgrade/split-out-cf-categories
 delete mode 100755 rt/etc/upgrade/vulnerable-passwords
 delete mode 100644 rt/t/data/configs/apache2.2+fastcgi.conf
 delete mode 100644 rt/t/data/configs/apache2.2+mod_perl.conf




More information about the freeside-commits mailing list