This commit was manufactured by cvs2svn to create branch 'freeside_import'.
[freeside.git] / htdocs / misc / link.cgi
1 #!/usr/bin/perl -Tw
2 #
3 # link: instead of adding a new account, link to an existing. (output form)
4 #
5 # Note: Should be run setuid freeside as user nobody
6 #
7 # ivan@voicenet.com 97-feb-5
8 #
9 # rewrite ivan@sisd.com 98-mar-17
10 #
11 # can also link on some other fields now (about time) ivan@sisd.com 98-jun-24
12
13 use strict;
14 use CGI::Base qw(:DEFAULT :CGI);
15 use FS::UID qw(cgisuidsetup);
16 use FS::Record qw(qsearchs);
17
18 my(%link_field)=(
19   'svc_acct'    => 'username',
20   'svc_domain'  => 'domain',
21   'svc_acct_sm' => '',
22   'svc_charge'  => '',
23   'svc_wo'      => '',
24 );
25
26 my($cgi) = new CGI::Base;
27 $cgi->get;
28 cgisuidsetup($cgi);
29
30 my($pkgnum,$svcpart);
31 foreach $_ (split(/-/,$QUERY_STRING)) { #get & untaint pkgnum & svcpart
32   $pkgnum=$1 if /^pkgnum(\d+)$/;
33   $svcpart=$1 if /^svcpart(\d+)$/;
34 }
35
36 my($part_svc) = qsearchs('part_svc',{'svcpart'=>$svcpart});
37 my($svc) = $part_svc->getfield('svc');
38 my($svcdb) = $part_svc->getfield('svcdb');
39 my($link_field) = $link_field{$svcdb};
40
41 CGI::Base::SendHeaders();
42 print <<END;
43 <HTML>
44   <HEAD>
45     <TITLE>Link to existing $svc account</TITLE>
46   </HEAD>
47   <BODY>
48     <CENTER>
49     <H1>Link to existing $svc account</H1>
50     </CENTER><HR>
51     <FORM ACTION="process/link.cgi" METHOD=POST>
52 END
53
54 if ( $link_field ) { 
55   print <<END;
56   <INPUT TYPE="hidden" NAME="svcnum" VALUE="">
57   <INPUT TYPE="hidden" NAME="link_field" VALUE="$link_field">
58   $link_field of existing service: <INPUT TYPE="text" NAME="link_value">
59 END
60 } else {
61   print qq!Service # of existing service: <INPUT TYPE="text" NAME="svcnum" VALUE="">!;
62 }
63
64 print <<END;
65 <INPUT TYPE="hidden" NAME="pkgnum" VALUE="$pkgnum">
66 <INPUT TYPE="hidden" NAME="svcpart" VALUE="$svcpart">
67 <P><CENTER><INPUT TYPE="submit" VALUE="Link"></CENTER>
68     </FORM>
69   </BODY>
70 </HTML>
71 END
72