A little late to reply, but CouchDB has Validate Doc Update functions that can validate based on the old document, the new document, and the user context, in javascript:

http://docs.couchdb.org/en/1.6.1/couchapp/ddocs.html#validat...