remove $Log$ messages. whew.
[freeside.git] / httemplate / edit / process / svc_acct.cgi
1 <%
2 #<!-- $Id: svc_acct.cgi,v 1.2 2001-08-21 02:31:56 ivan Exp $ -->
3
4 use strict;
5 use vars qw( $cgi $svcnum $old $new $error );
6 use CGI;
7 use CGI::Carp qw(fatalsToBrowser);
8 use FS::UID qw(cgisuidsetup);
9 use FS::CGI qw(popurl);
10 use FS::Record qw(qsearchs fields);
11 use FS::svc_acct;
12
13 $cgi = new CGI;
14 &cgisuidsetup($cgi);
15
16 $cgi->param('svcnum') =~ /^(\d*)$/ or die "Illegal svcnum!";
17 $svcnum = $1;
18
19 if ( $svcnum ) {
20   $old = qsearchs('svc_acct', { 'svcnum' => $svcnum } )
21     or die "fatal: can't find account (svcnum $svcnum)!";
22 } else {
23   $old = '';
24 }
25
26 #unmunge popnum
27 $cgi->param('popnum', (split(/:/, $cgi->param('popnum') ))[0] );
28
29 #unmunge passwd
30 if ( $cgi->param('_password') eq '*HIDDEN*' ) {
31   die "fatal: no previous account to recall hidden password from!" unless $old;
32   $cgi->param('_password',$old->getfield('_password'));
33 }
34
35 $new = new FS::svc_acct ( {
36   map {
37     $_, scalar($cgi->param($_));
38   #} qw(svcnum pkgnum svcpart username _password popnum uid gid finger dir
39   #  shell quota slipip)
40   } ( fields('svc_acct'), qw( pkgnum svcpart ) )
41 } );
42
43 if ( $svcnum ) {
44   $error = $new->replace($old);
45 } else {
46   $error = $new->insert;
47   $svcnum = $new->svcnum;
48 }
49
50 if ( $error ) {
51   $cgi->param('error', $error);
52   print $cgi->redirect(popurl(2). "svc_acct.cgi?". $cgi->query_string );
53 } else {
54   print $cgi->redirect(popurl(3). "view/svc_acct.cgi?" . $svcnum );
55 }
56
57 %>