# 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', "".&html_escape($object).""); } 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', "".&html_escape($object)."", "".&html_escape($p->{'dn'})."", "".&html_escape($p->{'value'}).""); } elsif ($type eq 'attrs') { # Multi-attribute operation $p->{'dn'} =~ s/,\s+/,/g; return &text('log_'.$action.'_attrs', $object, "".&html_escape($p->{'dn'}).""); } elsif ($type eq 'access') { return &text('log_'.$action.'_access', $object eq '*' ? $text{'log_all'} : $object =~ /^dn(\.[^=]+)?=(.*)/ ? "".&html_escape("$2")."" : "".&html_escape($object).""); } elsif ($type eq 'accesses') { return &text('log_'.$action.'_accesses', $object); } elsif ($action eq 'sfile' || $action eq 'sup' || $action eq 'sdown') { return &text('log_'.$action, "".&html_escape($object).""); } elsif ($action eq 'boot') { return $object ? $text{'log_bootup'} : $text{'log_bootdown'}; } elsif ($action eq 'create') { return &text('log_create', "".&html_escape($object).""); } else { return $text{'log_'.$action}; } }