Handle hostnames with upper-case letters
[webmin.git] / ldap-server / delete_acls.cgi
1 #!/usr/local/bin/perl
2 # Delete a bunch of access control rules
3
4 require './ldap-server-lib.pl';
5 &error_setup($text{'dacl_err'});
6 &local_ldap_server() == 1 || &error($text{'slapd_elocal'});
7 $access{'acl'} || &error($text{'acl_ecannot'});
8 &ReadParse();
9
10 # Filter out un-wanted rules
11 &lock_slapd_files();
12
13 if (&get_config_type() == 1) {
14         $conf = &get_config();
15         @access = &find("access", $conf);
16         }
17 else {
18         $defdb = &get_default_db();
19         $conf = &get_ldif_config();
20         @access = &find_ldif("olcAccess", $conf, $defdb);
21         }
22
23 %d = map { $_, 1 } split(/\0/, $in{'d'});
24 keys(%d) || &error($text{'dacl_enone'});
25 for($i=0; $i<@access; $i++) {
26         push(@newaccess, $access[$i]) if (!$d{$i});
27         }
28
29 # Save them
30 if (&get_config_type() == 1) {
31         &save_directive($conf, "access", @newaccess);
32         }
33 else {
34         &save_ldif_directive($conf, "olcAccess", $defdb, @newaccess);
35         }
36 &flush_file_lines();
37 &unlock_slapd_files();
38
39 &webmin_log("delete", "accesses", scalar(keys(%d)));
40 &redirect("edit_acl.cgi");
41