[freeside-commits] freeside/bin apache.export, 1.10, 1.11 merge-user, NONE, 1.1
Mark Wells
mark at wavetail.420.am
Thu Jun 10 21:14:26 PDT 2010
Update of /home/cvs/cvsroot/freeside/bin
In directory wavetail.420.am:/tmp/cvs-serv16947
Modified Files:
apache.export
Added Files:
merge-user
Log Message:
RT#8691: script to merge usernums
--- NEW FILE: merge-user ---
#!/usr/bin/perl -w
use strict;
use FS::UID qw(adminsuidsetup dbh);
use FS::Schema;
use FS::Record qw(qsearch qsearchs);
my $DRY_RUN = 1;
$FS::UID::AutoCommit = 0;
my ($user, $from_usernum, $to_usernum, $go) = @ARGV;
die usage() if not ($user and $from_usernum and $to_usernum);
$DRY_RUN = 0 if $go eq 'go';
my $dbh = adminsuidsetup($user);
# Sanity checks.
die "Can't merge a user to itself." if $from_usernum == $to_usernum;
my $from_user = FS::access_user->by_key($from_usernum) or
die "Usernum '$from_usernum' not found.\n";
my $to_user = FS::access_user->by_key($to_usernum) or
die "Usernum '$to_usernum' not found.\n";
my $tables = FS::Schema::tables_hashref;
foreach my $table (keys %$tables) {
next if $table =~ /^access/; # Don't try to merge these.
if( grep /^usernum$/, FS::Record::real_fields($table) ) {
foreach ($table, "h_$table") {
print "$_: ";
my $sql =
"UPDATE $_ SET usernum = $to_usernum WHERE usernum = $from_usernum";
#print $sql;
my $sth = $dbh->prepare($sql);
$sth->execute;
if($dbh->err) {
print $dbh->errstr."\n";
$dbh->rollback;
exit(1);
}
print $sth->rows, "\n";
}
}
}
if($DRY_RUN) {
warn "Dry run complete. Reverting all changes.\n";
$dbh->rollback;
}
else {
# Warning: access_user->delete does not transactionize because of
# htpasswd issues.
print "Deleting merged user.\n";
my $error = $from_user->delete;
die $error if $error;
warn "Committing changes.\n";
$dbh->commit;
}
exit(0);
sub usage {
"Usage:\n merge-user admin_user from_usernum to_usernum [ 'go' ]\n
(Specify 'go' to actually apply changes.)\n\n";
}
Index: apache.export
===================================================================
RCS file: /home/cvs/cvsroot/freeside/bin/apache.export,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -w -d -r1.10 -r1.11
--- apache.export 22 Feb 2009 20:12:13 -0000 1.10
+++ apache.export 11 Jun 2010 04:14:23 -0000 1.11
@@ -47,6 +47,14 @@
use vars qw($zone $username $dir $email $config);
$zone = $svc_www->domain_record->zone;
$config = $svc_www->config;
+ my $template;
+ my $cust_pkg = $svc_www->cust_svc->cust_pkg;
+ if ( $cust_pkg->getfield('susp') or $cust_pkg->getfield('cancel') ) {
+ $template = $export->option('template_inactive');
+ }
+ # Use the regular template if the pkg is live
+ # or if template_inactive doesn't exist.
+ $template ||= $export->option('template');
if ( $svc_www->svc_acct ) {
$username = $svc_www->svc_acct->username;
$dir = $svc_www->svc_acct->dir;
More information about the freeside-commits
mailing list