1a97ccf554d596902e9bdf60f8e619b19b3680ab
[pyi2ncommon] / src / cnfline / configure_proxy_antivirus.py
1 # The software in this package is distributed under the GNU General
2 # Public License version 2 (with a special exception described below).
3 #
4 # A copy of GNU General Public License (GPL) is included in this distribution,
5 # in the file COPYING.GPL.
6 #
7 # As a special exception, if other files instantiate templates or use macros
8 # or inline functions from this file, or you compile this file and link it
9 # with other works to produce a work based on this file, this file
10 # does not by itself cause the resulting work to be covered
11 # by the GNU General Public License.
12 #
13 # However the source code for this file must still be made available
14 # in accordance with section (3) of the GNU General Public License.
15 #
16 # This exception does not invalidate any other reasons why a work based
17 # on this file might be covered by the GNU General Public License.
18 #
19 # Copyright (c) 2016-2018 Intra2net AG <info@intra2net.com>
20
21 """
22 .. note:: DEPRECATED! Please do not extend this or add new uses of this module,
23           use :py:mod:`pyi2ncommon.arnied_api` or :py:mod:`pyi2ncommon.cnfvar`
24           instead!
25 """
26
27 from .build_cnfvar import BuildCnfVar
28 """Class to configure the proxy antivirus cnfvars on the fly"""
29
30
31 class ConfigureProxyAntivirus(BuildCnfVar):
32     def __init__(self, enabled='1', line_no=1):
33         BuildCnfVar.__init__(self, 'VIRSCAN_PROXY_ENABLE',
34                              0, enabled, line_no)
35
36     def automatic_unblock(self, block_minutes):
37         line_no = self.update_cnf('VIRSCAN_PROXY_AUTOMATIC_UNBLOCK', 0, block_minutes)
38         self.mark_as_own_parent(line_no)
39         return self
40
41     def debug_log(self, enabled='1'):
42         line_no = self.update_cnf('VIRSCAN_PROXY_DEBUG_LOG', 0, enabled)
43         self.mark_as_own_parent(line_no)
44         return self
45
46     def add_pass_site(self, url):
47         sites_parent = self.update_cnf('VIRSCAN_PROXY_PASS_SITES', 0, '')
48         self.mark_as_own_parent(sites_parent)
49
50         self.add_cnf('VIRSCAN_PROXY_PASS_SITES_ADDR', -1, url, sites_parent)
51         return self
52
53     def clear_pass_sites(self):
54         self.del_cnf('VIRSCAN_PROXY_PASS_SITES_ADDR')
55         self.del_cnf('VIRSCAN_PROXY_PASS_SITES')
56         return self
57
58     def warn_admin(self, enabled='1'):
59         line_no = self.update_cnf('VIRSCAN_PROXY_WARN_ADMIN', 0, enabled)
60         self.mark_as_own_parent(line_no)
61         return self