forked from webmin/webmin
-
Notifications
You must be signed in to change notification settings - Fork 0
/
log_parser.pl
executable file
·58 lines (55 loc) · 1.71 KB
/
log_parser.pl
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
57
# log_parser.pl
# Functions for parsing this module's logs
do 'ldap-server-lib.pl';
# parse_webmin_log(user, script, action, type, object, ¶ms)
# Converts logged information from this module into human-readable form
sub parse_webmin_log
{
local ($user, $script, $action, $type, $object, $p, $long) = @_;
if ($type eq 'dn') {
# Changed some DN
$object =~ s/,\s+/,/g;
return &text('log_'.$action.'_dn',
"<tt>".&html_escape($object)."</tt>");
}
elsif ($type eq 'dns') {
# Multi-DN operation
return &text('log_'.$action.'_dns', $object);
}
elsif ($type eq 'attr') {
# Changed some attribute of a DN
$p->{'dn'} =~ s/,\s+/,/g;
return &text($long ? 'log_'.$action.'_attr_l' : 'log_'.$action.'_attr',
"<tt>".&html_escape($object)."</tt>",
"<tt>".&html_escape($p->{'dn'})."</tt>",
"<tt>".&html_escape($p->{'value'})."</tt>");
}
elsif ($type eq 'attrs') {
# Multi-attribute operation
$p->{'dn'} =~ s/,\s+/,/g;
return &text('log_'.$action.'_attrs', $object,
"<tt>".&html_escape($p->{'dn'})."</tt>");
}
elsif ($type eq 'access') {
return &text('log_'.$action.'_access',
$object eq '*' ? $text{'log_all'} :
$object =~ /^dn(\.[^=]+)?=(.*)/ ?
"<tt>".&html_escape("$2")."</tt>" :
"<tt>".&html_escape($object)."</tt>");
}
elsif ($type eq 'accesses') {
return &text('log_'.$action.'_accesses', $object);
}
elsif ($action eq 'sfile' || $action eq 'sup' || $action eq 'sdown') {
return &text('log_'.$action, "<tt>".&html_escape($object)."</tt>");
}
elsif ($action eq 'boot') {
return $object ? $text{'log_bootup'} : $text{'log_bootdown'};
}
elsif ($action eq 'create') {
return &text('log_create', "<tt>".&html_escape($object)."</tt>");
}
else {
return $text{'log_'.$action};
}
}