Added logging
authorJamie Cameron <jcameron@webmin.com>
Mon, 19 Nov 2007 00:52:44 +0000 (00:52 +0000)
committerJamie Cameron <jcameron@webmin.com>
Mon, 19 Nov 2007 00:52:44 +0000 (00:52 +0000)
ldap-server/add.cgi
ldap-server/add_browser.cgi
ldap-server/delete_browser.cgi
ldap-server/lang/en
ldap-server/ldap-server-lib.pl
ldap-server/log_parser.pl [new file with mode: 0644]
ldap-server/rename_browser.cgi
ldap-server/save_browser.cgi
ldap-server/sdelete_browser.cgi

index be4bf61..59419f4 100644 (file)
@@ -40,5 +40,6 @@ if (!$rv || $rv->code) {
                                  &ldap_error($rv)));
        }
 
+&webmin_log('create', 'dn', $dn);
 &redirect("edit_browser.cgi?base=".&urlize($dn));
 
index 28fc087..bac46ed 100644 (file)
@@ -24,9 +24,11 @@ $rv = $ldap->modify($bo->dn(),
                    add => { $in{'add'} => $in{'value'} });
 if (!$rv || $rv->code) {
        &error(&text('add_emodify', "<tt>".$bo->dn()."</tt>",
-                                   "<tt>$in{'edit'}</tt>",
+                                   "<tt>$in{'add'}</tt>",
                                    $rv ? $rv->code : "Unknown error"));
        }
 
 # Return to object
+&webmin_log('create', 'attr', $in{'add'}, { 'dn' => $in{'base'},
+                                           'value' => $in{'value'} });
 &redirect("edit_browser.cgi?base=".&urlize($in{'base'})."&mode=attrs");
index 696fb20..fc68fc2 100644 (file)
@@ -28,4 +28,10 @@ if (!$rv || $rv->code) {
        }
 
 # Return to object
+if (@d == 1) {
+       &webmin_log('delete', 'attr', $d[0], { 'dn' => $in{'base'} });
+       }
+else {
+       &webmin_log('delete', 'attrs', scalar(@d), { 'dn' => $in{'base'} });
+       }
 &redirect("edit_browser.cgi?base=".&urlize($in{'base'})."&mode=attrs");
index b02932a..ecf2d5e 100644 (file)
@@ -144,3 +144,19 @@ stop_ekill=Kill process failed : $1
 start_err=Failed to start LDAP server
 start_ecmd=$1 failed : $2
 
+log_create_dn=Created object $1
+log_delete_dn=Deleted object $1
+log_rename_dn=Renamed object $1
+log_delete_dns=Deleted $1 objects
+log_create_attr=Added attribute to object $2
+log_create_attr_l=Added attribute $1 with value $3 to object $2
+log_modify_attr=Updated attribute in object $2
+log_modify_attr_l=Updated attribute $1 with value $3 in object $2
+log_delete_attr=Deleted from object $2
+log_delete_attr_l=Deleted attribute $1 from object $2
+log_delete_attrs=Deleted $1 attributes from object $2
+log_stop=Stopped LDAP server
+log_start=Started LDAP Server
+log_apply=Applied configuration
+log_slapd=Changed LDAP server configuration
+
index 09680a0..d8072ef 100644 (file)
@@ -1,7 +1,6 @@
 # Functions for configuring and talking to an LDAP server
 # XXX help pages
 # XXX initial setup
-# XXX locking and logging
 # XXX install ldap server
 # XXX default configs for various systems (include search max of 100)
 # XXX more slapd.conf options
diff --git a/ldap-server/log_parser.pl b/ldap-server/log_parser.pl
new file mode 100644 (file)
index 0000000..7196438
--- /dev/null
@@ -0,0 +1,39 @@
+# log_parser.pl
+# Functions for parsing this module's logs
+
+do 'ldap-server-lib.pl';
+
+# parse_webmin_log(user, script, action, type, object, &params)
+# 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>");
+       }
+else {
+       return $text{'log_'.$action};
+       }
+}
+
index 3ecf389..7024967 100755 (executable)
@@ -32,5 +32,6 @@ if (!$rv || $rv->code) {
        }
 
 # Return to object
+&webmin_log('rename', 'dn', $in{'old'}, { 'new' => $in{'rename'} });
 &redirect("edit_browser.cgi?base=".&urlize($in{'base'})."&mode=subs");
 
index f9342fb..5817b59 100644 (file)
@@ -30,4 +30,6 @@ if (!$rv || $rv->code) {
        }
 
 # Return to object
+&webmin_log('modify', 'attr', $in{'edit'}, { 'dn' => $in{'base'},
+                                            'value' => join(" ", @values) });
 &redirect("edit_browser.cgi?base=".&urlize($in{'base'})."&mode=attrs");
index d07c60f..56b5b38 100644 (file)
@@ -27,4 +27,11 @@ foreach $d (@d) {
        }
 
 # Return to object
+if (@d == 1) {
+       &webmin_log('delete', 'dn', $d[0]);
+       }
+else {
+       &webmin_log('delete', 'dns', scalar(@d),
+                   { 'dn' => \@d });
+       }
 &redirect("edit_browser.cgi?base=".&urlize($in{'base'})."&mode=subs");