]> git.ipfire.org Git - ipfire-2.x.git/blob - html/cgi-bin/fireinfo.cgi
fireinfo.cgi: Use new system methods
[ipfire-2.x.git] / html / cgi-bin / fireinfo.cgi
1 #!/usr/bin/perl
2 ###############################################################################
3 # #
4 # IPFire.org - A linux based firewall #
5 # Copyright (C) 2011 IPFire Team <info@ipfire.org> #
6 # #
7 # This program is free software: you can redistribute it and/or modify #
8 # it under the terms of the GNU General Public License as published by #
9 # the Free Software Foundation, either version 3 of the License, or #
10 # (at your option) any later version. #
11 # #
12 # This program is distributed in the hope that it will be useful, #
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of #
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
15 # GNU General Public License for more details. #
16 # #
17 # You should have received a copy of the GNU General Public License #
18 # along with this program. If not, see <http://www.gnu.org/licenses/>. #
19 # #
20 ###############################################################################
21
22 use strict;
23
24 # enable only the following on debugging purpose
25 use warnings;
26 use CGI::Carp 'fatalsToBrowser';
27
28 require '/var/ipfire/general-functions.pl';
29 require "${General::swroot}/lang.pl";
30 require "${General::swroot}/header.pl";
31 require '/opt/pakfire/lib/functions.pl';
32
33 my $configfile = "/var/ipfire/main/send_profile";
34
35 my %fireinfosettings=();
36 my $errormessage='';
37
38 &Header::showhttpheaders();
39
40 $fireinfosettings{'ENABLE_FIREINFO'} = 'off';
41 $fireinfosettings{'ACTION'} = '';
42
43 &Header::getcgihash(\%fireinfosettings);
44
45 if ( -e "$configfile" ) {
46 $fireinfosettings{'ENABLE_FIREINFO'} = 'on';
47 }
48
49 if ("$fireinfosettings{'ACTION'}" eq "trigger") {
50 if ($fireinfosettings{'ENABLE_FIREINFO'} eq 'off') {
51 &General::log($Lang::tr{'fireinfo is enabled'});
52
53 # Write empty configfile.
54 open(FILE, ">$configfile");
55 close(FILE);
56
57 $fireinfosettings{'ENABLE_FIREINFO'} = 'on';
58 } else {
59 &General::log($Lang::tr{'fireinfo is disabled'});
60 unlink "$configfile";
61 $fireinfosettings{'ENABLE_FIREINFO'} = 'off';
62 }
63 &General::system_background("/usr/local/bin/fireinfoctrl");
64 }
65
66 &Header::openpage('Fireinfo', 1, '');
67
68 if ($fireinfosettings{'ENABLE_FIREINFO'} ne "on") {
69 &Header::openbox("100%", "left", "$Lang::tr{'fireinfo why enable'}");
70
71 print <<END;
72 <font color="$Header::colourred">
73 <p>
74 $Lang::tr{'fireinfo why descr1'}
75 $Lang::tr{'fireinfo why descr2'}<a href="https://fireinfo.ipfire.org" target="_blank">$Lang::tr{'fireinfo why read more'}</a>
76 </p>
77 </font>
78 END
79
80 &Header::closebox();
81 }
82
83 &Header::openbigbox('100%', 'left', '', $errormessage);
84
85 if ($errormessage) {
86 &Header::openbox('100%', 'left', "$Lang::tr{'error messages'}");
87 print "<font class='base'>$errormessage&nbsp;</font>\n";
88 &Header::closebox();
89 }
90
91 # Get IPFire version string.
92 open(FILE, "/etc/system-release");
93 my $ipfire_version = <FILE>;
94 close(FILE);
95
96 my $pakfire_version = &Pakfire::make_version();
97 my $kernel_version = &General::system_output("uname", "-a");
98
99 &Header::openbox('100%', 'left', $Lang::tr{'fireinfo system version'});
100 print <<END;
101 <table cellspacing='1' cellpadding='0' class='tbl'>
102 <tr>
103 <td align='center' bgcolor='#F0F0F0' width='15%'>$Lang::tr{'fireinfo ipfire version'}</td>
104 <td bgcolor='#F0F0F0'><code>$ipfire_version</code></td>
105 </tr>
106 <tr>
107 <td align='center' bgcolor='#D6D6D6' width='15%'>$Lang::tr{'fireinfo pakfire version'}</td>
108 <td bgcolor='#D6D6D6'><code>$pakfire_version</code></td>
109 </tr>
110 <tr>
111 <td align='center' bgcolor='#F0F0F0' width='15%'>$Lang::tr{'fireinfo kernel version'}</td>
112 <td bgcolor='#F0F0F0'><code>$kernel_version</code></td>
113 </tr>
114 </table>
115 END
116 &Header::closebox();
117
118 # Read pregenerated profile data
119 open(FILE, "/var/ipfire/fireinfo/profile");
120 my $profile = <FILE>;
121 close(FILE);
122 chomp($profile);
123
124 print "<form method='post' action='$ENV{'SCRIPT_NAME'}'>\n";
125
126 # Read profile ID from file
127 open(FILE, "/var/ipfire/fireinfo/public_id");
128 my $profile_id = <FILE>;
129 close(FILE);
130 chomp($profile_id);
131
132 &Header::openbox('100%', 'left', $Lang::tr{'fireinfo settings'});
133 print <<END;
134 <input type='hidden' name='ACTION' value='trigger' />
135 <table width='100%'>
136 <tr>
137 <td>$Lang::tr{'fireinfo your profile id'}:</td>
138 <td>
139 <a href="https://fireinfo.ipfire.org/profile/$profile_id" target="_blank">$profile_id</a>
140 </td>
141 </tr>
142 <tr>
143 <!-- spacer -->
144 <td colspan="2">&nbsp;</td>
145 </tr>
146 <tr>
147 <td class='base'>
148 END
149
150 if ($fireinfosettings{'ENABLE_FIREINFO'} eq "on") {
151 print "<font color='$Header::colourgreen'>$Lang::tr{'fireinfo is submitted'}</font>";
152 } else {
153 print "<font color='$Header::colourred'>$Lang::tr{'fireinfo not submitted'}</font>";
154 }
155
156 print "</td><td>";
157
158 if ($fireinfosettings{'ENABLE_FIREINFO'} eq "on") {
159 print "<input type='submit' name='submit' value=\"$Lang::tr{'fireinfo is submitted button'}\" />";
160 } else {
161 print "<input type='submit' name='submit' value=\"$Lang::tr{'fireinfo not submitted button'}\" />";
162 }
163
164 print <<END;
165 </td>
166 </tr>
167 <tr>
168 <!-- spacer -->
169 <td colspan="2"><font color='$Header::colourgreen'>&nbsp;</font></td>
170 </tr>
171 <tr>
172 <td colspan='2'>
173 <textarea rows="25" cols="75" readonly="readonly">$profile</textarea>
174 </td>
175 </tr>
176 </table>
177 END
178 ;
179 &Header::closebox();
180 print "</form>\n";
181
182 &Header::closebigbox();
183 &Header::closepage();