gpl.cgi: Fix proper redirection so that the agreement has only to be accepted once.
[people/teissler/ipfire-2.x.git] / html / cgi-bin / gpl.cgi
1 #!/usr/bin/perl
2 ###############################################################################
3 # #
4 # IPFire.org - A linux based firewall #
5 # Copyright (C) 2007-2012 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 # enable only the following on debugging purpose
24 #use warnings;
25 #use CGI::Carp 'fatalsToBrowser';
26
27 require '/var/ipfire/general-functions.pl';
28 require "${General::swroot}/lang.pl";
29 require "${General::swroot}/header.pl";
30 require "/opt/pakfire/lib/functions.pl";
31
32 # If the license has already been accepted.
33 if ( -e "/var/ipfire/main/gpl_accepted" ) {
34 &redirect();
35 }
36
37 my %cgiparams;
38 $cgiparams{'ACTION'} = '';
39
40 &Header::getcgihash(\%cgiparams);
41
42 # Check if the license agreement has been accepted.
43 if ($cgiparams{'ACTION'} eq "$Lang::tr{'yes'}" && $cgiparams{'gpl_accepted'} eq '1') {
44 open(FILE, ">/var/ipfire/main/gpl_accepted");
45 close(FILE);
46
47 &redirect();
48 }
49
50 &Header::showhttpheaders();
51
52 &Header::openpage($Lang::tr{'main page'}, 1);
53 &Header::openbigbox('', 'center');
54
55 &Header::openbox('100%', 'left', $Lang::tr{'gpl license agreement'});
56 print <<END;
57 $Lang::tr{'gpl please read carefully the general public license and accept it below'}.
58 <br /><br />
59 END
60 ;
61 if ( -e "/usr/share/doc/licenses/GPLv3" ) {
62 print '<textarea rows=\'25\' cols=\'75\' readonly=\'readonly\'>';
63 print `cat /usr/share/doc/licenses/GPLv3`;
64 print '</textarea>';
65 }
66 else {
67 print '<br /><a href=\'http://www.gnu.org/licenses/gpl-3.0.txt\' target=\'_blank\'>GNU GENERAL PUBLIC LICENSE</a><br />';
68 }
69 print <<END;
70 <p>
71 <form method='post' action='$ENV{'SCRIPT_NAME'}'>
72 <input type='checkbox' name='gpl_accepted' value='1'/> $Lang::tr{'gpl i accept these terms and conditions'}.
73 <br/ >
74 <input type='submit' name='ACTION' value=$Lang::tr{'yes'} />
75 </form>
76 </p>
77 <a href='http://www.gnu.org/licenses/translations.html' target='_blank'>$Lang::tr{'gpl unofficial translation of the general public license v3'}</a>
78
79 END
80
81 &Header::closebox();
82 &Header::closebigbox();
83 &Header::closepage();
84
85 sub redirect {
86 print "Status: 302 Moved Temporarily\n";
87 print "Location: index.cgi\n\n";
88 exit (0);
89 }