/[smecontribs]/rpms/smeserver-dansguardian-panel/contribs9/smeserver-dansguardian-panel-2.11-newPerlModulesPath.patch
ViewVC logotype

Annotation of /rpms/smeserver-dansguardian-panel/contribs9/smeserver-dansguardian-panel-2.11-newPerlModulesPath.patch

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.1 - (hide annotations) (download)
Thu May 26 16:59:10 2016 UTC (8 years, 5 months ago) by unnilennium
Branch: MAIN
CVS Tags: smeserver-dansguardian-panel-2_11-15, smeserver-dansguardian-panel-2_11-14, smeserver-dansguardian-panel-2_11-17, smeserver-dansguardian-panel-2_11-16, smeserver-dansguardian-panel-2_11-10, smeserver-dansguardian-panel-2_11-13, smeserver-dansguardian-panel-2_11-12, smeserver-dansguardian-panel-2_11-9, smeserver-dansguardian-panel-2_11-8, smeserver-dansguardian-panel--, HEAD
* Thu May 26 2016 Jean-Philipe Pialasse <tests@pialasse.com> 2.11-8.sme
- fix wrong path to module [SME: 9526]

1 unnilennium 1.1 diff -Nur smeserver-dansguardian-panel-2.11-old/root/usr/lib/perl5/site_perl/esmith/FormMagick/Panel/dungogdansguardian.pm smeserver-dansguardian-panel-2.11/root/usr/lib/perl5/site_perl/esmith/FormMagick/Panel/dungogdansguardian.pm
2     --- smeserver-dansguardian-panel-2.11-old/root/usr/lib/perl5/site_perl/esmith/FormMagick/Panel/dungogdansguardian.pm 2009-03-13 22:23:20.000000000 -0400
3     +++ smeserver-dansguardian-panel-2.11/root/usr/lib/perl5/site_perl/esmith/FormMagick/Panel/dungogdansguardian.pm 1969-12-31 19:00:00.000000000 -0500
4     @@ -1,1236 +0,0 @@
5     -#----------------------------------------------------------------------
6     -# dungogdansguardian.pm
7     -# support@dungog.net
8     -#----------------------------------------------------------------------
9     -
10     -package esmith::FormMagick::Panel::dungogdansguardian;
11     -
12     -use strict;
13     -use warnings;
14     -
15     -use esmith::FormMagick;
16     -use esmith::ConfigDB;
17     -use esmith::AccountsDB;
18     -use esmith::cgi;
19     -
20     -use Exporter;
21     -use Carp qw(verbose);
22     -
23     -use HTML::Tabulate;
24     -
25     -our @ISA = qw(esmith::FormMagick Exporter);
26     -
27     -our @EXPORT = qw();
28     -
29     -our $db = esmith::ConfigDB->open();
30     -our $adb = esmith::AccountsDB->open();
31     -our $ddb = esmith::ConfigDB->open('dungog') or die "Could not open dungog DB\n";
32     -our $bdb = esmith::ConfigDB->open('blacklist') or die "Could not open blacklist DB\n";
33     -our $pdb = esmith::ConfigDB->open('phraselist') or die "Could not open phraselist DB\n";
34     -
35     -
36     -sub new {
37     - shift;
38     - my $self = esmith::FormMagick->new();
39     - $self->{calling_package} = (caller)[0];
40     - bless $self;
41     - return $self;
42     -}
43     -
44     -sub get_loglevel
45     -{
46     - return $ddb->get_prop('dansguardian', 'loglevel');
47     -}
48     -sub get_logfileformat
49     -{
50     - return $ddb->get_prop('dansguardian', 'logfileformat');
51     -}
52     -sub get_proxyaccess
53     -{
54     - return $db->get_prop('squid', 'RequireAuth');
55     -}
56     -sub get_portblocking
57     -{
58     - return $db->get_prop('dansguardian', 'portblocking');
59     -}
60     -sub get_port
61     -{
62     - return $ddb->get_prop('dansguardian', 'port');
63     -}
64     -sub get_status
65     -{
66     - return $db->get_prop('dansguardian', 'status');
67     -}
68     -sub get_bypassproxyto
69     -{
70     - return $db->get_prop('squid', 'BypassProxyTo');
71     -}
72     -sub get_bypassproxyfrom
73     -{
74     - return $db->get_prop('squid', 'BypassProxyFrom');
75     -}
76     -sub get_TCPBlocks
77     -{
78     - return $db->get_prop('masq', 'TCPBlocks');
79     -}
80     -sub get_UDPBlocks
81     -{
82     - return $db->get_prop('masq', 'UDPBlocks');
83     -}
84     -sub get_mode
85     -{
86     - my $self = shift;
87     - my $q = $self->{cgi};
88     - my $g = $q->param('g') ||'';
89     - return $ddb->get_prop("dansguardian$g", 'mode');
90     -}
91     -sub get_bypass
92     -{
93     - my $self = shift;
94     - my $q = $self->{cgi};
95     - my $g = $q->param('g') ||'';
96     - return $ddb->get_prop("dansguardian$g", 'bypass');
97     -}
98     -sub get_reportinglevel
99     -{
100     - my $self = shift;
101     - my $q = $self->{cgi};
102     - my $g = $q->param('g') ||'';
103     - return $ddb->get_prop("dansguardian$g", 'reportinglevel');
104     -}
105     -sub get_deniedpage
106     -{
107     - my $self = shift;
108     - my $q = $self->{cgi};
109     - my $g = $q->param('g') ||'';
110     - return $ddb->get_prop("dansguardian$g", 'deniedpage');
111     -}
112     -sub get_deniedurl
113     -{
114     - my $self = shift;
115     - my $q = $self->{cgi};
116     - my $g = $q->param('g') ||'';
117     - return $ddb->get_prop("dansguardian$g", 'deniedurl');
118     -}
119     -sub get_scan
120     -{
121     - my $self = shift;
122     - my $q = $self->{cgi};
123     - my $g = $q->param('g') ||'';
124     - return $ddb->get_prop("dansguardian$g", 'scan');
125     -}
126     -sub get_weight
127     -{
128     - my $self = shift;
129     - my $q = $self->{cgi};
130     - my $g = $q->param('g') ||'';
131     - return $ddb->get_prop("dansguardian$g", 'weight');
132     -}
133     -sub get_pics
134     -{
135     - my $self = shift;
136     - my $q = $self->{cgi};
137     - my $g = $q->param('g' ||'');
138     - return $ddb->get_prop("dansguardian$g", 'pics');
139     -}
140     -sub get_regexpurl
141     -{
142     - my $self = shift;
143     - my $q = $self->{cgi};
144     - my $g = $q->param('g') ||'';
145     - return $ddb->get_prop("dansguardian$g", 'regexpurl');
146     -}
147     -sub get_regexpsearch
148     -{
149     - my $self = shift;
150     - my $q = $self->{cgi};
151     - my $g = $q->param('g') ||'';
152     - return $ddb->get_prop("dansguardian$g", 'regexpsearch');
153     -}
154     -sub get_regexpurlads
155     -{
156     - my $self = shift;
157     - my $q = $self->{cgi};
158     - my $g = $q->param('g') ||'';
159     - return $ddb->get_prop("dansguardian$g", 'regexpurlads');
160     -}
161     -sub get_regexpurlproxy
162     -{
163     - my $self = shift;
164     - my $q = $self->{cgi};
165     - my $g = $q->param('g') ||'';
166     - return $ddb->get_prop("dansguardian$g", 'regexpurlproxy');
167     -}
168     -sub get_blanketban
169     -{
170     - my $self = shift;
171     - my $q = $self->{cgi};
172     - my $g = $q->param('g') ||'';
173     - return $ddb->get_prop("dansguardian$g", 'blanketban');
174     -}
175     -sub get_ipban
176     -{
177     - my $self = shift;
178     - my $q = $self->{cgi};
179     - my $g = $q->param('g') ||'';
180     - return $ddb->get_prop("dansguardian$g", 'ipban');
181     -}
182     -sub get_https
183     -{
184     - my $self = shift;
185     - my $q = $self->{cgi};
186     - my $g = $q->param('g') ||'';
187     - return $ddb->get_prop("dansguardian$g", 'https');
188     -}
189     -sub get_file
190     -{
191     - my $self = shift;
192     - my $q = $self->{cgi};
193     - my $g = $q->param('g') ||'';
194     - return $ddb->get_prop("dansguardian$g", 'file');
195     -}
196     -sub get_criterion
197     -{
198     - my $self = shift;
199     - my $q = $self->{cgi};
200     - my $key = $q->param('key') ||'';
201     - return $ddb->get_prop($key, 'criterion') || '';
202     -}
203     -
204     -sub get_status_summary
205     -{
206     - my $self = shift;
207     - my $q = $self->{cgi};
208     -
209     - my $status = $db->get_prop('dansguardian', "status");
210     - my $Auth = $db->get_prop('squid', "RequireAuth");
211     - my $port = $ddb->get_prop('dansguardian', "port");
212     - my $block = $db->get_prop('dansguardian', "portblocking");
213     -
214     - my $STATUS = $self->localise('STATUS');
215     - my $PORT = $self->localise('PORT');
216     - my $PROXYACCESS = $self->localise('PROXYACCESS');
217     - my $BLOCKING = $self->localise('PORTBLOCKING');
218     -
219     - my $status2;
220     - if ($status eq 'enabled')
221     - { $status2 = $self->localise('ENABLED'); } else { $status2 = $self->localise('DISABLED'); }
222     -
223     - my $block2;
224     - if ($block eq 'yes')
225     - { $block2 = $self->localise('ENABLED'); } else { $block2 = $self->localise('DISABLED'); }
226     -
227     - return "$STATUS : <b>$status2</b>, $PORT : <b>$port</b>, $PROXYACCESS : <b>$Auth</b>, $BLOCKING : <b>$block2</b>";
228     -}
229     -
230     -sub get_custom_denied
231     -{
232     - my $self = shift;
233     - my $q = $self->{cgi};
234     - my $g = $q->param('g') ||'';
235     - my $Ldefault = $self->localise('Ldefault');
236     -
237     - my $defaults = $ddb->get_prop("dansguardian", "deniedurl") || 'dansguardian.pl';
238     -
239     - my $deniedurl = $ddb->get_prop("dansguardian$g", "deniedurl") || 'nul';
240     - if (($deniedurl eq 'nul') && (-e "/home/e-smith/files/ibays/Primary/cgi-bin/dansguardian$g.pl"))
241     - { $deniedurl = "dansguardian$g.pl"; }
242     -
243     - my $language = $ddb->get_prop('dansguardian', "language") || 'ukenglish';
244     - my $customhtml = 'nul';
245     - if (-e "/etc/dansguardian/languages/$language/template$g.html")
246     - { $customhtml = "$language/template$g.html"; }
247     -
248     - return "$Ldefault = $defaults, html = $customhtml, cgi = $deniedurl";
249     -}
250     -
251     -sub print_global_table
252     -{
253     - my $self = shift;
254     - my $q = $self->{cgi};
255     -
256     - my $description = $self->localise('DESCRIPTION');
257     - my $Lf2 = $self->localise('Lf2');
258     - my $Lf3 = $self->localise('Lf3');
259     - my $Lf4 = $self->localise('Lf4');
260     - my $Lf5 = $self->localise('Lf5');
261     -
262     - my @groups = $adb->get_all_by_prop(type => "group");
263     - my @gnames = '';
264     - foreach my $g (@groups)
265     - {
266     - my $groupname = $g->key();
267     - push (@gnames, $groupname)
268     - }
269     -
270     - print $q->start_table({-CLASS => "sme-border"}),"\n";
271     - print $q->Tr (
272     - esmith::cgi::genSmallCell($q, $description,"header"),
273     - esmith::cgi::genSmallCell($q, '',"header")),"\n";
274     -
275     -
276     - print $q->Tr (esmith::cgi::genSmallCell ($q, $Lf2),
277     - esmith::cgi::genSmallCell ($q,
278     - $q->popup_menu (-name => "f2",
279     - -values => [ sort @gnames ],
280     - -default => $ddb->get_prop('dansguardian', "f2") || '')));
281     -
282     - print $q->Tr (esmith::cgi::genSmallCell ($q, $Lf3),
283     - esmith::cgi::genSmallCell ($q,
284     - $q->popup_menu (-name => "f3",
285     - -values => [ sort @gnames ],
286     - -default => $ddb->get_prop('dansguardian', "f3") || '')));
287     -
288     - print $q->Tr (esmith::cgi::genSmallCell ($q, $Lf4),
289     - esmith::cgi::genSmallCell ($q,
290     - $q->popup_menu (-name => "f4",
291     - -values => [ sort @gnames ],
292     - -default => $ddb->get_prop('dansguardian', "f4") || '')));
293     -
294     - print $q->Tr (esmith::cgi::genSmallCell ($q, $Lf5),
295     - esmith::cgi::genSmallCell ($q,
296     - $q->popup_menu (-name => "f5",
297     - -values => [ sort @gnames ],
298     - -default => $ddb->get_prop('dansguardian', "f5") || '')));
299     -
300     - print $q->end_table;
301     -
302     - return "";
303     -}
304     -
305     -sub print_summary
306     -{
307     - my $self = shift;
308     - my $q = $self->{cgi};
309     -
310     - my $description = $self->localise('DESCRIPTION');
311     - my $LAllow = $self->localise('LAllow');
312     - my $LClient_IP = $self->localise('LClient_IP');
313     - my $LDeny = $self->localise('LDeny');
314     - my $modify = $self->localise('MODIFY');
315     - my $Lcommon = $self->localise('Lcommon');
316     - my $Ldefault = $self->localise('Ldefault');
317     - my $Lf0 = $self->localise('Lf0');
318     - my $Lf1 = $self->localise('Lf1');
319     - my $Lf2 = $self->localise('Lf2');
320     - my $Lf3 = $self->localise('Lf3');
321     - my $Lf4 = $self->localise('Lf4');
322     - my $Lf5 = $self->localise('Lf5');
323     - my $GROUP = $self->localise('GROUP');
324     - my $Lmode = $self->localise('Lmode');
325     - my $LURLban = $self->localise('LURLban');
326     - my $Lscan = $self->localise('Lscan');
327     - my $Lbypass = $self->localise('Lbypass');
328     - my $Llists = $self->localise('Llists');
329     - my $Lsettings = $self->localise('Lsettings');
330     -
331     - my @groups = $adb->get_all_by_prop(type => "group");
332     - my @gnames = '';
333     - foreach my $g (@groups)
334     - {
335     - my $groupname = $g->key();
336     - push (@gnames, $groupname)
337     - }
338     -
339     - print $q->start_table({-CLASS => "sme-border"}),"\n";
340     - print $q->Tr (
341     - esmith::cgi::genSmallCell($q, $description,"header"),
342     - esmith::cgi::genSmallCell($q, $GROUP,"header"),
343     - esmith::cgi::genSmallCell($q, $Lmode,"header"),
344     - esmith::cgi::genSmallCell($q, $LURLban,"header"),
345     - esmith::cgi::genSmallCell($q, $Lscan,"header"),
346     - esmith::cgi::genSmallCell($q, $Lbypass,"header"),
347     - esmith::cgi::genSmallCell($q, $Lsettings,"header"),
348     - esmith::cgi::genSmallCell($q, $Llists,"header")),"\n";
349     -
350     - print $q->Tr (esmith::cgi::genSmallCell ($q, $Lf0),
351     - esmith::cgi::genSmallCell ($q, ''),
352     - esmith::cgi::genSmallCell ($q, ''),
353     - esmith::cgi::genSmallCell ($q, ''),
354     - esmith::cgi::genSmallCell ($q, ''),
355     - esmith::cgi::genSmallCell ($q, ''),
356     - esmith::cgi::genSmallCell ($q, ''),
357     - esmith::cgi::genSmallCell ($q,
358     - $q->a ({href => $q->url (-absolute => 1)
359     - . "?page=0&page_stack=&g=f0&gname=$Lcommon&wherenext=GroupLists"}, $modify)));
360     -
361     - print $q->Tr (esmith::cgi::genSmallCell ($q, $Lf1),
362     - esmith::cgi::genSmallCell ($q, ''),
363     - esmith::cgi::genSmallCell ($q, $ddb->get_prop('dansguardianf1', "mode") || ''),
364     - esmith::cgi::genSmallCell ($q, $ddb->get_prop('dansguardianf1', "blanketban") . " / " .
365     - $ddb->get_prop('dansguardianf1', "https") . " / " .
366     - $ddb->get_prop('dansguardianf1', "ipban") . " / " .
367     - $ddb->get_prop('dansguardianf1', "file") . " - " .
368     - $ddb->get_prop('dansguardianf1', "regexpurl") . " / " .
369     - $ddb->get_prop('dansguardianf1', "regexpurlads") . " / " .
370     - $ddb->get_prop('dansguardianf1', "regexpurlproxy")),
371     - esmith::cgi::genSmallCell ($q, $ddb->get_prop('dansguardianf1', "scan") || ''),
372     - esmith::cgi::genSmallCell ($q, $ddb->get_prop('dansguardianf1', "bypass") || ''),
373     - esmith::cgi::genSmallCell ($q,
374     - $q->a ({href => $q->url (-absolute => 1)
375     - . "?page=0&page_stack=&g=f1&gname=$Ldefault&wherenext=GroupSettings"}, $modify)),
376     - esmith::cgi::genSmallCell ($q,
377     - $q->a ({href => $q->url (-absolute => 1)
378     - . "?page=0&page_stack=&g=f1&gname=$Ldefault&wherenext=GroupLists"}, $modify)));
379     -
380     - my $gname = $ddb->get_prop('dansguardian', "f2");
381     - if ($gname) {
382     - print $q->Tr (esmith::cgi::genSmallCell ($q, $Lf2),
383     - esmith::cgi::genSmallCell ($q, $gname ),
384     - esmith::cgi::genSmallCell ($q, $ddb->get_prop('dansguardianf2', "mode") || ''),
385     - esmith::cgi::genSmallCell ($q, $ddb->get_prop('dansguardianf2', "blanketban") . " / " .
386     - $ddb->get_prop('dansguardianf2', "https") . " / " .
387     - $ddb->get_prop('dansguardianf2', "ipban") . " / " .
388     - $ddb->get_prop('dansguardianf2', "file") . " - " .
389     - $ddb->get_prop('dansguardianf2', "regexpurl") . " / " .
390     - $ddb->get_prop('dansguardianf2', "regexpurlads") . " / " .
391     - $ddb->get_prop('dansguardianf2', "regexpurlproxy")),
392     - esmith::cgi::genSmallCell ($q, $ddb->get_prop('dansguardianf2', "scan") || ''),
393     - esmith::cgi::genSmallCell ($q, $ddb->get_prop('dansguardianf2', "bypass") || ''),
394     - esmith::cgi::genSmallCell ($q,
395     - $q->a ({href => $q->url (-absolute => 1)
396     - . "?page=0&page_stack=&g=f2&gname=$gname&wherenext=GroupSettings"}, $modify)),
397     - esmith::cgi::genSmallCell ($q,
398     - $q->a ({href => $q->url (-absolute => 1)
399     - . "?page=0&page_stack=&g=f2&gname=$gname&wherenext=GroupLists"}, $modify)));
400     - }
401     -
402     - $gname = $ddb->get_prop('dansguardian', "f3");
403     - if ($gname) {
404     - print $q->Tr (esmith::cgi::genSmallCell ($q, $Lf3),
405     - esmith::cgi::genSmallCell ($q, $gname ),
406     - esmith::cgi::genSmallCell ($q, $ddb->get_prop('dansguardianf3', "mode") || ''),
407     - esmith::cgi::genSmallCell ($q, $ddb->get_prop('dansguardianf3', "blanketban") . " / " .
408     - $ddb->get_prop('dansguardianf3', "https") . " / " .
409     - $ddb->get_prop('dansguardianf3', "ipban") . " / " .
410     - $ddb->get_prop('dansguardianf3', "file") . " - " .
411     - $ddb->get_prop('dansguardianf3', "regexpurl") . " / " .
412     - $ddb->get_prop('dansguardianf3', "regexpurlads") . " / " .
413     - $ddb->get_prop('dansguardianf3', "regexpurlproxy")),
414     - esmith::cgi::genSmallCell ($q, $ddb->get_prop('dansguardianf3', "scan") || ''),
415     - esmith::cgi::genSmallCell ($q, $ddb->get_prop('dansguardianf3', "bypass") || ''),
416     - esmith::cgi::genSmallCell ($q,
417     - $q->a ({href => $q->url (-absolute => 1)
418     - . "?page=0&page_stack=&g=f3&gname=$gname&wherenext=GroupSettings"}, $modify)),
419     - esmith::cgi::genSmallCell ($q,
420     - $q->a ({href => $q->url (-absolute => 1)
421     - . "?page=0&page_stack=&g=f3&gname=$gname&wherenext=GroupLists"}, $modify)));
422     - }
423     -
424     - $gname = $ddb->get_prop('dansguardian', "f4");
425     - if ($gname) {
426     - print $q->Tr (esmith::cgi::genSmallCell ($q, $Lf4),
427     - esmith::cgi::genSmallCell ($q, $gname ),
428     - esmith::cgi::genSmallCell ($q, $ddb->get_prop('dansguardianf4', "mode") || ''),
429     - esmith::cgi::genSmallCell ($q, $ddb->get_prop('dansguardianf4', "blanketban") . " / " .
430     - $ddb->get_prop('dansguardianf4', "https") . " / " .
431     - $ddb->get_prop('dansguardianf4', "ipban") . " / " .
432     - $ddb->get_prop('dansguardianf4', "file") . " - " .
433     - $ddb->get_prop('dansguardianf4', "regexpurl") . " / " .
434     - $ddb->get_prop('dansguardianf4', "regexpurlads") . " / " .
435     - $ddb->get_prop('dansguardianf4', "regexpurlproxy")),
436     - esmith::cgi::genSmallCell ($q, $ddb->get_prop('dansguardianf4', "scan") || ''),
437     - esmith::cgi::genSmallCell ($q, $ddb->get_prop('dansguardianf4', "bypass") || ''),
438     - esmith::cgi::genSmallCell ($q,
439     - $q->a ({href => $q->url (-absolute => 1)
440     - . "?page=0&page_stack=&g=f4&gname=$gname&wherenext=GroupSettings"}, $modify)),
441     - esmith::cgi::genSmallCell ($q,
442     - $q->a ({href => $q->url (-absolute => 1)
443     - . "?page=0&page_stack=&g=f4&gname=$gname&wherenext=GroupLists"}, $modify)));
444     - }
445     -
446     - $gname = $ddb->get_prop('dansguardian', "f5");
447     - if ($gname) {
448     - print $q->Tr (esmith::cgi::genSmallCell ($q, $Lf5),
449     - esmith::cgi::genSmallCell ($q, $gname ),
450     - esmith::cgi::genSmallCell ($q, $ddb->get_prop('dansguardianf5', "mode") || ''),
451     - esmith::cgi::genSmallCell ($q, $ddb->get_prop('dansguardianf5', "blanketban") . " / " .
452     - $ddb->get_prop('dansguardianf5', "https") . " / " .
453     - $ddb->get_prop('dansguardianf5', "ipban") . " / " .
454     - $ddb->get_prop('dansguardianf5', "file") . " - " .
455     - $ddb->get_prop('dansguardianf5', "regexpurl") . " / " .
456     - $ddb->get_prop('dansguardianf5', "regexpurlads") . " / " .
457     - $ddb->get_prop('dansguardianf5', "regexpurlproxy")),
458     - esmith::cgi::genSmallCell ($q, $ddb->get_prop('dansguardianf5', "scan") || ''),
459     - esmith::cgi::genSmallCell ($q, $ddb->get_prop('dansguardianf5', "bypass") || ''),
460     - esmith::cgi::genSmallCell ($q,
461     - $q->a ({href => $q->url (-absolute => 1)
462     - . "?page=0&page_stack=&g=f5&gname=$gname&wherenext=GroupSettings"}, $modify)),
463     - esmith::cgi::genSmallCell ($q,
464     - $q->a ({href => $q->url (-absolute => 1)
465     - . "?page=0&page_stack=&g=f5&gname=$gname&wherenext=GroupLists"}, $modify)));
466     - }
467     -
468     - print $q->end_table;
469     -
470     - return "";
471     -}
472     -
473     -sub save_reload
474     -{
475     - my $self = shift;
476     - my $q = $self->{cgi};
477     -
478     - foreach ('loglevel','logfileformat','f2','f3','f4','f5','deniedurl')
479     - { $ddb->set_prop('dansguardian', "$_", $q->param("$_")); }
480     -
481     - unless ( system ("/sbin/e-smith/signal-event", "dansguardian-reload") == 0 )
482     - { return $self->error('ERROR'); }
483     -
484     - return $self->success("SUCCESS");
485     -}
486     -
487     -sub save_group_settings
488     -{
489     - my $self = shift;
490     - my $q = $self->{cgi};
491     - my $g = $q->param ('g') ||'';
492     -
493     - foreach ('mode','bypass','reportinglevel','scan','weight','pics','deniedpage','deniedurl',
494     - 'regexpurl','regexpsearch','regexpurlads','regexpurlproxy','blanketban','https','ipban','file')
495     - { $ddb->set_prop("dansguardian$g", "$_", $q->param("$_")); }
496     -
497     - unless ( system ("/sbin/e-smith/signal-event", "dansguardian-reload") == 0 )
498     - { return $self->error('ERROR'); }
499     -
500     - return $self->success("SUCCESS");
501     -}
502     -
503     -sub save_proxy
504     -{
505     - my $self = shift;
506     - my $q = $self->{cgi} ||'';
507     -
508     - my $status = $q->param ('status') || '';
509     - my $proxyaccess = $q->param ('proxyaccess') || '';
510     - my $portblocking = $q->param ('portblocking') || '';
511     - my $port = $q->param ('port') || '';
512     -
513     - $db->set_prop('squid', "RequireAuth", $proxyaccess);
514     - $ddb->set_prop('dansguardian', "port", $port);
515     -
516     - my $bypassproxyfrom = $q->param ('bypassproxyfrom') || '';
517     - my $bypassproxyto = $q->param ('bypassproxyto') || '';
518     - my $TCPBlocks = $q->param ('TCPBlocks') || '';
519     - my $UDPBlocks = $q->param ('UDPBlocks') || '';
520     -
521     - $db->set_prop('squid', "BypassProxyFrom", $bypassproxyfrom);
522     - $db->set_prop('squid', "BypassProxyTo", $bypassproxyto);
523     - $db->set_prop('masq', "UDPBlocks", $UDPBlocks);
524     - $db->set_prop('masq', "TCPBlocks", $TCPBlocks);
525     -
526     - if ($status eq 'disabled')
527     - {
528     - $db->set_prop('squid', "TransparentPort", '3128');
529     - $db->set_prop('dansguardian', "status", 'disabled');
530     - $db->set_prop('dansguardian', "portblocking", 'no');
531     -
532     - unless ( system ("/sbin/e-smith/signal-event", "dansguardian-save") == 0 )
533     - { return $self->error('ERROR'); }
534     -
535     - return $self->success("SUCCESS_STOP");
536     - }
537     - else
538     - {
539     - $db->set_prop('squid', "TransparentPort", $port);
540     - $db->set_prop('dansguardian', "status", 'enabled');
541     - $db->set_prop('dansguardian', "portblocking", $portblocking);
542     - }
543     -
544     - unless ( system ("/sbin/e-smith/signal-event", "dansguardian-save") == 0 )
545     - { return $self->error('ERROR'); }
546     -
547     - return $self->success("SUCCESS_PROMPT");
548     -}
549     -
550     -sub portentry
551     -{
552     - my ($fm, $port) = @_;
553     - if (not $port)
554     - {
555     - return "FM_NONBLANK";
556     - }
557     - elsif ($port =~ /^(\d{4})$/)
558     - {
559     - return "OK";
560     - }
561     - else
562     - {
563     - return "ERROR_PORT";
564     - }
565     -}
566     -
567     -sub print_list_table
568     -{
569     - my $self = shift;
570     - my $q = $self->{cgi};
571     - my $g = $q->param('g') || '';
572     - my $gname = $q->param('gname') || '';
573     -
574     - my $description = $self->localise('DESCRIPTION');
575     - my $Lasite = $self->localise('Lasite');
576     - my $Laurl = $self->localise('Laurl');
577     - my $Lphrases = $self->localise('Lphrases');
578     - my $Lregexp = $self->localise('Lregexp');
579     - my $Lfileext = $self->localise('Lfileext');
580     - my $Lmimetype = $self->localise('Lmimetype');
581     - my $ALLlists = $self->localise('LALLlists');
582     - my $ENABLED = $self->localise('ENABLED');
583     -
584     - my $Lgrey = $self->localise('Lgrey');
585     - my $Lweighted = $self->localise('Lweighted');
586     - my $Lmodifyurl = $self->localise('Lmodifyurl');
587     - my $LAllow = $self->localise('LAllow');
588     - my $LDeny = $self->localise('LDeny');
589     - my $LAVexcept = $self->localise('LAVexcept');
590     - my $Lexception = $self->localise('Lexception');
591     - my $Lblacklist = $self->localise('Lblacklist');
592     - my $Lphraselist = $self->localise('Lphraselist');
593     - my $Lrepcon = $self->localise('Lrepcon');
594     - my $Lallowurl = $self->localise('Lallowurl');
595     - my $Lallowsite = $self->localise('Lallowsite');
596     - my $LClientIP = $self->localise('LClientIP');
597     - my $Lcommon = $self->localise('Lcommon');
598     - my $Commonlists = $self->localise('LCommonlists');
599     -
600     - print $q->start_table({-CLASS => "sme-border"}),"\n";
601     - print $q->Tr (
602     - esmith::cgi::genSmallCell($q, $description,"header"),
603     - esmith::cgi::genSmallCell($q, $q->a ({href => $q->url (-absolute => 1)
604     - . "?page=0&page_stack=&g=$g&gname=$gname&wherenext=ShowAllLists"}, $ALLlists),"header"),
605     - esmith::cgi::genSmallCell($q, '',"header"),
606     - esmith::cgi::genSmallCell($q, '',"header"),
607     - esmith::cgi::genSmallCell($q, '',"header"),
608     - esmith::cgi::genSmallCell($q, $q->a ({href => $q->url (-absolute => 1)
609     - . "?page=0&page_stack=&g=$g&gname=$gname&wherenext=ShowCommonLists"}, $Commonlists),"header"));
610     -
611     - print $q->Tr (esmith::cgi::genSmallCell ($q, $Lasite),
612     - esmith::cgi::genSmallCell ($q,
613     - $q->a ({href => $q->url (-absolute => 1)
614     - . "?page=0&page_stack=&g=$g&list=greysitelist$g&wherenext=ViewList"}, $Lgrey)),
615     - esmith::cgi::genSmallCell ($q,
616     - $q->a ({href => $q->url (-absolute => 1)
617     - . "?page=0&page_stack=&g=$g&list=exceptionsitelist$g&wherenext=ViewList"}, $LAllow)),
618     - esmith::cgi::genSmallCell ($q,
619     - $q->a ({href => $q->url (-absolute => 1)
620     - . "?page=0&page_stack=&g=$g&list=bannedsitelist$g&wherenext=ViewList"}, $LDeny)),
621     - esmith::cgi::genSmallCell ($q,''),
622     - esmith::cgi::genSmallCell ($q,
623     - $q->a ({href => $q->url (-absolute => 1)
624     - . "?page=0&page_stack=&g=f0&list=exceptionvirussitelist&wherenext=ViewList"}, $LAVexcept)));
625     -
626     - print $q->Tr (esmith::cgi::genSmallCell ($q, $Laurl),
627     - esmith::cgi::genSmallCell ($q,
628     - $q->a ({href => $q->url (-absolute => 1)
629     - . "?page=0&page_stack=&g=$g&list=greyurllist$g&wherenext=ViewList"}, $Lgrey)),
630     - esmith::cgi::genSmallCell ($q,
631     - $q->a ({href => $q->url (-absolute => 1)
632     - . "?page=0&page_stack=&g=$g&list=exceptionurllist$g&wherenext=ViewList"}, $LAllow)),
633     - esmith::cgi::genSmallCell ($q,
634     - $q->a ({href => $q->url (-absolute => 1)
635     - . "?page=0&page_stack=&g=$g&list=bannedurllist$g&wherenext=ViewList"}, $LDeny)),
636     - esmith::cgi::genSmallCell ($q,''),
637     - esmith::cgi::genSmallCell ($q,
638     - $q->a ({href => $q->url (-absolute => 1)
639     - . "?page=0&page_stack=&g=f0&list=exceptionvirusurllist&wherenext=ViewList"}, $LAVexcept)));
640     -
641     - print $q->Tr (esmith::cgi::genSmallCell ($q, $Lphrases),
642     - esmith::cgi::genSmallCell ($q,
643     - $q->a ({href => $q->url (-absolute => 1)
644     - . "?page=0&page_stack=&g=$g&list=weightedphraselist$g&wherenext=ViewList"}, $Lweighted)),
645     - esmith::cgi::genSmallCell ($q,
646     - $q->a ({href => $q->url (-absolute => 1)
647     - . "?page=0&page_stack=&g=$g&list=exceptionphraselist$g&wherenext=ViewList"}, $LAllow)),
648     - esmith::cgi::genSmallCell ($q,
649     - $q->a ({href => $q->url (-absolute => 1)
650     - . "?page=0&page_stack=&g=$g&list=bannedphraselist$g&wherenext=ViewList"}, $LDeny)),
651     - esmith::cgi::genSmallCell ($q, ''),
652     - esmith::cgi::genSmallCell ($q,''));
653     -
654     - print $q->Tr (esmith::cgi::genSmallCell ($q, $Lregexp),
655     - esmith::cgi::genSmallCell ($q,
656     - $q->a ({href => $q->url (-absolute => 1)
657     - . "?page=0&page_stack=&g=$g&list=urlregexplist$g&wherenext=ViewList"}, $Lmodifyurl)),
658     - esmith::cgi::genSmallCell ($q,
659     - $q->a ({href => $q->url (-absolute => 1)
660     - . "?page=0&page_stack=&g=$g&list=exceptionregexpurllist$g&wherenext=ViewList"}, $LAllow)),
661     - esmith::cgi::genSmallCell ($q,
662     - $q->a ({href => $q->url (-absolute => 1)
663     - . "?page=0&page_stack=&g=$g&list=bannedregexpurllist$g&wherenext=ViewList"}, $LDeny)),
664     - esmith::cgi::genSmallCell ($q,
665     - $q->a ({href => $q->url (-absolute => 1)
666     - . "?page=0&page_stack=&g=$g&list=contentregexplist$g&wherenext=ViewList"}, $Lrepcon)),
667     - esmith::cgi::genSmallCell ($q, ''));
668     -
669     -
670     - print $q->Tr (esmith::cgi::genSmallCell ($q, $Lfileext),
671     - esmith::cgi::genSmallCell ($q, ''),
672     - esmith::cgi::genSmallCell ($q,
673     - $q->a ({href => $q->url (-absolute => 1)
674     - . "?page=0&page_stack=&g=$g&list=exceptionextensionlist$g&wherenext=ViewList"}, $Lexception)),
675     - esmith::cgi::genSmallCell ($q,
676     - $q->a ({href => $q->url (-absolute => 1)
677     - . "?page=0&page_stack=&g=$g&list=bannedextensionlist$g&wherenext=ViewList"}, $LDeny)),
678     - esmith::cgi::genSmallCell ($q,
679     - $q->a ({href => $q->url (-absolute => 1)
680     - . "?page=0&page_stack=&g=$g&list=exceptionfileurllist$g&wherenext=ViewList"}, $Lallowurl)),
681     - esmith::cgi::genSmallCell ($q,
682     - $q->a ({href => $q->url (-absolute => 1)
683     - . "?page=0&page_stack=&g=f0&list=exceptionvirusextensionlist&wherenext=ViewList"}, $LAVexcept)));
684     -
685     - print $q->Tr (esmith::cgi::genSmallCell ($q, $Lmimetype),
686     - esmith::cgi::genSmallCell ($q, ''),
687     - esmith::cgi::genSmallCell ($q,
688     - $q->a ({href => $q->url (-absolute => 1)
689     - . "?page=0&page_stack=&g=$g&list=exceptionmimetypelist$g&wherenext=ViewList"}, $Lexception)),
690     - esmith::cgi::genSmallCell ($q,
691     - $q->a ({href => $q->url (-absolute => 1)
692     - . "?page=0&page_stack=&g=$g&list=bannedmimetypelist$g&wherenext=ViewList"}, $LDeny)),
693     - esmith::cgi::genSmallCell ($q,
694     - $q->a ({href => $q->url (-absolute => 1)
695     - . "?page=0&page_stack=&g=$g&list=exceptionfilesitelist$g&wherenext=ViewList"}, $Lallowsite)),
696     - esmith::cgi::genSmallCell ($q,
697     - $q->a ({href => $q->url (-absolute => 1)
698     - . "?page=0&page_stack=&g=f0&list=exceptionvirusmimetypelist&wherenext=ViewList"}, $LAVexcept)));
699     -
700     - #Client IP
701     - if ($g eq 'f0')
702     - {
703     - print $q->Tr (esmith::cgi::genSmallCell ($q, $LClientIP),
704     - esmith::cgi::genSmallCell ($q, ''),
705     - esmith::cgi::genSmallCell ($q,
706     - $q->a ({href => $q->url (-absolute => 1)
707     - . "?page=0&page_stack=&g=$g&list=exceptioniplist&wherenext=ViewList"}, $Lexception)),
708     - esmith::cgi::genSmallCell ($q,
709     - $q->a ({href => $q->url (-absolute => 1)
710     - . "?page=0&page_stack=&g=$g&list=bannediplist&wherenext=ViewList"}, $LDeny)),
711     - esmith::cgi::genSmallCell ($q, ''),
712     - esmith::cgi::genSmallCell ($q, ''));
713     - }
714     -
715     - #prepared lists
716     - unless ($g eq 'f0')
717     - {
718     - print $q->Tr (esmith::cgi::genSmallCell ($q, $ENABLED),
719     - esmith::cgi::genSmallCell ($q, ''),
720     - esmith::cgi::genSmallCell ($q,
721     - $q->a ({href => $q->url (-absolute => 1)
722     - . "?page=0&page_stack=&g=$g&gname=$gname&wherenext=ViewPhraseList"}, $Lphraselist)),
723     - esmith::cgi::genSmallCell ($q,
724     - $q->a ({href => $q->url (-absolute => 1)
725     - . "?page=0&page_stack=&g=$g&gname=$gname&wherenext=ViewBlackList"}, $Lblacklist)),
726     - esmith::cgi::genSmallCell ($q, ''),
727     - esmith::cgi::genSmallCell ($q, ''));
728     - }
729     -
730     - print $q->end_table;
731     - return "";
732     -}
733     -
734     -sub print_list_description
735     -{
736     - my $self = shift;
737     - my $q = $self->{cgi};
738     - my $g = $q->param ('g') ||'';
739     - my $desc = $self->localise('MODIFY_LIST_SETTINGS');
740     -
741     - if ($g eq 'f0')
742     - {
743     - $desc = $self->localise('MODIFY_GLOBAL_LIST_SETTINGS');
744     - }
745     -
746     - return "$desc";
747     -}
748     -
749     -sub print_record_table
750     -{
751     - my $self = shift;
752     - my $q = $self->{cgi};
753     - my $g = $q->param ('g') ||'';
754     - my $list = $q->param('list') ||'';
755     -
756     - my $record = $self->localise('RECORD');
757     - my $modify = $self->localise('MODIFY');
758     - my $remove = $self->localise('REMOVE');
759     - my $new = $self->localise('NEW');
760     -
761     -
762     - print $q->start_table({-CLASS => "sme-border"}),"\n";
763     - print $q->Tr (
764     - esmith::cgi::genSmallCell($q, $record,"header"),
765     - esmith::cgi::genSmallCell($q, '',"header"),
766     - esmith::cgi::genSmallCell($q, '',"header")),"\n";
767     -
768     - print $q->Tr (esmith::cgi::genSmallCell ($q, ''),
769     - esmith::cgi::genSmallCell ($q, ''),
770     - esmith::cgi::genSmallCell ($q,
771     - $q->a ({href => $q->url (-absolute => 1)
772     - . "?page=0&page_stack=&g=$g&list=$list&key=new&wherenext=Edit"}, $new)));
773     -
774     - foreach my $hash ($ddb->get_all_by_prop(type => $list))
775     - {
776     - my $key = $hash->key;
777     - my $criterion = $hash->prop("criterion") || '';
778     -
779     - #allows for three sets of bracketed words
780     - #$record =~ s/</&lt\;/g; ??
781     - #$record =~ s/>/&gt\;/g;
782     - $criterion =~ s/</&lt\;/;
783     - $criterion =~ s/>/&gt\;/;
784     - $criterion =~ s/</&lt\;/;
785     - $criterion =~ s/>/&gt\;/;
786     - $criterion =~ s/</&lt\;/;
787     - $criterion =~ s/>/&gt\;/;
788     -
789     - print $q->Tr (esmith::cgi::genSmallCell ($q, $criterion),
790     - esmith::cgi::genSmallCell ($q,
791     - $q->a ({href => $q->url (-absolute => 1)
792     - . "?page=0&page_stack=&g=$g&list=$list&key=$key&wherenext=Edit"}, $modify)),
793     - esmith::cgi::genSmallCell ($q,
794     - $q->a ({href => $q->url (-absolute => 1)
795     - . "?page=0&page_stack=&g=$g&criterion=$criterion&key=$key&wherenext=Delete"}, $remove)));
796     - }
797     -
798     - print $q->end_table;
799     -
800     - return "";
801     -}
802     -
803     -sub print_all_lists
804     -{
805     - my $self = shift;
806     - my $q = $self->{cgi};
807     - my $g = $q->param ('g') ||'';
808     - my $all = ();
809     -
810     - if ($g =~ /^(f\d{1})$/)
811     - {
812     - $g = $1;
813     - }
814     -
815     - print $q->start_table({-CLASS => "sme-border"}),"\n";
816     -
817     - $all .= "<code>\n";
818     -
819     - my @files = ('bannedextensionlist','bannedsitelist','exceptionfilesitelist','exceptionregexpurllist',
820     - 'greysitelist','weightedphraselist','bannedmimetypelist','bannedurllist','exceptionfileurllist',
821     - 'exceptionsitelist','greyurllist','bannedphraselist','contentregexplist','exceptionmimetypelist','exceptionurllist','pics',
822     - 'bannedregexpurllist','exceptionextensionlist','exceptionphraselist','greyregexpurllist','urlregexplist');
823     -
824     - foreach (@files)
825     - {
826     -
827     - if ( -e "/etc/dansguardian/lists/$g/$_" )
828     - {
829     - open (INF,"/etc/dansguardian/lists/$g/$_")
830     - or die ("can't open /etc/dansguardian/lists/$g/$_ to read. ");
831     -
832     - $all .= "<br>\n";
833     - $all .= "<b> /etc/dansguardian/lists/$g/$_ </b><br>\n";
834     -
835     - while (<INF>)
836     - {
837     - # allow for 4 sets
838     - $_ =~ s/</&lt\;/;
839     - $_ =~ s/>/&gt\;/;
840     - $_ =~ s/</&lt\;/;
841     - $_ =~ s/>/&gt\;/;
842     - $_ =~ s/</&lt\;/;
843     - $_ =~ s/>/&gt\;/;
844     - $_ =~ s/</&lt\;/;
845     - $_ =~ s/>/&gt\;/;
846     -
847     - $all .= "$_<br>\n";
848     - }
849     - close INF;
850     - }
851     - }
852     -
853     - $all .= "<\code>\n";
854     -
855     - print $q->end_table;
856     -
857     - return "$all";
858     -}
859     -
860     -sub print_common_lists
861     -{
862     - my $self = shift;
863     - my $q = $self->{cgi};
864     - my $g = $q->param ('g') ||'';
865     - my $all = ();
866     -
867     - if ($g =~ /^(f\d{1})$/)
868     - {
869     - $g = $1;
870     - }
871     -
872     - print $q->start_table({-CLASS => "sme-border"}),"\n";
873     -
874     - $all .= "<code>\n";
875     -
876     - my @files = ('exceptioniplist','bannediplist','contentscanners/exceptionvirusextensionlist',
877     - 'contentscanners/exceptionvirusmimetypelist','contentscanners/exceptionvirussitelist','contentscanners/exceptionvirusurllist');
878     -
879     - foreach (@files)
880     - {
881     -
882     - if ( -e "/etc/dansguardian/lists/$_" )
883     - {
884     - open (INF,"/etc/dansguardian/lists/$_")
885     - or die ("can't open /etc/dansguardian/lists/$_ to read. ");
886     -
887     - $all .= "<br>\n";
888     - $all .= "<b> /etc/dansguardian/lists/$_ </b><br>\n";
889     -
890     - while (<INF>)
891     - {
892     - # allow for 4 sets
893     - $_ =~ s/</&lt\;/;
894     - $_ =~ s/>/&gt\;/;
895     - $_ =~ s/</&lt\;/;
896     - $_ =~ s/>/&gt\;/;
897     - $_ =~ s/</&lt\;/;
898     - $_ =~ s/>/&gt\;/;
899     - $_ =~ s/</&lt\;/;
900     - $_ =~ s/>/&gt\;/;
901     -
902     - $all .= "$_<br>\n";
903     - }
904     - close INF;
905     - }
906     - }
907     -
908     - $all .= "<\code>\n";
909     -
910     - print $q->end_table;
911     -
912     - return "$all";
913     -}
914     -
915     -sub print_phraselist_head
916     -{
917     - my $self = shift;
918     - my $q = $self->{cgi} ||'';
919     - my $all = ();
920     -
921     - print $q->start_table({-CLASS => "sme-border"}),"\n";
922     -
923     - $all .= "<code>\n";
924     -
925     - system ("/usr/bin/head /etc/dansguardian/lists/phraselists/*/* > /tmp/lists") == 0
926     - or die ("Error occurred reading phraselists\n");
927     -
928     - if ( -e "/tmp/lists" )
929     - {
930     - open (INF,"/tmp/lists")
931     - or die ("can't open /tmp/lists read. ");
932     -
933     - $all .= "<br><b> head /etc/dansguardian/lists/phraselists/* </b><br>\n";
934     -
935     - while (<INF>)
936     - {
937     - # allow for 4 sets
938     - $_ =~ s/</&lt\;/;
939     - $_ =~ s/>/&gt\;/;
940     - $_ =~ s/</&lt\;/;
941     - $_ =~ s/>/&gt\;/;
942     - $_ =~ s/</&lt\;/;
943     - $_ =~ s/>/&gt\;/;
944     - $_ =~ s/</&lt\;/;
945     - $_ =~ s/>/&gt\;/;
946     -
947     - $all .= "$_<br>\n";
948     - }
949     - close INF;
950     - }
951     -
952     - $all .= "<\code>\n";
953     - print $q->end_table;
954     - return "$all";
955     -}
956     -sub print_blacklist_head
957     -{
958     - my $self = shift;
959     - my $q = $self->{cgi};
960     - my $all = ();
961     -
962     - print $q->start_table({-CLASS => "sme-border"}),"\n";
963     -
964     - $all .= "<code>\n";
965     -
966     - system ("/usr/bin/head /etc/dansguardian/blacklists/*/* > /tmp/lists") == 0
967     - or die ("Error occurred reading phraselists\n");
968     -
969     - if ( -e "/tmp/lists" )
970     - {
971     - open (INF,"/tmp/lists")
972     - or die ("can't open /tmp/lists read. ");
973     -
974     - $all .= "<br><b> head /etc/dansguardian/blacklists/* </b><br>\n";
975     -
976     - while (<INF>)
977     - {
978     - # allow for 4 sets
979     - $_ =~ s/</&lt\;/;
980     - $_ =~ s/>/&gt\;/;
981     - $_ =~ s/</&lt\;/;
982     - $_ =~ s/>/&gt\;/;
983     - $_ =~ s/</&lt\;/;
984     - $_ =~ s/>/&gt\;/;
985     - $_ =~ s/</&lt\;/;
986     - $_ =~ s/>/&gt\;/;
987     -
988     - $all .= "$_<br>\n";
989     - }
990     - close INF;
991     - }
992     -
993     - $all .= "<\code>\n";
994     - print $q->end_table;
995     - return "$all";
996     -}
997     -
998     -sub save_record
999     -{
1000     - my $self = shift;
1001     - my $q = $self->{cgi};
1002     - my $g = $q->param ('g') ||'';
1003     - my $key = $q->param ('key') ||'';
1004     - my $list = $q->param ('list') ||'';
1005     - my $criterion = $q->param ('criterion');
1006     -
1007     - if ($key eq 'new')
1008     - {
1009     - my $random = int(rand(999999));
1010     - $key = $list.$random;
1011     - $ddb->new_record($key, { type => "$list" });
1012     - }
1013     - $ddb->set_prop($key, 'criterion', $criterion);
1014     -
1015     - return $self->success("SUCCESS_STORED");
1016     -}
1017     -sub delete_record
1018     -{
1019     - my $self = shift;
1020     - my $q = $self->{cgi} ||'';
1021     - my $key = $q->param('key') ||'';
1022     -
1023     - my $rec = $ddb->get($key);
1024     - $rec->delete;
1025     -
1026     - return $self->success("SUCCESS_STORED");
1027     -}
1028     -
1029     -sub print_phraselist_table
1030     -{
1031     - my $self = shift;
1032     - my $q = $self->{cgi};
1033     - my $g = $q->param ('g') ||'';
1034     -
1035     - my $Llist = $self->localise('LIST');
1036     -
1037     - my @lists = $pdb->get_all_by_prop(type => "list");
1038     - my @gnames = '';
1039     - foreach my $g (@lists)
1040     - {
1041     - my $groupname = $g->key();
1042     - push (@gnames, $groupname)
1043     - }
1044     -
1045     - my @installed = ('badwords','googlesearches');
1046     - foreach (@gnames)
1047     - {
1048     - push (@installed, $_)
1049     - if (-e "/etc/dansguardian/lists/phraselists/$_/weighted");
1050     - }
1051     -
1052     - #hide table if you have no rules
1053     - my $installed = @installed || 'no lists';
1054     - if ($installed eq 'no lists')
1055     - {
1056     - return "$self->localise('ERROR');"
1057     - }
1058     - else
1059     - {
1060     -
1061     - print $q->start_table({-CLASS => "sme-border"}),"\n";
1062     -
1063     - print $q->Tr ( esmith::cgi::genSmallCell($q, $Llist,"header"),
1064     - esmith::cgi::genSmallCell($q, '',"header")),"\n";
1065     -
1066     - #checkboxes
1067     - my ($a, $aa) = '';
1068     - foreach (sort @installed)
1069     - {
1070     - $a = $_;
1071     - $aa = $pdb->get_prop($_, $g) || '';
1072     - if ($aa eq 'on') { $aa = "checked"; }
1073     -
1074     - print $q->Tr (esmith::cgi::genSmallCell ($q, $_),
1075     - esmith::cgi::genSmallCell ($q, ("<input type=\"checkbox\" name=\"$a\" $aa>")));
1076     - }
1077     - }
1078     -
1079     - print $q->end_table;
1080     -
1081     - return "";
1082     -}
1083     -sub save_phrase
1084     -{
1085     - my $self = shift;
1086     - my $q = $self->{cgi};
1087     - my $g = $q->param ('g') ||'';
1088     -
1089     - my @lists = $pdb->get_all_by_prop(type => "list");
1090     - my @gnames = '';
1091     - foreach my $g (@lists)
1092     - {
1093     - my $groupname = $g->key();
1094     - push (@gnames, $groupname)
1095     - }
1096     -
1097     - my @installed = ();
1098     - foreach (@gnames)
1099     - {
1100     - push (@installed, $_)
1101     - if (-e "/etc/dansguardian/lists/phraselists/$_/weighted");
1102     - }
1103     -
1104     - #skip if you have nothing
1105     - my $installed = @installed || 'no lists';
1106     - unless ($installed eq 'no lists')
1107     - {
1108     - #from checkboxes
1109     - my ($a, $aa) = '';
1110     - foreach (@installed)
1111     - {
1112     - my $a = $_;
1113     - my $aa = $q->param ($a) || '';
1114     - $pdb->set_prop($_, $g, $aa);
1115     - }
1116     - }
1117     -
1118     - return $self->success("SUCCESS_STORED");
1119     -}
1120     -
1121     -
1122     -sub print_blacklist_table
1123     -{
1124     - my $self = shift;
1125     - my $q = $self->{cgi};
1126     - my $g = $q->param ('g') ||'';
1127     -
1128     - my $Llist = $self->localise('LIST');
1129     - my $LWhite = $self->localise('LWhite');
1130     - my $LGrey = $self->localise('Lgrey');
1131     - my $LBlack = $self->localise('LBlack');
1132     -
1133     - my @lists = $bdb->get_all_by_prop(type => "list");
1134     - my @gnames = '';
1135     - foreach my $g (@lists)
1136     - {
1137     - my $groupname = $g->key();
1138     - push (@gnames, $groupname)
1139     - }
1140     -
1141     - my @installed = ();
1142     - foreach (@gnames)
1143     - {
1144     - push (@installed, $_)
1145     - if (-e "/etc/dansguardian/blacklists/$_/domains");
1146     - }
1147     -
1148     - #hide table if you have no rules
1149     - my $installed = @installed || 'no lists';
1150     - if ($installed eq 'no lists')
1151     - {
1152     - return "$self->localise('NO_BLACK');"
1153     - }
1154     - else
1155     - {
1156     - print $q->start_table({-CLASS => "sme-border"}),"\n";
1157     - print $q->Tr (
1158     - esmith::cgi::genSmallCell($q, $Llist,"header"),
1159     - esmith::cgi::genSmallCell($q, $LWhite,"header"),
1160     - esmith::cgi::genSmallCell($q, $LGrey,"header"),
1161     - esmith::cgi::genSmallCell($q, $LBlack,"header")),"\n";
1162     -
1163     - #checkboxes
1164     - my ($a, $b, $c, $aa, $bb, $cc) = '';
1165     - foreach (sort @installed)
1166     - {
1167     - $a = $_.'white';
1168     - $aa = $bdb->get_prop($_, "white$g") || '';
1169     - if ($aa eq 'on') { $aa = "checked"; }
1170     -
1171     - my $b = $_.'grey';
1172     - $bb = $bdb->get_prop($_, "grey$g") || '';
1173     - if ($bb eq 'on') { $bb = "checked"; }
1174     -
1175     - my $c = $_.'black';
1176     - $cc= $bdb->get_prop($_, "black$g") || '';
1177     - if ($cc eq 'on') { $cc = "checked"; }
1178     -
1179     - #todo
1180     - my $listname = $self->localise($_);
1181     -
1182     - print $q->Tr
1183     - (esmith::cgi::genSmallCell ($q, $listname),
1184     - esmith::cgi::genSmallCell ($q, ("<input type=\"checkbox\" name=\"$a\" $aa>")),
1185     - esmith::cgi::genSmallCell ($q, ("<input type=\"checkbox\" name=\"$b\" $bb>")),
1186     - esmith::cgi::genSmallCell ($q, ("<input type=\"checkbox\" name=\"$c\" $cc>")));
1187     - }
1188     - }
1189     -
1190     - print $q->end_table;
1191     -
1192     - return "";
1193     -}
1194     -sub save_black
1195     -{
1196     - my $self = shift;
1197     - my $q = $self->{cgi};
1198     - my $g = $q->param ('g') ||'';
1199     -
1200     - my @lists = $bdb->get_all_by_prop(type => "list");
1201     - my @gnames = '';
1202     - foreach my $g (@lists)
1203     - {
1204     - my $groupname = $g->key();
1205     - push (@gnames, $groupname)
1206     - }
1207     -
1208     - my @installed = ();
1209     - foreach (@gnames)
1210     - {
1211     - push (@installed, $_)
1212     - if (-e "/etc/dansguardian/blacklists/$_/domains");
1213     - }
1214     -
1215     - #skip if you have nothing
1216     - my $installed = @installed || 'no lists';
1217     - unless ($installed eq 'no lists')
1218     - {
1219     - #from checkboxes
1220     - my ($a, $b, $c, $aa, $bb, $cc,) = '';
1221     - foreach (@installed)
1222     - {
1223     - my $a = $_.'white';
1224     - my $aa = $q->param ("$a") || '';
1225     - $bdb->set_prop($_, "white$g", $aa);
1226     -
1227     - my $b = $_.'grey';
1228     - my $bb = $q->param ("$b") || '';
1229     - $bdb->set_prop($_, "grey$g", $bb);
1230     -
1231     - my $c = $_.'black';
1232     - my $cc = $q->param ("$c") || '';
1233     - $bdb->set_prop($_, "black$g", $cc);
1234     - }
1235     - }
1236     -
1237     - return $self->success("SUCCESS_STORED");
1238     -}
1239     -
1240     -1;
1241     diff -Nur smeserver-dansguardian-panel-2.11-old/root/usr/share/perl5/vendor_perl/esmith/FormMagick/Panel/dungogdansguardian.pm smeserver-dansguardian-panel-2.11/root/usr/share/perl5/vendor_perl/esmith/FormMagick/Panel/dungogdansguardian.pm
1242     --- smeserver-dansguardian-panel-2.11-old/root/usr/share/perl5/vendor_perl/esmith/FormMagick/Panel/dungogdansguardian.pm 1969-12-31 19:00:00.000000000 -0500
1243     +++ smeserver-dansguardian-panel-2.11/root/usr/share/perl5/vendor_perl/esmith/FormMagick/Panel/dungogdansguardian.pm 2009-03-13 22:23:20.000000000 -0400
1244     @@ -0,0 +1,1236 @@
1245     +#----------------------------------------------------------------------
1246     +# dungogdansguardian.pm
1247     +# support@dungog.net
1248     +#----------------------------------------------------------------------
1249     +
1250     +package esmith::FormMagick::Panel::dungogdansguardian;
1251     +
1252     +use strict;
1253     +use warnings;
1254     +
1255     +use esmith::FormMagick;
1256     +use esmith::ConfigDB;
1257     +use esmith::AccountsDB;
1258     +use esmith::cgi;
1259     +
1260     +use Exporter;
1261     +use Carp qw(verbose);
1262     +
1263     +use HTML::Tabulate;
1264     +
1265     +our @ISA = qw(esmith::FormMagick Exporter);
1266     +
1267     +our @EXPORT = qw();
1268     +
1269     +our $db = esmith::ConfigDB->open();
1270     +our $adb = esmith::AccountsDB->open();
1271     +our $ddb = esmith::ConfigDB->open('dungog') or die "Could not open dungog DB\n";
1272     +our $bdb = esmith::ConfigDB->open('blacklist') or die "Could not open blacklist DB\n";
1273     +our $pdb = esmith::ConfigDB->open('phraselist') or die "Could not open phraselist DB\n";
1274     +
1275     +
1276     +sub new {
1277     + shift;
1278     + my $self = esmith::FormMagick->new();
1279     + $self->{calling_package} = (caller)[0];
1280     + bless $self;
1281     + return $self;
1282     +}
1283     +
1284     +sub get_loglevel
1285     +{
1286     + return $ddb->get_prop('dansguardian', 'loglevel');
1287     +}
1288     +sub get_logfileformat
1289     +{
1290     + return $ddb->get_prop('dansguardian', 'logfileformat');
1291     +}
1292     +sub get_proxyaccess
1293     +{
1294     + return $db->get_prop('squid', 'RequireAuth');
1295     +}
1296     +sub get_portblocking
1297     +{
1298     + return $db->get_prop('dansguardian', 'portblocking');
1299     +}
1300     +sub get_port
1301     +{
1302     + return $ddb->get_prop('dansguardian', 'port');
1303     +}
1304     +sub get_status
1305     +{
1306     + return $db->get_prop('dansguardian', 'status');
1307     +}
1308     +sub get_bypassproxyto
1309     +{
1310     + return $db->get_prop('squid', 'BypassProxyTo');
1311     +}
1312     +sub get_bypassproxyfrom
1313     +{
1314     + return $db->get_prop('squid', 'BypassProxyFrom');
1315     +}
1316     +sub get_TCPBlocks
1317     +{
1318     + return $db->get_prop('masq', 'TCPBlocks');
1319     +}
1320     +sub get_UDPBlocks
1321     +{
1322     + return $db->get_prop('masq', 'UDPBlocks');
1323     +}
1324     +sub get_mode
1325     +{
1326     + my $self = shift;
1327     + my $q = $self->{cgi};
1328     + my $g = $q->param('g') ||'';
1329     + return $ddb->get_prop("dansguardian$g", 'mode');
1330     +}
1331     +sub get_bypass
1332     +{
1333     + my $self = shift;
1334     + my $q = $self->{cgi};
1335     + my $g = $q->param('g') ||'';
1336     + return $ddb->get_prop("dansguardian$g", 'bypass');
1337     +}
1338     +sub get_reportinglevel
1339     +{
1340     + my $self = shift;
1341     + my $q = $self->{cgi};
1342     + my $g = $q->param('g') ||'';
1343     + return $ddb->get_prop("dansguardian$g", 'reportinglevel');
1344     +}
1345     +sub get_deniedpage
1346     +{
1347     + my $self = shift;
1348     + my $q = $self->{cgi};
1349     + my $g = $q->param('g') ||'';
1350     + return $ddb->get_prop("dansguardian$g", 'deniedpage');
1351     +}
1352     +sub get_deniedurl
1353     +{
1354     + my $self = shift;
1355     + my $q = $self->{cgi};
1356     + my $g = $q->param('g') ||'';
1357     + return $ddb->get_prop("dansguardian$g", 'deniedurl');
1358     +}
1359     +sub get_scan
1360     +{
1361     + my $self = shift;
1362     + my $q = $self->{cgi};
1363     + my $g = $q->param('g') ||'';
1364     + return $ddb->get_prop("dansguardian$g", 'scan');
1365     +}
1366     +sub get_weight
1367     +{
1368     + my $self = shift;
1369     + my $q = $self->{cgi};
1370     + my $g = $q->param('g') ||'';
1371     + return $ddb->get_prop("dansguardian$g", 'weight');
1372     +}
1373     +sub get_pics
1374     +{
1375     + my $self = shift;
1376     + my $q = $self->{cgi};
1377     + my $g = $q->param('g' ||'');
1378     + return $ddb->get_prop("dansguardian$g", 'pics');
1379     +}
1380     +sub get_regexpurl
1381     +{
1382     + my $self = shift;
1383     + my $q = $self->{cgi};
1384     + my $g = $q->param('g') ||'';
1385     + return $ddb->get_prop("dansguardian$g", 'regexpurl');
1386     +}
1387     +sub get_regexpsearch
1388     +{
1389     + my $self = shift;
1390     + my $q = $self->{cgi};
1391     + my $g = $q->param('g') ||'';
1392     + return $ddb->get_prop("dansguardian$g", 'regexpsearch');
1393     +}
1394     +sub get_regexpurlads
1395     +{
1396     + my $self = shift;
1397     + my $q = $self->{cgi};
1398     + my $g = $q->param('g') ||'';
1399     + return $ddb->get_prop("dansguardian$g", 'regexpurlads');
1400     +}
1401     +sub get_regexpurlproxy
1402     +{
1403     + my $self = shift;
1404     + my $q = $self->{cgi};
1405     + my $g = $q->param('g') ||'';
1406     + return $ddb->get_prop("dansguardian$g", 'regexpurlproxy');
1407     +}
1408     +sub get_blanketban
1409     +{
1410     + my $self = shift;
1411     + my $q = $self->{cgi};
1412     + my $g = $q->param('g') ||'';
1413     + return $ddb->get_prop("dansguardian$g", 'blanketban');
1414     +}
1415     +sub get_ipban
1416     +{
1417     + my $self = shift;
1418     + my $q = $self->{cgi};
1419     + my $g = $q->param('g') ||'';
1420     + return $ddb->get_prop("dansguardian$g", 'ipban');
1421     +}
1422     +sub get_https
1423     +{
1424     + my $self = shift;
1425     + my $q = $self->{cgi};
1426     + my $g = $q->param('g') ||'';
1427     + return $ddb->get_prop("dansguardian$g", 'https');
1428     +}
1429     +sub get_file
1430     +{
1431     + my $self = shift;
1432     + my $q = $self->{cgi};
1433     + my $g = $q->param('g') ||'';
1434     + return $ddb->get_prop("dansguardian$g", 'file');
1435     +}
1436     +sub get_criterion
1437     +{
1438     + my $self = shift;
1439     + my $q = $self->{cgi};
1440     + my $key = $q->param('key') ||'';
1441     + return $ddb->get_prop($key, 'criterion') || '';
1442     +}
1443     +
1444     +sub get_status_summary
1445     +{
1446     + my $self = shift;
1447     + my $q = $self->{cgi};
1448     +
1449     + my $status = $db->get_prop('dansguardian', "status");
1450     + my $Auth = $db->get_prop('squid', "RequireAuth");
1451     + my $port = $ddb->get_prop('dansguardian', "port");
1452     + my $block = $db->get_prop('dansguardian', "portblocking");
1453     +
1454     + my $STATUS = $self->localise('STATUS');
1455     + my $PORT = $self->localise('PORT');
1456     + my $PROXYACCESS = $self->localise('PROXYACCESS');
1457     + my $BLOCKING = $self->localise('PORTBLOCKING');
1458     +
1459     + my $status2;
1460     + if ($status eq 'enabled')
1461     + { $status2 = $self->localise('ENABLED'); } else { $status2 = $self->localise('DISABLED'); }
1462     +
1463     + my $block2;
1464     + if ($block eq 'yes')
1465     + { $block2 = $self->localise('ENABLED'); } else { $block2 = $self->localise('DISABLED'); }
1466     +
1467     + return "$STATUS : <b>$status2</b>, $PORT : <b>$port</b>, $PROXYACCESS : <b>$Auth</b>, $BLOCKING : <b>$block2</b>";
1468     +}
1469     +
1470     +sub get_custom_denied
1471     +{
1472     + my $self = shift;
1473     + my $q = $self->{cgi};
1474     + my $g = $q->param('g') ||'';
1475     + my $Ldefault = $self->localise('Ldefault');
1476     +
1477     + my $defaults = $ddb->get_prop("dansguardian", "deniedurl") || 'dansguardian.pl';
1478     +
1479     + my $deniedurl = $ddb->get_prop("dansguardian$g", "deniedurl") || 'nul';
1480     + if (($deniedurl eq 'nul') && (-e "/home/e-smith/files/ibays/Primary/cgi-bin/dansguardian$g.pl"))
1481     + { $deniedurl = "dansguardian$g.pl"; }
1482     +
1483     + my $language = $ddb->get_prop('dansguardian', "language") || 'ukenglish';
1484     + my $customhtml = 'nul';
1485     + if (-e "/etc/dansguardian/languages/$language/template$g.html")
1486     + { $customhtml = "$language/template$g.html"; }
1487     +
1488     + return "$Ldefault = $defaults, html = $customhtml, cgi = $deniedurl";
1489     +}
1490     +
1491     +sub print_global_table
1492     +{
1493     + my $self = shift;
1494     + my $q = $self->{cgi};
1495     +
1496     + my $description = $self->localise('DESCRIPTION');
1497     + my $Lf2 = $self->localise('Lf2');
1498     + my $Lf3 = $self->localise('Lf3');
1499     + my $Lf4 = $self->localise('Lf4');
1500     + my $Lf5 = $self->localise('Lf5');
1501     +
1502     + my @groups = $adb->get_all_by_prop(type => "group");
1503     + my @gnames = '';
1504     + foreach my $g (@groups)
1505     + {
1506     + my $groupname = $g->key();
1507     + push (@gnames, $groupname)
1508     + }
1509     +
1510     + print $q->start_table({-CLASS => "sme-border"}),"\n";
1511     + print $q->Tr (
1512     + esmith::cgi::genSmallCell($q, $description,"header"),
1513     + esmith::cgi::genSmallCell($q, '',"header")),"\n";
1514     +
1515     +
1516     + print $q->Tr (esmith::cgi::genSmallCell ($q, $Lf2),
1517     + esmith::cgi::genSmallCell ($q,
1518     + $q->popup_menu (-name => "f2",
1519     + -values => [ sort @gnames ],
1520     + -default => $ddb->get_prop('dansguardian', "f2") || '')));
1521     +
1522     + print $q->Tr (esmith::cgi::genSmallCell ($q, $Lf3),
1523     + esmith::cgi::genSmallCell ($q,
1524     + $q->popup_menu (-name => "f3",
1525     + -values => [ sort @gnames ],
1526     + -default => $ddb->get_prop('dansguardian', "f3") || '')));
1527     +
1528     + print $q->Tr (esmith::cgi::genSmallCell ($q, $Lf4),
1529     + esmith::cgi::genSmallCell ($q,
1530     + $q->popup_menu (-name => "f4",
1531     + -values => [ sort @gnames ],
1532     + -default => $ddb->get_prop('dansguardian', "f4") || '')));
1533     +
1534     + print $q->Tr (esmith::cgi::genSmallCell ($q, $Lf5),
1535     + esmith::cgi::genSmallCell ($q,
1536     + $q->popup_menu (-name => "f5",
1537     + -values => [ sort @gnames ],
1538     + -default => $ddb->get_prop('dansguardian', "f5") || '')));
1539     +
1540     + print $q->end_table;
1541     +
1542     + return "";
1543     +}
1544     +
1545     +sub print_summary
1546     +{
1547     + my $self = shift;
1548     + my $q = $self->{cgi};
1549     +
1550     + my $description = $self->localise('DESCRIPTION');
1551     + my $LAllow = $self->localise('LAllow');
1552     + my $LClient_IP = $self->localise('LClient_IP');
1553     + my $LDeny = $self->localise('LDeny');
1554     + my $modify = $self->localise('MODIFY');
1555     + my $Lcommon = $self->localise('Lcommon');
1556     + my $Ldefault = $self->localise('Ldefault');
1557     + my $Lf0 = $self->localise('Lf0');
1558     + my $Lf1 = $self->localise('Lf1');
1559     + my $Lf2 = $self->localise('Lf2');
1560     + my $Lf3 = $self->localise('Lf3');
1561     + my $Lf4 = $self->localise('Lf4');
1562     + my $Lf5 = $self->localise('Lf5');
1563     + my $GROUP = $self->localise('GROUP');
1564     + my $Lmode = $self->localise('Lmode');
1565     + my $LURLban = $self->localise('LURLban');
1566     + my $Lscan = $self->localise('Lscan');
1567     + my $Lbypass = $self->localise('Lbypass');
1568     + my $Llists = $self->localise('Llists');
1569     + my $Lsettings = $self->localise('Lsettings');
1570     +
1571     + my @groups = $adb->get_all_by_prop(type => "group");
1572     + my @gnames = '';
1573     + foreach my $g (@groups)
1574     + {
1575     + my $groupname = $g->key();
1576     + push (@gnames, $groupname)
1577     + }
1578     +
1579     + print $q->start_table({-CLASS => "sme-border"}),"\n";
1580     + print $q->Tr (
1581     + esmith::cgi::genSmallCell($q, $description,"header"),
1582     + esmith::cgi::genSmallCell($q, $GROUP,"header"),
1583     + esmith::cgi::genSmallCell($q, $Lmode,"header"),
1584     + esmith::cgi::genSmallCell($q, $LURLban,"header"),
1585     + esmith::cgi::genSmallCell($q, $Lscan,"header"),
1586     + esmith::cgi::genSmallCell($q, $Lbypass,"header"),
1587     + esmith::cgi::genSmallCell($q, $Lsettings,"header"),
1588     + esmith::cgi::genSmallCell($q, $Llists,"header")),"\n";
1589     +
1590     + print $q->Tr (esmith::cgi::genSmallCell ($q, $Lf0),
1591     + esmith::cgi::genSmallCell ($q, ''),
1592     + esmith::cgi::genSmallCell ($q, ''),
1593     + esmith::cgi::genSmallCell ($q, ''),
1594     + esmith::cgi::genSmallCell ($q, ''),
1595     + esmith::cgi::genSmallCell ($q, ''),
1596     + esmith::cgi::genSmallCell ($q, ''),
1597     + esmith::cgi::genSmallCell ($q,
1598     + $q->a ({href => $q->url (-absolute => 1)
1599     + . "?page=0&page_stack=&g=f0&gname=$Lcommon&wherenext=GroupLists"}, $modify)));
1600     +
1601     + print $q->Tr (esmith::cgi::genSmallCell ($q, $Lf1),
1602     + esmith::cgi::genSmallCell ($q, ''),
1603     + esmith::cgi::genSmallCell ($q, $ddb->get_prop('dansguardianf1', "mode") || ''),
1604     + esmith::cgi::genSmallCell ($q, $ddb->get_prop('dansguardianf1', "blanketban") . " / " .
1605     + $ddb->get_prop('dansguardianf1', "https") . " / " .
1606     + $ddb->get_prop('dansguardianf1', "ipban") . " / " .
1607     + $ddb->get_prop('dansguardianf1', "file") . " - " .
1608     + $ddb->get_prop('dansguardianf1', "regexpurl") . " / " .
1609     + $ddb->get_prop('dansguardianf1', "regexpurlads") . " / " .
1610     + $ddb->get_prop('dansguardianf1', "regexpurlproxy")),
1611     + esmith::cgi::genSmallCell ($q, $ddb->get_prop('dansguardianf1', "scan") || ''),
1612     + esmith::cgi::genSmallCell ($q, $ddb->get_prop('dansguardianf1', "bypass") || ''),
1613     + esmith::cgi::genSmallCell ($q,
1614     + $q->a ({href => $q->url (-absolute => 1)
1615     + . "?page=0&page_stack=&g=f1&gname=$Ldefault&wherenext=GroupSettings"}, $modify)),
1616     + esmith::cgi::genSmallCell ($q,
1617     + $q->a ({href => $q->url (-absolute => 1)
1618     + . "?page=0&page_stack=&g=f1&gname=$Ldefault&wherenext=GroupLists"}, $modify)));
1619     +
1620     + my $gname = $ddb->get_prop('dansguardian', "f2");
1621     + if ($gname) {
1622     + print $q->Tr (esmith::cgi::genSmallCell ($q, $Lf2),
1623     + esmith::cgi::genSmallCell ($q, $gname ),
1624     + esmith::cgi::genSmallCell ($q, $ddb->get_prop('dansguardianf2', "mode") || ''),
1625     + esmith::cgi::genSmallCell ($q, $ddb->get_prop('dansguardianf2', "blanketban") . " / " .
1626     + $ddb->get_prop('dansguardianf2', "https") . " / " .
1627     + $ddb->get_prop('dansguardianf2', "ipban") . " / " .
1628     + $ddb->get_prop('dansguardianf2', "file") . " - " .
1629     + $ddb->get_prop('dansguardianf2', "regexpurl") . " / " .
1630     + $ddb->get_prop('dansguardianf2', "regexpurlads") . " / " .
1631     + $ddb->get_prop('dansguardianf2', "regexpurlproxy")),
1632     + esmith::cgi::genSmallCell ($q, $ddb->get_prop('dansguardianf2', "scan") || ''),
1633     + esmith::cgi::genSmallCell ($q, $ddb->get_prop('dansguardianf2', "bypass") || ''),
1634     + esmith::cgi::genSmallCell ($q,
1635     + $q->a ({href => $q->url (-absolute => 1)
1636     + . "?page=0&page_stack=&g=f2&gname=$gname&wherenext=GroupSettings"}, $modify)),
1637     + esmith::cgi::genSmallCell ($q,
1638     + $q->a ({href => $q->url (-absolute => 1)
1639     + . "?page=0&page_stack=&g=f2&gname=$gname&wherenext=GroupLists"}, $modify)));
1640     + }
1641     +
1642     + $gname = $ddb->get_prop('dansguardian', "f3");
1643     + if ($gname) {
1644     + print $q->Tr (esmith::cgi::genSmallCell ($q, $Lf3),
1645     + esmith::cgi::genSmallCell ($q, $gname ),
1646     + esmith::cgi::genSmallCell ($q, $ddb->get_prop('dansguardianf3', "mode") || ''),
1647     + esmith::cgi::genSmallCell ($q, $ddb->get_prop('dansguardianf3', "blanketban") . " / " .
1648     + $ddb->get_prop('dansguardianf3', "https") . " / " .
1649     + $ddb->get_prop('dansguardianf3', "ipban") . " / " .
1650     + $ddb->get_prop('dansguardianf3', "file") . " - " .
1651     + $ddb->get_prop('dansguardianf3', "regexpurl") . " / " .
1652     + $ddb->get_prop('dansguardianf3', "regexpurlads") . " / " .
1653     + $ddb->get_prop('dansguardianf3', "regexpurlproxy")),
1654     + esmith::cgi::genSmallCell ($q, $ddb->get_prop('dansguardianf3', "scan") || ''),
1655     + esmith::cgi::genSmallCell ($q, $ddb->get_prop('dansguardianf3', "bypass") || ''),
1656     + esmith::cgi::genSmallCell ($q,
1657     + $q->a ({href => $q->url (-absolute => 1)
1658     + . "?page=0&page_stack=&g=f3&gname=$gname&wherenext=GroupSettings"}, $modify)),
1659     + esmith::cgi::genSmallCell ($q,
1660     + $q->a ({href => $q->url (-absolute => 1)
1661     + . "?page=0&page_stack=&g=f3&gname=$gname&wherenext=GroupLists"}, $modify)));
1662     + }
1663     +
1664     + $gname = $ddb->get_prop('dansguardian', "f4");
1665     + if ($gname) {
1666     + print $q->Tr (esmith::cgi::genSmallCell ($q, $Lf4),
1667     + esmith::cgi::genSmallCell ($q, $gname ),
1668     + esmith::cgi::genSmallCell ($q, $ddb->get_prop('dansguardianf4', "mode") || ''),
1669     + esmith::cgi::genSmallCell ($q, $ddb->get_prop('dansguardianf4', "blanketban") . " / " .
1670     + $ddb->get_prop('dansguardianf4', "https") . " / " .
1671     + $ddb->get_prop('dansguardianf4', "ipban") . " / " .
1672     + $ddb->get_prop('dansguardianf4', "file") . " - " .
1673     + $ddb->get_prop('dansguardianf4', "regexpurl") . " / " .
1674     + $ddb->get_prop('dansguardianf4', "regexpurlads") . " / " .
1675     + $ddb->get_prop('dansguardianf4', "regexpurlproxy")),
1676     + esmith::cgi::genSmallCell ($q, $ddb->get_prop('dansguardianf4', "scan") || ''),
1677     + esmith::cgi::genSmallCell ($q, $ddb->get_prop('dansguardianf4', "bypass") || ''),
1678     + esmith::cgi::genSmallCell ($q,
1679     + $q->a ({href => $q->url (-absolute => 1)
1680     + . "?page=0&page_stack=&g=f4&gname=$gname&wherenext=GroupSettings"}, $modify)),
1681     + esmith::cgi::genSmallCell ($q,
1682     + $q->a ({href => $q->url (-absolute => 1)
1683     + . "?page=0&page_stack=&g=f4&gname=$gname&wherenext=GroupLists"}, $modify)));
1684     + }
1685     +
1686     + $gname = $ddb->get_prop('dansguardian', "f5");
1687     + if ($gname) {
1688     + print $q->Tr (esmith::cgi::genSmallCell ($q, $Lf5),
1689     + esmith::cgi::genSmallCell ($q, $gname ),
1690     + esmith::cgi::genSmallCell ($q, $ddb->get_prop('dansguardianf5', "mode") || ''),
1691     + esmith::cgi::genSmallCell ($q, $ddb->get_prop('dansguardianf5', "blanketban") . " / " .
1692     + $ddb->get_prop('dansguardianf5', "https") . " / " .
1693     + $ddb->get_prop('dansguardianf5', "ipban") . " / " .
1694     + $ddb->get_prop('dansguardianf5', "file") . " - " .
1695     + $ddb->get_prop('dansguardianf5', "regexpurl") . " / " .
1696     + $ddb->get_prop('dansguardianf5', "regexpurlads") . " / " .
1697     + $ddb->get_prop('dansguardianf5', "regexpurlproxy")),
1698     + esmith::cgi::genSmallCell ($q, $ddb->get_prop('dansguardianf5', "scan") || ''),
1699     + esmith::cgi::genSmallCell ($q, $ddb->get_prop('dansguardianf5', "bypass") || ''),
1700     + esmith::cgi::genSmallCell ($q,
1701     + $q->a ({href => $q->url (-absolute => 1)
1702     + . "?page=0&page_stack=&g=f5&gname=$gname&wherenext=GroupSettings"}, $modify)),
1703     + esmith::cgi::genSmallCell ($q,
1704     + $q->a ({href => $q->url (-absolute => 1)
1705     + . "?page=0&page_stack=&g=f5&gname=$gname&wherenext=GroupLists"}, $modify)));
1706     + }
1707     +
1708     + print $q->end_table;
1709     +
1710     + return "";
1711     +}
1712     +
1713     +sub save_reload
1714     +{
1715     + my $self = shift;
1716     + my $q = $self->{cgi};
1717     +
1718     + foreach ('loglevel','logfileformat','f2','f3','f4','f5','deniedurl')
1719     + { $ddb->set_prop('dansguardian', "$_", $q->param("$_")); }
1720     +
1721     + unless ( system ("/sbin/e-smith/signal-event", "dansguardian-reload") == 0 )
1722     + { return $self->error('ERROR'); }
1723     +
1724     + return $self->success("SUCCESS");
1725     +}
1726     +
1727     +sub save_group_settings
1728     +{
1729     + my $self = shift;
1730     + my $q = $self->{cgi};
1731     + my $g = $q->param ('g') ||'';
1732     +
1733     + foreach ('mode','bypass','reportinglevel','scan','weight','pics','deniedpage','deniedurl',
1734     + 'regexpurl','regexpsearch','regexpurlads','regexpurlproxy','blanketban','https','ipban','file')
1735     + { $ddb->set_prop("dansguardian$g", "$_", $q->param("$_")); }
1736     +
1737     + unless ( system ("/sbin/e-smith/signal-event", "dansguardian-reload") == 0 )
1738     + { return $self->error('ERROR'); }
1739     +
1740     + return $self->success("SUCCESS");
1741     +}
1742     +
1743     +sub save_proxy
1744     +{
1745     + my $self = shift;
1746     + my $q = $self->{cgi} ||'';
1747     +
1748     + my $status = $q->param ('status') || '';
1749     + my $proxyaccess = $q->param ('proxyaccess') || '';
1750     + my $portblocking = $q->param ('portblocking') || '';
1751     + my $port = $q->param ('port') || '';
1752     +
1753     + $db->set_prop('squid', "RequireAuth", $proxyaccess);
1754     + $ddb->set_prop('dansguardian', "port", $port);
1755     +
1756     + my $bypassproxyfrom = $q->param ('bypassproxyfrom') || '';
1757     + my $bypassproxyto = $q->param ('bypassproxyto') || '';
1758     + my $TCPBlocks = $q->param ('TCPBlocks') || '';
1759     + my $UDPBlocks = $q->param ('UDPBlocks') || '';
1760     +
1761     + $db->set_prop('squid', "BypassProxyFrom", $bypassproxyfrom);
1762     + $db->set_prop('squid', "BypassProxyTo", $bypassproxyto);
1763     + $db->set_prop('masq', "UDPBlocks", $UDPBlocks);
1764     + $db->set_prop('masq', "TCPBlocks", $TCPBlocks);
1765     +
1766     + if ($status eq 'disabled')
1767     + {
1768     + $db->set_prop('squid', "TransparentPort", '3128');
1769     + $db->set_prop('dansguardian', "status", 'disabled');
1770     + $db->set_prop('dansguardian', "portblocking", 'no');
1771     +
1772     + unless ( system ("/sbin/e-smith/signal-event", "dansguardian-save") == 0 )
1773     + { return $self->error('ERROR'); }
1774     +
1775     + return $self->success("SUCCESS_STOP");
1776     + }
1777     + else
1778     + {
1779     + $db->set_prop('squid', "TransparentPort", $port);
1780     + $db->set_prop('dansguardian', "status", 'enabled');
1781     + $db->set_prop('dansguardian', "portblocking", $portblocking);
1782     + }
1783     +
1784     + unless ( system ("/sbin/e-smith/signal-event", "dansguardian-save") == 0 )
1785     + { return $self->error('ERROR'); }
1786     +
1787     + return $self->success("SUCCESS_PROMPT");
1788     +}
1789     +
1790     +sub portentry
1791     +{
1792     + my ($fm, $port) = @_;
1793     + if (not $port)
1794     + {
1795     + return "FM_NONBLANK";
1796     + }
1797     + elsif ($port =~ /^(\d{4})$/)
1798     + {
1799     + return "OK";
1800     + }
1801     + else
1802     + {
1803     + return "ERROR_PORT";
1804     + }
1805     +}
1806     +
1807     +sub print_list_table
1808     +{
1809     + my $self = shift;
1810     + my $q = $self->{cgi};
1811     + my $g = $q->param('g') || '';
1812     + my $gname = $q->param('gname') || '';
1813     +
1814     + my $description = $self->localise('DESCRIPTION');
1815     + my $Lasite = $self->localise('Lasite');
1816     + my $Laurl = $self->localise('Laurl');
1817     + my $Lphrases = $self->localise('Lphrases');
1818     + my $Lregexp = $self->localise('Lregexp');
1819     + my $Lfileext = $self->localise('Lfileext');
1820     + my $Lmimetype = $self->localise('Lmimetype');
1821     + my $ALLlists = $self->localise('LALLlists');
1822     + my $ENABLED = $self->localise('ENABLED');
1823     +
1824     + my $Lgrey = $self->localise('Lgrey');
1825     + my $Lweighted = $self->localise('Lweighted');
1826     + my $Lmodifyurl = $self->localise('Lmodifyurl');
1827     + my $LAllow = $self->localise('LAllow');
1828     + my $LDeny = $self->localise('LDeny');
1829     + my $LAVexcept = $self->localise('LAVexcept');
1830     + my $Lexception = $self->localise('Lexception');
1831     + my $Lblacklist = $self->localise('Lblacklist');
1832     + my $Lphraselist = $self->localise('Lphraselist');
1833     + my $Lrepcon = $self->localise('Lrepcon');
1834     + my $Lallowurl = $self->localise('Lallowurl');
1835     + my $Lallowsite = $self->localise('Lallowsite');
1836     + my $LClientIP = $self->localise('LClientIP');
1837     + my $Lcommon = $self->localise('Lcommon');
1838     + my $Commonlists = $self->localise('LCommonlists');
1839     +
1840     + print $q->start_table({-CLASS => "sme-border"}),"\n";
1841     + print $q->Tr (
1842     + esmith::cgi::genSmallCell($q, $description,"header"),
1843     + esmith::cgi::genSmallCell($q, $q->a ({href => $q->url (-absolute => 1)
1844     + . "?page=0&page_stack=&g=$g&gname=$gname&wherenext=ShowAllLists"}, $ALLlists),"header"),
1845     + esmith::cgi::genSmallCell($q, '',"header"),
1846     + esmith::cgi::genSmallCell($q, '',"header"),
1847     + esmith::cgi::genSmallCell($q, '',"header"),
1848     + esmith::cgi::genSmallCell($q, $q->a ({href => $q->url (-absolute => 1)
1849     + . "?page=0&page_stack=&g=$g&gname=$gname&wherenext=ShowCommonLists"}, $Commonlists),"header"));
1850     +
1851     + print $q->Tr (esmith::cgi::genSmallCell ($q, $Lasite),
1852     + esmith::cgi::genSmallCell ($q,
1853     + $q->a ({href => $q->url (-absolute => 1)
1854     + . "?page=0&page_stack=&g=$g&list=greysitelist$g&wherenext=ViewList"}, $Lgrey)),
1855     + esmith::cgi::genSmallCell ($q,
1856     + $q->a ({href => $q->url (-absolute => 1)
1857     + . "?page=0&page_stack=&g=$g&list=exceptionsitelist$g&wherenext=ViewList"}, $LAllow)),
1858     + esmith::cgi::genSmallCell ($q,
1859     + $q->a ({href => $q->url (-absolute => 1)
1860     + . "?page=0&page_stack=&g=$g&list=bannedsitelist$g&wherenext=ViewList"}, $LDeny)),
1861     + esmith::cgi::genSmallCell ($q,''),
1862     + esmith::cgi::genSmallCell ($q,
1863     + $q->a ({href => $q->url (-absolute => 1)
1864     + . "?page=0&page_stack=&g=f0&list=exceptionvirussitelist&wherenext=ViewList"}, $LAVexcept)));
1865     +
1866     + print $q->Tr (esmith::cgi::genSmallCell ($q, $Laurl),
1867     + esmith::cgi::genSmallCell ($q,
1868     + $q->a ({href => $q->url (-absolute => 1)
1869     + . "?page=0&page_stack=&g=$g&list=greyurllist$g&wherenext=ViewList"}, $Lgrey)),
1870     + esmith::cgi::genSmallCell ($q,
1871     + $q->a ({href => $q->url (-absolute => 1)
1872     + . "?page=0&page_stack=&g=$g&list=exceptionurllist$g&wherenext=ViewList"}, $LAllow)),
1873     + esmith::cgi::genSmallCell ($q,
1874     + $q->a ({href => $q->url (-absolute => 1)
1875     + . "?page=0&page_stack=&g=$g&list=bannedurllist$g&wherenext=ViewList"}, $LDeny)),
1876     + esmith::cgi::genSmallCell ($q,''),
1877     + esmith::cgi::genSmallCell ($q,
1878     + $q->a ({href => $q->url (-absolute => 1)
1879     + . "?page=0&page_stack=&g=f0&list=exceptionvirusurllist&wherenext=ViewList"}, $LAVexcept)));
1880     +
1881     + print $q->Tr (esmith::cgi::genSmallCell ($q, $Lphrases),
1882     + esmith::cgi::genSmallCell ($q,
1883     + $q->a ({href => $q->url (-absolute => 1)
1884     + . "?page=0&page_stack=&g=$g&list=weightedphraselist$g&wherenext=ViewList"}, $Lweighted)),
1885     + esmith::cgi::genSmallCell ($q,
1886     + $q->a ({href => $q->url (-absolute => 1)
1887     + . "?page=0&page_stack=&g=$g&list=exceptionphraselist$g&wherenext=ViewList"}, $LAllow)),
1888     + esmith::cgi::genSmallCell ($q,
1889     + $q->a ({href => $q->url (-absolute => 1)
1890     + . "?page=0&page_stack=&g=$g&list=bannedphraselist$g&wherenext=ViewList"}, $LDeny)),
1891     + esmith::cgi::genSmallCell ($q, ''),
1892     + esmith::cgi::genSmallCell ($q,''));
1893     +
1894     + print $q->Tr (esmith::cgi::genSmallCell ($q, $Lregexp),
1895     + esmith::cgi::genSmallCell ($q,
1896     + $q->a ({href => $q->url (-absolute => 1)
1897     + . "?page=0&page_stack=&g=$g&list=urlregexplist$g&wherenext=ViewList"}, $Lmodifyurl)),
1898     + esmith::cgi::genSmallCell ($q,
1899     + $q->a ({href => $q->url (-absolute => 1)
1900     + . "?page=0&page_stack=&g=$g&list=exceptionregexpurllist$g&wherenext=ViewList"}, $LAllow)),
1901     + esmith::cgi::genSmallCell ($q,
1902     + $q->a ({href => $q->url (-absolute => 1)
1903     + . "?page=0&page_stack=&g=$g&list=bannedregexpurllist$g&wherenext=ViewList"}, $LDeny)),
1904     + esmith::cgi::genSmallCell ($q,
1905     + $q->a ({href => $q->url (-absolute => 1)
1906     + . "?page=0&page_stack=&g=$g&list=contentregexplist$g&wherenext=ViewList"}, $Lrepcon)),
1907     + esmith::cgi::genSmallCell ($q, ''));
1908     +
1909     +
1910     + print $q->Tr (esmith::cgi::genSmallCell ($q, $Lfileext),
1911     + esmith::cgi::genSmallCell ($q, ''),
1912     + esmith::cgi::genSmallCell ($q,
1913     + $q->a ({href => $q->url (-absolute => 1)
1914     + . "?page=0&page_stack=&g=$g&list=exceptionextensionlist$g&wherenext=ViewList"}, $Lexception)),
1915     + esmith::cgi::genSmallCell ($q,
1916     + $q->a ({href => $q->url (-absolute => 1)
1917     + . "?page=0&page_stack=&g=$g&list=bannedextensionlist$g&wherenext=ViewList"}, $LDeny)),
1918     + esmith::cgi::genSmallCell ($q,
1919     + $q->a ({href => $q->url (-absolute => 1)
1920     + . "?page=0&page_stack=&g=$g&list=exceptionfileurllist$g&wherenext=ViewList"}, $Lallowurl)),
1921     + esmith::cgi::genSmallCell ($q,
1922     + $q->a ({href => $q->url (-absolute => 1)
1923     + . "?page=0&page_stack=&g=f0&list=exceptionvirusextensionlist&wherenext=ViewList"}, $LAVexcept)));
1924     +
1925     + print $q->Tr (esmith::cgi::genSmallCell ($q, $Lmimetype),
1926     + esmith::cgi::genSmallCell ($q, ''),
1927     + esmith::cgi::genSmallCell ($q,
1928     + $q->a ({href => $q->url (-absolute => 1)
1929     + . "?page=0&page_stack=&g=$g&list=exceptionmimetypelist$g&wherenext=ViewList"}, $Lexception)),
1930     + esmith::cgi::genSmallCell ($q,
1931     + $q->a ({href => $q->url (-absolute => 1)
1932     + . "?page=0&page_stack=&g=$g&list=bannedmimetypelist$g&wherenext=ViewList"}, $LDeny)),
1933     + esmith::cgi::genSmallCell ($q,
1934     + $q->a ({href => $q->url (-absolute => 1)
1935     + . "?page=0&page_stack=&g=$g&list=exceptionfilesitelist$g&wherenext=ViewList"}, $Lallowsite)),
1936     + esmith::cgi::genSmallCell ($q,
1937     + $q->a ({href => $q->url (-absolute => 1)
1938     + . "?page=0&page_stack=&g=f0&list=exceptionvirusmimetypelist&wherenext=ViewList"}, $LAVexcept)));
1939     +
1940     + #Client IP
1941     + if ($g eq 'f0')
1942     + {
1943     + print $q->Tr (esmith::cgi::genSmallCell ($q, $LClientIP),
1944     + esmith::cgi::genSmallCell ($q, ''),
1945     + esmith::cgi::genSmallCell ($q,
1946     + $q->a ({href => $q->url (-absolute => 1)
1947     + . "?page=0&page_stack=&g=$g&list=exceptioniplist&wherenext=ViewList"}, $Lexception)),
1948     + esmith::cgi::genSmallCell ($q,
1949     + $q->a ({href => $q->url (-absolute => 1)
1950     + . "?page=0&page_stack=&g=$g&list=bannediplist&wherenext=ViewList"}, $LDeny)),
1951     + esmith::cgi::genSmallCell ($q, ''),
1952     + esmith::cgi::genSmallCell ($q, ''));
1953     + }
1954     +
1955     + #prepared lists
1956     + unless ($g eq 'f0')
1957     + {
1958     + print $q->Tr (esmith::cgi::genSmallCell ($q, $ENABLED),
1959     + esmith::cgi::genSmallCell ($q, ''),
1960     + esmith::cgi::genSmallCell ($q,
1961     + $q->a ({href => $q->url (-absolute => 1)
1962     + . "?page=0&page_stack=&g=$g&gname=$gname&wherenext=ViewPhraseList"}, $Lphraselist)),
1963     + esmith::cgi::genSmallCell ($q,
1964     + $q->a ({href => $q->url (-absolute => 1)
1965     + . "?page=0&page_stack=&g=$g&gname=$gname&wherenext=ViewBlackList"}, $Lblacklist)),
1966     + esmith::cgi::genSmallCell ($q, ''),
1967     + esmith::cgi::genSmallCell ($q, ''));
1968     + }
1969     +
1970     + print $q->end_table;
1971     + return "";
1972     +}
1973     +
1974     +sub print_list_description
1975     +{
1976     + my $self = shift;
1977     + my $q = $self->{cgi};
1978     + my $g = $q->param ('g') ||'';
1979     + my $desc = $self->localise('MODIFY_LIST_SETTINGS');
1980     +
1981     + if ($g eq 'f0')
1982     + {
1983     + $desc = $self->localise('MODIFY_GLOBAL_LIST_SETTINGS');
1984     + }
1985     +
1986     + return "$desc";
1987     +}
1988     +
1989     +sub print_record_table
1990     +{
1991     + my $self = shift;
1992     + my $q = $self->{cgi};
1993     + my $g = $q->param ('g') ||'';
1994     + my $list = $q->param('list') ||'';
1995     +
1996     + my $record = $self->localise('RECORD');
1997     + my $modify = $self->localise('MODIFY');
1998     + my $remove = $self->localise('REMOVE');
1999     + my $new = $self->localise('NEW');
2000     +
2001     +
2002     + print $q->start_table({-CLASS => "sme-border"}),"\n";
2003     + print $q->Tr (
2004     + esmith::cgi::genSmallCell($q, $record,"header"),
2005     + esmith::cgi::genSmallCell($q, '',"header"),
2006     + esmith::cgi::genSmallCell($q, '',"header")),"\n";
2007     +
2008     + print $q->Tr (esmith::cgi::genSmallCell ($q, ''),
2009     + esmith::cgi::genSmallCell ($q, ''),
2010     + esmith::cgi::genSmallCell ($q,
2011     + $q->a ({href => $q->url (-absolute => 1)
2012     + . "?page=0&page_stack=&g=$g&list=$list&key=new&wherenext=Edit"}, $new)));
2013     +
2014     + foreach my $hash ($ddb->get_all_by_prop(type => $list))
2015     + {
2016     + my $key = $hash->key;
2017     + my $criterion = $hash->prop("criterion") || '';
2018     +
2019     + #allows for three sets of bracketed words
2020     + #$record =~ s/</&lt\;/g; ??
2021     + #$record =~ s/>/&gt\;/g;
2022     + $criterion =~ s/</&lt\;/;
2023     + $criterion =~ s/>/&gt\;/;
2024     + $criterion =~ s/</&lt\;/;
2025     + $criterion =~ s/>/&gt\;/;
2026     + $criterion =~ s/</&lt\;/;
2027     + $criterion =~ s/>/&gt\;/;
2028     +
2029     + print $q->Tr (esmith::cgi::genSmallCell ($q, $criterion),
2030     + esmith::cgi::genSmallCell ($q,
2031     + $q->a ({href => $q->url (-absolute => 1)
2032     + . "?page=0&page_stack=&g=$g&list=$list&key=$key&wherenext=Edit"}, $modify)),
2033     + esmith::cgi::genSmallCell ($q,
2034     + $q->a ({href => $q->url (-absolute => 1)
2035     + . "?page=0&page_stack=&g=$g&criterion=$criterion&key=$key&wherenext=Delete"}, $remove)));
2036     + }
2037     +
2038     + print $q->end_table;
2039     +
2040     + return "";
2041     +}
2042     +
2043     +sub print_all_lists
2044     +{
2045     + my $self = shift;
2046     + my $q = $self->{cgi};
2047     + my $g = $q->param ('g') ||'';
2048     + my $all = ();
2049     +
2050     + if ($g =~ /^(f\d{1})$/)
2051     + {
2052     + $g = $1;
2053     + }
2054     +
2055     + print $q->start_table({-CLASS => "sme-border"}),"\n";
2056     +
2057     + $all .= "<code>\n";
2058     +
2059     + my @files = ('bannedextensionlist','bannedsitelist','exceptionfilesitelist','exceptionregexpurllist',
2060     + 'greysitelist','weightedphraselist','bannedmimetypelist','bannedurllist','exceptionfileurllist',
2061     + 'exceptionsitelist','greyurllist','bannedphraselist','contentregexplist','exceptionmimetypelist','exceptionurllist','pics',
2062     + 'bannedregexpurllist','exceptionextensionlist','exceptionphraselist','greyregexpurllist','urlregexplist');
2063     +
2064     + foreach (@files)
2065     + {
2066     +
2067     + if ( -e "/etc/dansguardian/lists/$g/$_" )
2068     + {
2069     + open (INF,"/etc/dansguardian/lists/$g/$_")
2070     + or die ("can't open /etc/dansguardian/lists/$g/$_ to read. ");
2071     +
2072     + $all .= "<br>\n";
2073     + $all .= "<b> /etc/dansguardian/lists/$g/$_ </b><br>\n";
2074     +
2075     + while (<INF>)
2076     + {
2077     + # allow for 4 sets
2078     + $_ =~ s/</&lt\;/;
2079     + $_ =~ s/>/&gt\;/;
2080     + $_ =~ s/</&lt\;/;
2081     + $_ =~ s/>/&gt\;/;
2082     + $_ =~ s/</&lt\;/;
2083     + $_ =~ s/>/&gt\;/;
2084     + $_ =~ s/</&lt\;/;
2085     + $_ =~ s/>/&gt\;/;
2086     +
2087     + $all .= "$_<br>\n";
2088     + }
2089     + close INF;
2090     + }
2091     + }
2092     +
2093     + $all .= "<\code>\n";
2094     +
2095     + print $q->end_table;
2096     +
2097     + return "$all";
2098     +}
2099     +
2100     +sub print_common_lists
2101     +{
2102     + my $self = shift;
2103     + my $q = $self->{cgi};
2104     + my $g = $q->param ('g') ||'';
2105     + my $all = ();
2106     +
2107     + if ($g =~ /^(f\d{1})$/)
2108     + {
2109     + $g = $1;
2110     + }
2111     +
2112     + print $q->start_table({-CLASS => "sme-border"}),"\n";
2113     +
2114     + $all .= "<code>\n";
2115     +
2116     + my @files = ('exceptioniplist','bannediplist','contentscanners/exceptionvirusextensionlist',
2117     + 'contentscanners/exceptionvirusmimetypelist','contentscanners/exceptionvirussitelist','contentscanners/exceptionvirusurllist');
2118     +
2119     + foreach (@files)
2120     + {
2121     +
2122     + if ( -e "/etc/dansguardian/lists/$_" )
2123     + {
2124     + open (INF,"/etc/dansguardian/lists/$_")
2125     + or die ("can't open /etc/dansguardian/lists/$_ to read. ");
2126     +
2127     + $all .= "<br>\n";
2128     + $all .= "<b> /etc/dansguardian/lists/$_ </b><br>\n";
2129     +
2130     + while (<INF>)
2131     + {
2132     + # allow for 4 sets
2133     + $_ =~ s/</&lt\;/;
2134     + $_ =~ s/>/&gt\;/;
2135     + $_ =~ s/</&lt\;/;
2136     + $_ =~ s/>/&gt\;/;
2137     + $_ =~ s/</&lt\;/;
2138     + $_ =~ s/>/&gt\;/;
2139     + $_ =~ s/</&lt\;/;
2140     + $_ =~ s/>/&gt\;/;
2141     +
2142     + $all .= "$_<br>\n";
2143     + }
2144     + close INF;
2145     + }
2146     + }
2147     +
2148     + $all .= "<\code>\n";
2149     +
2150     + print $q->end_table;
2151     +
2152     + return "$all";
2153     +}
2154     +
2155     +sub print_phraselist_head
2156     +{
2157     + my $self = shift;
2158     + my $q = $self->{cgi} ||'';
2159     + my $all = ();
2160     +
2161     + print $q->start_table({-CLASS => "sme-border"}),"\n";
2162     +
2163     + $all .= "<code>\n";
2164     +
2165     + system ("/usr/bin/head /etc/dansguardian/lists/phraselists/*/* > /tmp/lists") == 0
2166     + or die ("Error occurred reading phraselists\n");
2167     +
2168     + if ( -e "/tmp/lists" )
2169     + {
2170     + open (INF,"/tmp/lists")
2171     + or die ("can't open /tmp/lists read. ");
2172     +
2173     + $all .= "<br><b> head /etc/dansguardian/lists/phraselists/* </b><br>\n";
2174     +
2175     + while (<INF>)
2176     + {
2177     + # allow for 4 sets
2178     + $_ =~ s/</&lt\;/;
2179     + $_ =~ s/>/&gt\;/;
2180     + $_ =~ s/</&lt\;/;
2181     + $_ =~ s/>/&gt\;/;
2182     + $_ =~ s/</&lt\;/;
2183     + $_ =~ s/>/&gt\;/;
2184     + $_ =~ s/</&lt\;/;
2185     + $_ =~ s/>/&gt\;/;
2186     +
2187     + $all .= "$_<br>\n";
2188     + }
2189     + close INF;
2190     + }
2191     +
2192     + $all .= "<\code>\n";
2193     + print $q->end_table;
2194     + return "$all";
2195     +}
2196     +sub print_blacklist_head
2197     +{
2198     + my $self = shift;
2199     + my $q = $self->{cgi};
2200     + my $all = ();
2201     +
2202     + print $q->start_table({-CLASS => "sme-border"}),"\n";
2203     +
2204     + $all .= "<code>\n";
2205     +
2206     + system ("/usr/bin/head /etc/dansguardian/blacklists/*/* > /tmp/lists") == 0
2207     + or die ("Error occurred reading phraselists\n");
2208     +
2209     + if ( -e "/tmp/lists" )
2210     + {
2211     + open (INF,"/tmp/lists")
2212     + or die ("can't open /tmp/lists read. ");
2213     +
2214     + $all .= "<br><b> head /etc/dansguardian/blacklists/* </b><br>\n";
2215     +
2216     + while (<INF>)
2217     + {
2218     + # allow for 4 sets
2219     + $_ =~ s/</&lt\;/;
2220     + $_ =~ s/>/&gt\;/;
2221     + $_ =~ s/</&lt\;/;
2222     + $_ =~ s/>/&gt\;/;
2223     + $_ =~ s/</&lt\;/;
2224     + $_ =~ s/>/&gt\;/;
2225     + $_ =~ s/</&lt\;/;
2226     + $_ =~ s/>/&gt\;/;
2227     +
2228     + $all .= "$_<br>\n";
2229     + }
2230     + close INF;
2231     + }
2232     +
2233     + $all .= "<\code>\n";
2234     + print $q->end_table;
2235     + return "$all";
2236     +}
2237     +
2238     +sub save_record
2239     +{
2240     + my $self = shift;
2241     + my $q = $self->{cgi};
2242     + my $g = $q->param ('g') ||'';
2243     + my $key = $q->param ('key') ||'';
2244     + my $list = $q->param ('list') ||'';
2245     + my $criterion = $q->param ('criterion');
2246     +
2247     + if ($key eq 'new')
2248     + {
2249     + my $random = int(rand(999999));
2250     + $key = $list.$random;
2251     + $ddb->new_record($key, { type => "$list" });
2252     + }
2253     + $ddb->set_prop($key, 'criterion', $criterion);
2254     +
2255     + return $self->success("SUCCESS_STORED");
2256     +}
2257     +sub delete_record
2258     +{
2259     + my $self = shift;
2260     + my $q = $self->{cgi} ||'';
2261     + my $key = $q->param('key') ||'';
2262     +
2263     + my $rec = $ddb->get($key);
2264     + $rec->delete;
2265     +
2266     + return $self->success("SUCCESS_STORED");
2267     +}
2268     +
2269     +sub print_phraselist_table
2270     +{
2271     + my $self = shift;
2272     + my $q = $self->{cgi};
2273     + my $g = $q->param ('g') ||'';
2274     +
2275     + my $Llist = $self->localise('LIST');
2276     +
2277     + my @lists = $pdb->get_all_by_prop(type => "list");
2278     + my @gnames = '';
2279     + foreach my $g (@lists)
2280     + {
2281     + my $groupname = $g->key();
2282     + push (@gnames, $groupname)
2283     + }
2284     +
2285     + my @installed = ('badwords','googlesearches');
2286     + foreach (@gnames)
2287     + {
2288     + push (@installed, $_)
2289     + if (-e "/etc/dansguardian/lists/phraselists/$_/weighted");
2290     + }
2291     +
2292     + #hide table if you have no rules
2293     + my $installed = @installed || 'no lists';
2294     + if ($installed eq 'no lists')
2295     + {
2296     + return "$self->localise('ERROR');"
2297     + }
2298     + else
2299     + {
2300     +
2301     + print $q->start_table({-CLASS => "sme-border"}),"\n";
2302     +
2303     + print $q->Tr ( esmith::cgi::genSmallCell($q, $Llist,"header"),
2304     + esmith::cgi::genSmallCell($q, '',"header")),"\n";
2305     +
2306     + #checkboxes
2307     + my ($a, $aa) = '';
2308     + foreach (sort @installed)
2309     + {
2310     + $a = $_;
2311     + $aa = $pdb->get_prop($_, $g) || '';
2312     + if ($aa eq 'on') { $aa = "checked"; }
2313     +
2314     + print $q->Tr (esmith::cgi::genSmallCell ($q, $_),
2315     + esmith::cgi::genSmallCell ($q, ("<input type=\"checkbox\" name=\"$a\" $aa>")));
2316     + }
2317     + }
2318     +
2319     + print $q->end_table;
2320     +
2321     + return "";
2322     +}
2323     +sub save_phrase
2324     +{
2325     + my $self = shift;
2326     + my $q = $self->{cgi};
2327     + my $g = $q->param ('g') ||'';
2328     +
2329     + my @lists = $pdb->get_all_by_prop(type => "list");
2330     + my @gnames = '';
2331     + foreach my $g (@lists)
2332     + {
2333     + my $groupname = $g->key();
2334     + push (@gnames, $groupname)
2335     + }
2336     +
2337     + my @installed = ();
2338     + foreach (@gnames)
2339     + {
2340     + push (@installed, $_)
2341     + if (-e "/etc/dansguardian/lists/phraselists/$_/weighted");
2342     + }
2343     +
2344     + #skip if you have nothing
2345     + my $installed = @installed || 'no lists';
2346     + unless ($installed eq 'no lists')
2347     + {
2348     + #from checkboxes
2349     + my ($a, $aa) = '';
2350     + foreach (@installed)
2351     + {
2352     + my $a = $_;
2353     + my $aa = $q->param ($a) || '';
2354     + $pdb->set_prop($_, $g, $aa);
2355     + }
2356     + }
2357     +
2358     + return $self->success("SUCCESS_STORED");
2359     +}
2360     +
2361     +
2362     +sub print_blacklist_table
2363     +{
2364     + my $self = shift;
2365     + my $q = $self->{cgi};
2366     + my $g = $q->param ('g') ||'';
2367     +
2368     + my $Llist = $self->localise('LIST');
2369     + my $LWhite = $self->localise('LWhite');
2370     + my $LGrey = $self->localise('Lgrey');
2371     + my $LBlack = $self->localise('LBlack');
2372     +
2373     + my @lists = $bdb->get_all_by_prop(type => "list");
2374     + my @gnames = '';
2375     + foreach my $g (@lists)
2376     + {
2377     + my $groupname = $g->key();
2378     + push (@gnames, $groupname)
2379     + }
2380     +
2381     + my @installed = ();
2382     + foreach (@gnames)
2383     + {
2384     + push (@installed, $_)
2385     + if (-e "/etc/dansguardian/blacklists/$_/domains");
2386     + }
2387     +
2388     + #hide table if you have no rules
2389     + my $installed = @installed || 'no lists';
2390     + if ($installed eq 'no lists')
2391     + {
2392     + return "$self->localise('NO_BLACK');"
2393     + }
2394     + else
2395     + {
2396     + print $q->start_table({-CLASS => "sme-border"}),"\n";
2397     + print $q->Tr (
2398     + esmith::cgi::genSmallCell($q, $Llist,"header"),
2399     + esmith::cgi::genSmallCell($q, $LWhite,"header"),
2400     + esmith::cgi::genSmallCell($q, $LGrey,"header"),
2401     + esmith::cgi::genSmallCell($q, $LBlack,"header")),"\n";
2402     +
2403     + #checkboxes
2404     + my ($a, $b, $c, $aa, $bb, $cc) = '';
2405     + foreach (sort @installed)
2406     + {
2407     + $a = $_.'white';
2408     + $aa = $bdb->get_prop($_, "white$g") || '';
2409     + if ($aa eq 'on') { $aa = "checked"; }
2410     +
2411     + my $b = $_.'grey';
2412     + $bb = $bdb->get_prop($_, "grey$g") || '';
2413     + if ($bb eq 'on') { $bb = "checked"; }
2414     +
2415     + my $c = $_.'black';
2416     + $cc= $bdb->get_prop($_, "black$g") || '';
2417     + if ($cc eq 'on') { $cc = "checked"; }
2418     +
2419     + #todo
2420     + my $listname = $self->localise($_);
2421     +
2422     + print $q->Tr
2423     + (esmith::cgi::genSmallCell ($q, $listname),
2424     + esmith::cgi::genSmallCell ($q, ("<input type=\"checkbox\" name=\"$a\" $aa>")),
2425     + esmith::cgi::genSmallCell ($q, ("<input type=\"checkbox\" name=\"$b\" $bb>")),
2426     + esmith::cgi::genSmallCell ($q, ("<input type=\"checkbox\" name=\"$c\" $cc>")));
2427     + }
2428     + }
2429     +
2430     + print $q->end_table;
2431     +
2432     + return "";
2433     +}
2434     +sub save_black
2435     +{
2436     + my $self = shift;
2437     + my $q = $self->{cgi};
2438     + my $g = $q->param ('g') ||'';
2439     +
2440     + my @lists = $bdb->get_all_by_prop(type => "list");
2441     + my @gnames = '';
2442     + foreach my $g (@lists)
2443     + {
2444     + my $groupname = $g->key();
2445     + push (@gnames, $groupname)
2446     + }
2447     +
2448     + my @installed = ();
2449     + foreach (@gnames)
2450     + {
2451     + push (@installed, $_)
2452     + if (-e "/etc/dansguardian/blacklists/$_/domains");
2453     + }
2454     +
2455     + #skip if you have nothing
2456     + my $installed = @installed || 'no lists';
2457     + unless ($installed eq 'no lists')
2458     + {
2459     + #from checkboxes
2460     + my ($a, $b, $c, $aa, $bb, $cc,) = '';
2461     + foreach (@installed)
2462     + {
2463     + my $a = $_.'white';
2464     + my $aa = $q->param ("$a") || '';
2465     + $bdb->set_prop($_, "white$g", $aa);
2466     +
2467     + my $b = $_.'grey';
2468     + my $bb = $q->param ("$b") || '';
2469     + $bdb->set_prop($_, "grey$g", $bb);
2470     +
2471     + my $c = $_.'black';
2472     + my $cc = $q->param ("$c") || '';
2473     + $bdb->set_prop($_, "black$g", $cc);
2474     + }
2475     + }
2476     +
2477     + return $self->success("SUCCESS_STORED");
2478     +}
2479     +
2480     +1;

admin@koozali.org
ViewVC Help
Powered by ViewVC 1.2.1 RSS 2.0 feed