summaryrefslogtreecommitdiff
path: root/FS
diff options
context:
space:
mode:
authorivan <ivan>2002-06-12 20:31:28 +0000
committerivan <ivan>2002-06-12 20:31:28 +0000
commit8646bec77602ba7b5b9928a8d408ff5bea5b0bc1 (patch)
treeaadeffdc21974ffea6b3661166ef2931d1df280d /FS
parent6bfaf79c950d6050412bbbf9f66861bd500c7a3f (diff)
fix new duplicate username checking
Diffstat (limited to 'FS')
-rw-r--r--FS/FS/svc_acct.pm35
1 files changed, 21 insertions, 14 deletions
diff --git a/FS/FS/svc_acct.pm b/FS/FS/svc_acct.pm
index 03230dd..ce76fe5 100644
--- a/FS/FS/svc_acct.pm
+++ b/FS/FS/svc_acct.pm
@@ -194,12 +194,25 @@ sub insert {
return $error if $error;
#no, duplicate checking just got a whole lot more complicated
+ #(perhaps keep this check with a config option to turn on?)
#return gettext('username_in_use'). ": ". $self->username
# if qsearchs( 'svc_acct', { 'username' => $self->username,
# 'domsvc' => $self->domsvc,
# } );
+ if ( $self->svcnum ) {
+ my $cust_svc = qsearchs('cust_svc',{'svcnum'=>$self->svcnum});
+ unless ( $cust_svc ) {
+ $dbh->rollback if $oldAutoCommit;
+ return "no cust_svc record found for svcnum ". $self->svcnum;
+ }
+ $self->pkgnum($cust_svc->pkgnum);
+ $self->svcpart($cust_svc->svcpart);
+ }
+
+ #new duplicate username checking
+
my @dup_user = qsearch( 'svc_acct', { 'username' => $self->username } );
my @dup_userdomain = qsearchs( 'svc_acct', { 'username' => $self->username,
'domsvc' => $self->domsvc } );
@@ -208,13 +221,19 @@ sub insert {
my $exports = FS::part_export::export_info('svc_acct');
my( %conflict_user_svcpart, %conflict_userdomain_svcpart );
- foreach my $part_export ( $self->cust_svc->part_svc->part_export ) {
+ my $part_svc = qsearchs('part_svc', { 'svcpart' => $self->svcpart } );
+ unless ( $part_svc ) {
+ $dbh->rollback if $oldAutoCommit;
+ return 'unknown svcpart '. $self->svcpart;
+ }
+
+ foreach my $part_export ( $part_svc->part_export ) {
#this will catch to the same exact export
my @svcparts = map { $_->svcpart }
qsearch('export_svc', { 'exportnum' => $part_export->exportnum });
- #this will catch exports w/same exporthost+type ???
+ #this will catch to exports w/same exporthost+type ???
#my @other_part_export = qsearch('part_export', {
# 'machine' => $part_export->machine,
# 'exporttype' => $part_export->exporttype,
@@ -255,16 +274,6 @@ sub insert {
#see? i told you it was more complicated
- if ( $self->svcnum ) {
- my $cust_svc = qsearchs('cust_svc',{'svcnum'=>$self->svcnum});
- unless ( $cust_svc ) {
- $dbh->rollback if $oldAutoCommit;
- return "no cust_svc record found for svcnum ". $self->svcnum;
- }
- $self->pkgnum($cust_svc->pkgnum);
- $self->svcpart($cust_svc->svcpart);
- }
-
my $part_svc = qsearchs( 'part_svc', { 'svcpart' => $self->svcpart } );
return "Unknown svcpart" unless $part_svc;
return "uid in use"
@@ -379,8 +388,6 @@ sub delete {
}
}
- my $part_svc = $self->cust_svc->part_svc;
-
my $error = $self->SUPER::delete;
if ( $error ) {
$dbh->rollback if $oldAutoCommit;