Current File : //proc/thread-self/root/usr/share/webmin/ldap-server/delete_acls.cgi |
#!/usr/bin/perl
# Delete a bunch of access control rules
require './ldap-server-lib.pl';
&error_setup($text{'dacl_err'});
&local_ldap_server() == 1 || &error($text{'slapd_elocal'});
$access{'acl'} || &error($text{'acl_ecannot'});
&ReadParse();
# Filter out un-wanted rules
&lock_slapd_files();
if (&get_config_type() == 1) {
$conf = &get_config();
@access = &find("access", $conf);
}
else {
$defdb = &get_default_db();
$conf = &get_ldif_config();
@access = &find_ldif("olcAccess", $conf, $defdb);
}
%d = map { $_, 1 } split(/\0/, $in{'d'});
keys(%d) || &error($text{'dacl_enone'});
for($i=0; $i<@access; $i++) {
push(@newaccess, $access[$i]) if (!$d{$i});
}
# Save them
if (&get_config_type() == 1) {
&save_directive($conf, "access", @newaccess);
}
else {
&save_ldif_directive($conf, "olcAccess", $defdb, @newaccess);
}
&flush_file_lines();
&unlock_slapd_files();
&webmin_log("delete", "accesses", scalar(keys(%d)));
&redirect("edit_acl.cgi");