- /* Nope, we don't have delete object. Lets check if we have delete child on the parent */
- /* No parent, so check fails */
- /* FIXME: this has to be made dynamic at some point */
- if ((ldb_dn_compare(req->op.del.dn, (ldb_get_schema_basedn(ldb))) == 0) ||
- (ldb_dn_compare(req->op.del.dn, (ldb_get_config_basedn(ldb))) == 0) ||
- (ldb_dn_compare(req->op.del.dn, (ldb_get_default_basedn(ldb))) == 0)) {
- DEBUG(10,("acl:deleting an NC\n"));
- return ldb_module_done(req, NULL, NULL, LDB_ERR_INSUFFICIENT_ACCESS_RIGHTS);
+ /* First check if we have delete object right */
+ ret = dsdb_module_check_access_on_dn(module, req, req->op.del.dn,
+ SEC_STD_DELETE, NULL);
+ if (ret == LDB_SUCCESS) {
+ return ldb_next_request(module, req);