Handle hostnames with upper-case letters
[webmin.git] / ldap-server / edit_acl.cgi
1 #!/usr/local/bin/perl
2 # List all access control settings from ldap server config
3
4 require './ldap-server-lib.pl';
5 &local_ldap_server() == 1 || &error($text{'slapd_elocal'});
6 $access{'acl'} || &error($text{'acl_ecannot'});
7 &ui_print_header(undef, $text{'acl_title'}, "", "acl");
8
9 # Get ACLs
10 if (&get_config_type() == 1) {
11         $conf = &get_config();
12         @access = &find("access", $conf);
13         }
14 else {
15         $defdb = &get_default_db();
16         $conf = &get_ldif_config();
17         @access = &find_ldif("olcAccess", $conf, $defdb);
18         }
19
20 @crlinks = ( "<a href='acl_form.cgi?new=1'>$text{'acl_add'}</a>" );
21 if (@access) {
22         # Show table of ACLs
23         print &ui_form_start("delete_acls.cgi", "post");
24         @links = ( &select_all_link("d"), &select_invert_link("d"), @crlinks );
25         print &ui_links_row(\@links);
26         @tds = ( "width=5", "width=30%", "width=65%", "width=5%" );
27         print &ui_columns_start([ "", $text{'acl_what'},
28                                   $text{'acl_who'}, $text{'acl_move'} ],
29                                 100, 0, \@tds);
30         $i = 0;
31         foreach $a (@access) {
32                 $mover = &ui_up_down_arrows(
33                         "up_acl.cgi?idx=$i",
34                         "down_acl.cgi?idx=$i",
35                         $i > 0,
36                         $i < @access-1);
37                 $p = &parse_ldap_access($a);
38                 print &ui_checked_columns_row([
39                         "<a href='acl_form.cgi?idx=$i'>$p->{'whatdesc'}</a>",
40                         $p->{'bydesc'},
41                         $mover,
42                         ], \@tds, "d", $i);
43                 $i++;
44                 }
45         print &ui_columns_end();
46         print &ui_links_row(\@links);
47         print &ui_form_end([ [ undef, $text{'acl_delete'} ] ]);
48         }
49 else {
50         # None yet, meaning defaults
51         print "<b>$text{'acl_none'}</b><p>\n";
52         print &ui_links_row(\@crlinks);
53         }
54
55 &ui_print_footer("", $text{'index_return'});
56