This is an automated email from the ASF dual-hosted git repository. jan pushed a commit to branch rebase/access-2023 in repository https://gitbox.apache.org/repos/asf/couchdb.git
commit 5be21311645083d7073ceeaf572c68b563ddef23 Author: Jan Lehnardt <[email protected]> AuthorDate: Mon Jun 27 10:56:56 2022 +0200 feat(access): add access handling to ddoc cache --- src/ddoc_cache/src/ddoc_cache_entry_ddocid.erl | 2 +- src/ddoc_cache/src/ddoc_cache_entry_ddocid_rev.erl | 2 +- src/ddoc_cache/src/ddoc_cache_entry_validation_funs.erl | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/ddoc_cache/src/ddoc_cache_entry_ddocid.erl b/src/ddoc_cache/src/ddoc_cache_entry_ddocid.erl index cf40725e4..1b2c3db96 100644 --- a/src/ddoc_cache/src/ddoc_cache_entry_ddocid.erl +++ b/src/ddoc_cache/src/ddoc_cache_entry_ddocid.erl @@ -28,7 +28,7 @@ ddocid({_, DDocId}) -> DDocId. recover({DbName, DDocId}) -> - fabric:open_doc(DbName, DDocId, [ejson_body, ?ADMIN_CTX]). + fabric:open_doc(DbName, DDocId, [ejson_body, ?ADMIN_CTX, ddoc_cache]). insert({DbName, DDocId}, {ok, #doc{revs = Revs} = DDoc}) -> {Depth, [RevId | _]} = Revs, diff --git a/src/ddoc_cache/src/ddoc_cache_entry_ddocid_rev.erl b/src/ddoc_cache/src/ddoc_cache_entry_ddocid_rev.erl index 5126f5210..ce95dfc82 100644 --- a/src/ddoc_cache/src/ddoc_cache_entry_ddocid_rev.erl +++ b/src/ddoc_cache/src/ddoc_cache_entry_ddocid_rev.erl @@ -28,7 +28,7 @@ ddocid({_, DDocId, _}) -> DDocId. recover({DbName, DDocId, Rev}) -> - Opts = [ejson_body, ?ADMIN_CTX], + Opts = [ejson_body, ?ADMIN_CTX, ddoc_cache], {ok, [Resp]} = fabric:open_revs(DbName, DDocId, [Rev], Opts), Resp. diff --git a/src/ddoc_cache/src/ddoc_cache_entry_validation_funs.erl b/src/ddoc_cache/src/ddoc_cache_entry_validation_funs.erl index 54f5c673f..11f42ed08 100644 --- a/src/ddoc_cache/src/ddoc_cache_entry_validation_funs.erl +++ b/src/ddoc_cache/src/ddoc_cache_entry_validation_funs.erl @@ -26,7 +26,8 @@ ddocid(_) -> no_ddocid. recover(DbName) -> - {ok, DDocs} = fabric:design_docs(mem3:dbname(DbName)), + {ok, DDocs0} = fabric:design_docs(mem3:dbname(DbName)), + DDocs = lists:filter(fun couch_doc:has_no_access/1, DDocs0), Funs = lists:flatmap( fun(DDoc) -> case couch_doc:get_validate_doc_fun(DbName, DDoc) of
