Schema movement
authorJamie Cameron <jcameron@webmin.com>
Thu, 13 Dec 2007 01:47:17 +0000 (01:47 +0000)
committerJamie Cameron <jcameron@webmin.com>
Thu, 13 Dec 2007 01:47:17 +0000 (01:47 +0000)
ldap-server/down_schema.cgi [new file with mode: 0644]
ldap-server/lang/en
ldap-server/log_parser.pl
ldap-server/up_schema.cgi [new file with mode: 0644]

diff --git a/ldap-server/down_schema.cgi b/ldap-server/down_schema.cgi
new file mode 100644 (file)
index 0000000..5fd3584
--- /dev/null
@@ -0,0 +1,23 @@
+#!/usr/local/bin/perl
+# Move a schema include down (later)
+
+require './ldap-server-lib.pl';
+&local_ldap_server() == 1 || &error($text{'slapd_elocal'});
+&ReadParse();
+
+# Find it includes
+&lock_file($config{'config_file'});
+$conf = &get_config();
+@incs = &find_value("include", $conf);
+$idx = &indexof($in{'file'}, @incs);
+$idx > 0 || &error($text{'schema_emove'});
+
+# Move up
+($incs[$idx+1], $incs[$idx]) = ($incs[$idx], $incs[$idx+1]);
+&save_directive($conf, "include", @incs);
+&flush_file_lines($config{'config_file'});
+&unlock_file($config{'config_file'});
+
+&webmin_log("sup", undef, $in{'file'});
+&redirect("edit_schema.cgi");
+
index 9f46426..38c37e4 100644 (file)
@@ -79,6 +79,7 @@ schema_eheader=Schema file contents
 schema_path=Full filename
 schema_edesc=This page allows you to manually edit an LDAP schema file. This should only be done if you are familiar with the file format, as no checking is done by Webmin.
 schema_return=schema list
+schema_emove=Could not find schema file to move!
 
 acl_title=LDAP Access Control
 
@@ -187,6 +188,8 @@ log_slapd=Changed LDAP server configuration
 log_schema=Changed enabled LDAP schemas
 log_gencert=Generated new SSL certificate
 log_sfile=Modified schema file $1
+log_sup=Moved up schema file $1
+log_sdown=Moved down schema file $1
 
 gencert_title=Generate SSL Certificate
 gencert_header=New SSL certificate details
index ed5d810..f95af7e 100644 (file)
@@ -32,8 +32,8 @@ elsif ($type eq 'attrs') {
        return &text('log_'.$action.'_attrs', $object,
                     "<tt>".&html_escape($p->{'dn'})."</tt>");
        }
-elsif ($type eq 'sfile') {
-       return &text('log_sfile', "<tt>".&html_escape($object)."</tt>");
+elsif ($action eq 'sfile' || $action eq 'sup' || $action eq 'sdown') {
+       return &text('log_'.$action, "<tt>".&html_escape($object)."</tt>");
        }
 else {
        return $text{'log_'.$action};
diff --git a/ldap-server/up_schema.cgi b/ldap-server/up_schema.cgi
new file mode 100644 (file)
index 0000000..6fa0f23
--- /dev/null
@@ -0,0 +1,23 @@
+#!/usr/local/bin/perl
+# Move a schema include up (earlier)
+
+require './ldap-server-lib.pl';
+&local_ldap_server() == 1 || &error($text{'slapd_elocal'});
+&ReadParse();
+
+# Find it includes
+&lock_file($config{'config_file'});
+$conf = &get_config();
+@incs = &find_value("include", $conf);
+$idx = &indexof($in{'file'}, @incs);
+$idx > 0 || &error($text{'schema_emove'});
+
+# Move up
+($incs[$idx-1], $incs[$idx]) = ($incs[$idx], $incs[$idx-1]);
+&save_directive($conf, "include", @incs);
+&flush_file_lines($config{'config_file'});
+&unlock_file($config{'config_file'});
+
+&webmin_log("sup", undef, $in{'file'});
+&redirect("edit_schema.cgi");
+