/
ModuleHeader.py
56 lines (44 loc) · 1.83 KB
/
ModuleHeader.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
from Form import *
from Table import *
from Module import *
import validations
NOTE_HEADER = "Header against which the regular expression will be evaluated."
NOTE_MATCH = "Regular expression."
LENGHT_LIMIT = 10
HEADERS = [
('Accept-Encoding', 'Accept-Encoding'),
('Accept-Charset', 'Accept-Charset'),
('Accept-Language', 'Accept-Language'),
('Referer', 'Referer'),
('User-Agent', 'User-Agent')
]
class ModuleHeader (Module, FormHelper):
validation = [('tmp!new_rule!value', validations.is_dir_formated)]
def __init__ (self, cfg, prefix, submit_url):
Module.__init__ (self, 'header', cfg, prefix, submit_url)
FormHelper.__init__ (self, 'header', cfg)
def _op_render (self):
table = TableProps()
if self._prefix.startswith('tmp!'):
self.AddPropOptions (table, 'Header', '%s!value'%(self._prefix), HEADERS, NOTE_HEADER)
else:
self.AddPropOptions (table, 'Header', '%s!header'%(self._prefix), HEADERS, NOTE_HEADER)
self.AddPropEntry (table, 'Regular Expression', '%s!match'%(self._prefix), NOTE_MATCH)
return str(table)
def apply_cfg (self, values):
if values.has_key('value'):
header = values['value']
self._cfg['%s!match!header'%(self._prefix)] = header
if values.has_key('match'):
match = values['match']
self._cfg['%s!match!match'%(self._prefix)] = match
def get_name (self):
header = self._cfg.get_val ('%s!match!header'%(self._prefix))
if not header:
return ''
tmp = self._cfg.get_val ('%s!match!match'%(self._prefix), '')
if len(tmp) > LENGHT_LIMIT:
return "%s (%s..)" % (header, tmp[:5])
return "%s (%s)" % (header, tmp)
def get_type_name (self):
return self._id.capitalize()