This commit was generated by cvs2svn to compensate for changes in r3880,
[freeside.git] / httemplate / edit / process / svc_acct.cgi
1 <%
2
3 $cgi->param('svcnum') =~ /^(\d*)$/ or die "Illegal svcnum!";
4 my $svcnum = $1;
5
6 my $old;
7 if ( $svcnum ) {
8   $old = qsearchs('svc_acct', { 'svcnum' => $svcnum } )
9     or die "fatal: can't find account (svcnum $svcnum)!";
10 } else {
11   $old = '';
12 }
13
14 #unmunge popnum
15 $cgi->param('popnum', (split(/:/, $cgi->param('popnum') ))[0] );
16
17 #unmunge passwd
18 if ( $cgi->param('_password') eq '*HIDDEN*' ) {
19   die "fatal: no previous account to recall hidden password from!" unless $old;
20   $cgi->param('_password',$old->getfield('_password'));
21 }
22
23 #unmunge usergroup
24 $cgi->param('usergroup', [ $cgi->param('radius_usergroup') ] );
25
26 my $new = new FS::svc_acct ( {
27   map {
28     $_, scalar($cgi->param($_));
29   #} qw(svcnum pkgnum svcpart username _password popnum uid gid finger dir
30   #  shell quota slipip)
31   } ( fields('svc_acct'), qw( pkgnum svcpart usergroup ) )
32 } );
33
34 my $error;
35 if ( $svcnum ) {
36   $error = $new->replace($old);
37 } else {
38   $error = $new->insert;
39   $svcnum = $new->svcnum;
40 }
41
42 if ( $error ) {
43   $cgi->param('error', $error);
44   print $cgi->redirect(popurl(2). "svc_acct.cgi?". $cgi->query_string );
45 } else {
46   print $cgi->redirect(popurl(3). "view/svc_acct.cgi?" . $svcnum );
47 }
48
49 %>