You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by rn...@apache.org on 2011/08/23 13:01:20 UTC

svn commit: r1160620 - /couchdb/trunk/src/couchdb/couch_auth_cache.erl

Author: rnewson
Date: Tue Aug 23 11:01:20 2011
New Revision: 1160620

URL: http://svn.apache.org/viewvc?rev=1160620&view=rev
Log:
auto-upgrade /_users/_design/_auth if validate fun fails to match.

Modified:
    couchdb/trunk/src/couchdb/couch_auth_cache.erl

Modified: couchdb/trunk/src/couchdb/couch_auth_cache.erl
URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/couch_auth_cache.erl?rev=1160620&r1=1160619&r2=1160620&view=diff
==============================================================================
--- couchdb/trunk/src/couchdb/couch_auth_cache.erl (original)
+++ couchdb/trunk/src/couchdb/couch_auth_cache.erl Tue Aug 23 11:01:20 2011
@@ -392,8 +392,17 @@ ensure_auth_ddoc_exists(Db, DDocId) ->
     {not_found, _Reason} ->
         {ok, AuthDesign} = auth_design_doc(DDocId),
         {ok, _Rev} = couch_db:update_doc(Db, AuthDesign, []);
-    _ ->
-        ok
+    {ok, Doc} ->
+        {Props} = couch_doc:to_json_obj(Doc, []),
+        case couch_util:get_value(<<"validate_doc_update">>, Props, []) of
+            ?AUTH_DB_DOC_VALIDATE_FUNCTION ->
+                ok;
+            _ ->
+                Props1 = lists:keyreplace(<<"validate_doc_update">>, 1, Props,
+                    {<<"validate_doc_update">>,
+                    ?AUTH_DB_DOC_VALIDATE_FUNCTION}),
+                couch_db:update_doc(Db, couch_doc:from_json_obj({Props1}), [])
+        end
     end,
     ok.