mirror of
https://github.com/webmin/webmin.git
synced 2025-07-20 16:48:46 +00:00
44 lines
1.3 KiB
Perl
Executable File
44 lines
1.3 KiB
Perl
Executable File
#!/usr/local/bin/perl
|
|
# Move an access control rule down (later)
|
|
|
|
require './ldap-server-lib.pl';
|
|
&local_ldap_server() == 1 || &error($text{'slapd_elocal'});
|
|
$access{'acl'} || &error($text{'acl_ecannot'});
|
|
&ReadParse();
|
|
|
|
&lock_slapd_files();
|
|
|
|
if (&get_config_type() == 1) {
|
|
# Move down in old-style config
|
|
$conf = &get_config();
|
|
@access = &find("access", $conf);
|
|
($access[$in{'idx'}+1], $access[$in{'idx'}]) =
|
|
($access[$in{'idx'}], $access[$in{'idx'}+1]);
|
|
&save_directive($conf, "access", @access);
|
|
&flush_file_lines($config{'config_file'});
|
|
}
|
|
else {
|
|
# Move down in LDIF config
|
|
$defdb = &get_default_db();
|
|
$conf = &get_ldif_config();
|
|
@access = &find_ldif("olcAccess", $conf, $defdb);
|
|
($access[$in{'idx'}+1], $access[$in{'idx'}]) =
|
|
($access[$in{'idx'}], $access[$in{'idx'}+1]);
|
|
if ($access[$in{'idx'}]->{'values'}->[0] =~ /^\{\d+\}to/ &&
|
|
$access[$in{'idx'}+1]->{'values'}->[0] =~ /^\{\d+\}to/) {
|
|
# Swap indexes too
|
|
($access[$in{'idx'}]->{'values'}->[0],
|
|
$access[$in{'idx'}+1]->{'values'}->[0]) =
|
|
($access[$in{'idx'}+1]->{'values'}->[0],
|
|
$access[$in{'idx'}]->{'values'}->[0]);
|
|
}
|
|
&save_ldif_directive($conf, "olcAccess", $defdb, @access);
|
|
&flush_file_lines();
|
|
}
|
|
|
|
&unlock_slapd_files();
|
|
|
|
&webmin_log("down", "access", $p->{'what'});
|
|
&redirect("edit_acl.cgi");
|
|
|