summaryrefslogtreecommitdiff
path: root/source4/dsdb/samdb
diff options
context:
space:
mode:
authorMatthieu Patou <mat@matws.net>2012-12-30 02:27:25 -0800
committerMatthieu Patou <mat@matws.net>2013-01-17 00:20:45 -0800
commita0c59b4da1c5d8637c92e65c7cf54bb82bc8fca5 (patch)
tree2c1485456cf2fbbb280d1379b5ddb7f0c24207b8 /source4/dsdb/samdb
parent961a1fbbbccb7fbb14634ec230985f3fd000b050 (diff)
downloadsamba-a0c59b4da1c5d8637c92e65c7cf54bb82bc8fca5.tar.gz
samba-a0c59b4da1c5d8637c92e65c7cf54bb82bc8fca5.tar.bz2
samba-a0c59b4da1c5d8637c92e65c7cf54bb82bc8fca5.zip
dsdb-acl: Do not apply ACL on special DNs to hide attributes that the user shouldn't see
This fix frequent reindexing when using python script with a user that is not system. The reindexing is caused by ACL module hidding (removing) attributes in the search request for all attributes in dn=@ATTRIBUTES and because dsdb_schema_set_indices_and_attributes checks that the list of attributes that it just calculated from the schema is the same as the list written in @ATTRIBUTES, if not the list is replaced and a reindexing is triggered. Signed-off-by: Matthieu Patou <mat@matws.net> Reviewed-by: Stefan Metzmacher <metze@samba.org>
Diffstat (limited to 'source4/dsdb/samdb')
-rw-r--r--source4/dsdb/samdb/ldb_modules/acl.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/source4/dsdb/samdb/ldb_modules/acl.c b/source4/dsdb/samdb/ldb_modules/acl.c
index e5597710e8..2504568764 100644
--- a/source4/dsdb/samdb/ldb_modules/acl.c
+++ b/source4/dsdb/samdb/ldb_modules/acl.c
@@ -1644,6 +1644,10 @@ static int acl_search(struct ldb_module *module, struct ldb_request *req)
int ret;
unsigned int i;
+ if (ldb_dn_is_special(req->op.search.base)) {
+ return ldb_next_request(module, req);
+ }
+
ldb = ldb_module_get_ctx(module);
ac = talloc_zero(req, struct acl_context);