From 37dd8b4ea3991e36e71c5b164a470a5b9507dcd6 Mon Sep 17 00:00:00 2001 From: Jamie Cameron Date: Thu, 13 Dec 2007 01:47:17 +0000 Subject: [PATCH] Schema movement --- ldap-server/down_schema.cgi | 23 +++++++++++++++++++++++ ldap-server/lang/en | 3 +++ ldap-server/log_parser.pl | 4 ++-- ldap-server/up_schema.cgi | 23 +++++++++++++++++++++++ 4 files changed, 51 insertions(+), 2 deletions(-) create mode 100644 ldap-server/down_schema.cgi create mode 100644 ldap-server/up_schema.cgi diff --git a/ldap-server/down_schema.cgi b/ldap-server/down_schema.cgi new file mode 100644 index 000000000..5fd358480 --- /dev/null +++ b/ldap-server/down_schema.cgi @@ -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"); + diff --git a/ldap-server/lang/en b/ldap-server/lang/en index 9f4642627..38c37e412 100644 --- a/ldap-server/lang/en +++ b/ldap-server/lang/en @@ -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 diff --git a/ldap-server/log_parser.pl b/ldap-server/log_parser.pl index ed5d810e0..f95af7ecf 100644 --- a/ldap-server/log_parser.pl +++ b/ldap-server/log_parser.pl @@ -32,8 +32,8 @@ elsif ($type eq 'attrs') { return &text('log_'.$action.'_attrs', $object, "".&html_escape($p->{'dn'}).""); } -elsif ($type eq 'sfile') { - return &text('log_sfile', "".&html_escape($object).""); +elsif ($action eq 'sfile' || $action eq 'sup' || $action eq 'sdown') { + return &text('log_'.$action, "".&html_escape($object).""); } else { return $text{'log_'.$action}; diff --git a/ldap-server/up_schema.cgi b/ldap-server/up_schema.cgi new file mode 100644 index 000000000..6fa0f23a6 --- /dev/null +++ b/ldap-server/up_schema.cgi @@ -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"); +