change configuration file layout to support multiple distinct databases (with
[freeside.git] / htdocs / view / svc_acct_sm.cgi
1 #!/usr/bin/perl -Tw
2 #
3 # View svc_acct_sm records
4 #
5 # Usage: svc_acct_sm.cgi svcnum
6 #        http://server.name/path/svc_acct_sm.cgi?svcnum
7 #
8 # Note: Should be run setuid freeside as user nobody.
9 #
10 # based on view/svc_acct.cgi
11
12 # ivan@voicenet.com 97-jan-5
13 #
14 # added navigation bar
15 # ivan@voicenet.com 97-jan-30
16
17 # rewrite ivan@sisd.com 98-mar-15
18 #
19 # Changes to allow page to work at a relative position in server
20 #       bmccane@maxbaud.net     98-apr-3
21 #
22 # /var/spool/freeside/conf/domain ivan@sisd.com 98-jul-17
23
24 use strict;
25 use CGI::Base qw(:DEFAULT :CGI);
26 use FS::UID qw(cgisuidsetup);
27 use FS::Record qw(qsearchs);
28
29 my($conf_domain)="/var/spool/freeside/conf/domain";
30 open(DOMAIN,$conf_domain) or die "Can't open $conf_domain: $!";
31 my($mydomain)=map {
32   /^(.*)$/ or die "Illegal line in $conf_domain!"; #yes, we trust the file
33   $1
34 } grep $_ !~ /^(#|$)/, <DOMAIN>;
35 close DOMAIN;
36
37 my($cgi) = new CGI::Base;
38 $cgi->get;
39 cgisuidsetup($cgi);
40
41 #untaint svcnum
42 $QUERY_STRING =~ /^(\d+)$/;
43 my($svcnum)=$1;
44 my($svc_acct_sm)=qsearchs('svc_acct_sm',{'svcnum'=>$svcnum});
45 die "Unknown svcnum" unless $svc_acct_sm;
46
47 my($cust_svc)=qsearchs('cust_svc',{'svcnum'=>$svcnum});
48 my($pkgnum)=$cust_svc->getfield('pkgnum');
49 my($cust_pkg,$custnum);
50 if ($pkgnum) {
51   $cust_pkg=qsearchs('cust_pkg',{'pkgnum'=>$pkgnum});
52   $custnum=$cust_pkg->getfield('custnum');
53 }
54
55 my($part_svc)=qsearchs('part_svc',{'svcpart'=> $cust_svc->svcpart } );
56 die "Unkonwn svcpart" unless $part_svc;
57
58 SendHeaders(); # one guess.
59 print <<END;
60 <HTML>
61   <HEAD>
62     <TITLE>Mail Alias View</TITLE>
63   </HEAD>
64   <BODY>
65     <CENTER><H1>Mail Alias View</H1>
66 END
67 if ($pkgnum || $custnum) {
68   print <<END;
69 <A HREF="../view/cust_pkg.cgi?$pkgnum">View this package (#$pkgnum)</A> | 
70 <A HREF="../view/cust_main.cgi?$custnum">View this customer (#$custnum)</A> | 
71 END
72 } else {
73   print <<END;
74 <A HREF="../misc/cancel-unaudited.cgi?$svcnum">Cancel this (unaudited)account</A> |
75 END
76 }
77
78 print <<END;
79     <A HREF="../">Main menu</A></CENTER><BR<
80     <FONT SIZE=+1>Service #$svcnum</FONT>
81     <P><A HREF="../edit/svc_acct_sm.cgi?$svcnum">Edit this information</A>
82     <BASEFONT SIZE=3>
83 END
84
85 my($domsvc,$domuid,$domuser)=(
86   $svc_acct_sm->domsvc,
87   $svc_acct_sm->domuid,
88   $svc_acct_sm->domuser,
89 );
90 my($svc) = $part_svc->svc;
91 my($svc_domain)=qsearchs('svc_domain',{'svcnum'=>$domsvc});
92 my($domain)=$svc_domain->domain;
93 my($svc_acct)=qsearchs('svc_acct',{'uid'=>$domuid});
94 my($username)=$svc_acct->username;
95
96 #formatting
97 print qq!<HR>!;
98
99 #svc
100 print "Service: <B>$svc</B>";
101
102 print "<HR>";
103
104 print qq!Mail to <B>!, ( ($domuser eq '*') ? "<I>(anything)</I>" : $domuser ) , qq!</B>\@<B>$domain</B> forwards to <B>$username</B>\@$mydomain mailbox.!;
105
106 print "<HR>";
107
108         #formatting
109         print <<END;
110
111   </BODY>
112 </HTML>
113 END
114