Preserve order numbers when editing LDAP ACL rules
authorJamie Cameron <jcameron@webmin.com>
Thu, 10 Feb 2011 05:41:07 +0000 (21:41 -0800)
committerJamie Cameron <jcameron@webmin.com>
Thu, 10 Feb 2011 05:41:07 +0000 (21:41 -0800)
ldap-server/ldap-server-lib.pl

index 7afb209..95f8659 100755 (executable)
@@ -667,6 +667,9 @@ sub parse_ldap_access
 local ($a) = @_;
 local @v = @{$a->{'values'}};
 local $p = { };
+if ($v[0] =~ /^\{(\d+)\}/) {
+       $p->{'order'} = $1;
+       }
 shift(@v);                     # Remove to or {x}to
 if ($v[0] !~ /^(filter|attrs)=/) {
        $p->{'what'} = shift(@v);       # Object
@@ -720,6 +723,9 @@ sub store_ldap_access
 {
 local ($a, $p) = @_;
 local @v = ( 'to' );
+if ($p->{'order'}) {
+       $v[0] = "{".$p->{'order'}."}".$v[0];
+       }
 push(@v, $p->{'what'});
 if ($p->{'filter'}) {
        push(@v, "filter=$p->{'filter'}");