diff --git a/html/cgi-bin/captive.cgi b/html/cgi-bin/captive.cgi index 50f4795dd..a8add4d87 100755 --- a/html/cgi-bin/captive.cgi +++ b/html/cgi-bin/captive.cgi @@ -58,11 +58,6 @@ unless (-e $voucherout) { system("touch $voucherout"); } #actions if ($cgiparams{'ACTION'} eq "$Lang::tr{'save'}"){ - #Check Expiretime - if($cgiparams{'EXP_HOUR'}+$cgiparams{'EXP_DAY'}+$cgiparams{'EXP_WEEK'}+$cgiparams{'EXP_MONTH'} == 0 && $cgiparams{'UNLIMITED'} == ''){ - $errormessage=$Lang::tr{'Captive noexpiretime'}; - } - my $file = $cgiparams{'uploaded_file'}; if ($file){ #Check if extension is png @@ -76,11 +71,6 @@ if ($cgiparams{'ACTION'} eq "$Lang::tr{'save'}"){ $settings{'ENABLE_GREEN'} = $cgiparams{'ENABLE_GREEN'}; $settings{'ENABLE_BLUE'} = $cgiparams{'ENABLE_BLUE'}; $settings{'AUTH'} = $cgiparams{'AUTH'}; - $settings{'EXPIRE'} = $cgiparams{'EXP_HOUR'}+$cgiparams{'EXP_DAY'}+$cgiparams{'EXP_WEEK'}+$cgiparams{'EXP_MONTH'}; - $settings{'EXP_HOUR'} = $cgiparams{'EXP_HOUR'}; - $settings{'EXP_DAY'} = $cgiparams{'EXP_DAY'}; - $settings{'EXP_WEEK'} = $cgiparams{'EXP_WEEK'}; - $settings{'EXP_MONTH'} = $cgiparams{'EXP_MONTH'}; $settings{'TITLE'} = $cgiparams{'TITLE'}; $settings{'UNLIMITED'} = $cgiparams{'UNLIMITED'}; @@ -108,14 +98,6 @@ if ($cgiparams{'ACTION'} eq "$Lang::tr{'save'}"){ } } - #saves the Captiveportal settings to disk - if ($cgiparams{'UNLIMITED'} eq 'on'){ - $cgiparams{'EXP_HOUR'} = '0'; - $cgiparams{'EXP_DAY'} = '0'; - $cgiparams{'EXP_WEEK'} = '0'; - $cgiparams{'EXP_MONTH'} = '0'; - } - &General::writehash("$settingsfile", \%settings); #write Licensetext if defined @@ -135,9 +117,22 @@ if ($cgiparams{'ACTION'} eq "$Lang::tr{'save'}"){ } } -if ($cgiparams{'ACTION'} eq "$Lang::tr{'Captive voucherout'}"){ +if ($cgiparams{'ACTION'} eq "$Lang::tr{'Captive genvoucher'}"){ #generates a voucher and writes it to /var/ipfire/voucher_out + #calculate expiredate + my $expire; + if ($settings{'UNLIMITED'} eq 'on'){ + $expire = $Lang::tr{'Captive nolimit'}; + }else{ + $settings{'EXPIRE'} = $cgiparams{'EXP_HOUR'}+$cgiparams{'EXP_DAY'}+$cgiparams{'EXP_WEEK'}+$cgiparams{'EXP_MONTH'}; + $expire = sub{sprintf '%02d.%02d.%04d %02d:%02d', $_[3], $_[4]+1, $_[5]+1900, $_[2], $_[1] }->(localtime(time()+$settings{'EXPIRE'})); + } + + #Check Expiretime + if($cgiparams{'EXP_HOUR'}+$cgiparams{'EXP_DAY'}+$cgiparams{'EXP_WEEK'}+$cgiparams{'EXP_MONTH'} == 0 && $cgiparams{'UNLIMITED'} == ''){ + $errormessage=$Lang::tr{'Captive noexpiretime'}; + } #check if we already have a voucher with same code &General::readhasharray("$voucherout", \%voucherhash); foreach my $key (keys %voucherhash) { @@ -316,70 +311,6 @@ END print"
| $Lang::tr{'hours'} | $Lang::tr{'days'} | $Lang::tr{'weeks'} | $Lang::tr{'months'} | "; - - #print hour-dropdownbox - my $hrs=3600; - print "||
|---|---|---|---|---|---|
| "; - - #print day-dropdownbox - my $days=3600*24; - print " | "; - - #print week-dropdownbox - my $week=3600*24*7; - print " | "; - - #print month-dropdownbox - my $month=3600*24*30; - print " | "; - - print "$Lang::tr{'Captive nolimit'} | "; - - print "