On 09/24/2013 10:40 AM, Benoit Chesneau wrote: > On Tue, Sep 24, 2013 at 10:28 AM, Thorsten Scherler <[email protected]>wrote: > >> On 09/23/2013 06:50 PM, Mike Marino wrote: >>> Hi Thorsten, >>> >>> I believe you're asking how to implement read/write permissions on a >>> database, but I'm a little bit confused by your subject. If this is so, >>> the normal way is to use validate_doc_update functions in a design >>> document, e.g.: >>> >>> >> http://docs.couchdb.org/en/latest/ddocs.html#validate-document-update-functions >>> http://guide.couchdb.org/editions/1/en/validation.html >>> >>> You will see the first link describes the code you linked to. >> Thank you Mike, but the above is only for UPDATE meaning write validation. >> >> However in >> >> https://github.com/apache/couchdb/blob/master/src/couchdb/couch_users_db.erl >> we are doing READ checks (if I understand the following code correctly) >> >> after_doc_read(Doc, #db{user_ctx = UserCtx} = Db) -> >> #user_ctx{name=Name} = UserCtx, >> DocName = get_doc_name(Doc), >> case (catch couch_db:check_is_admin(Db)) of >> ok -> >> Doc; >> _ when Name =:= DocName -> >> Doc; >> _ -> >> Doc1 = strip_non_public_fields(Doc), >> case Doc1 of >> #doc{body={[]}} -> >> throw(not_found); >> _ -> >> Doc1 >> end >> end. >> >> My understanding is when we are the owner or admin of the doc we will >> get the doc. In case we have public fields we return only those >> otherwise we throw a 404. >> >> I would like to implement the exact same behaviour for a database I am >> developing. >> >> Regarding the subject my question is how can I implement above code >> either in a design document (my guess is that is not possible) or in a >> custom db? >> >> If the later then the question is how do I create my own >> couch_myOwn_db.erl and let couchdb know about the existence? >> >> TIA >> >> salu2 >> >> -- >> Thorsten Scherler <scherler.at.gmail.com> >> codeBusters S.L. - web based systems >> <consulting, training and solutions> >> >> http://www.codebusters.es/ >> >> > I think you want something like > > https://github.com/refuge/couch_core/commit/49af86dee8f1e2240ac0c26e9ab9a9c87347b536
No, not "like" - it is exactly that. ;) > > I have been really busy these latest month but such thing should come asap > in couch. (ie when I send this form which must be this week.) > Sweet that sound awesome and thank you very much. salu2 -- Thorsten Scherler <scherler.at.gmail.com> codeBusters S.L. - web based systems <consulting, training and solutions> http://www.codebusters.es/
