diff options
author | John Christopher Anderson <jchris@apache.org> | 2010-03-04 05:16:00 +0000 |
---|---|---|
committer | John Christopher Anderson <jchris@apache.org> | 2010-03-04 05:16:00 +0000 |
commit | b1ead98c905e60ed07de0592122642c018eb525b (patch) | |
tree | c0a48f758da3bf39840739dd2b1329a387bb6721 | |
parent | d318717866ffa267781ab482e99a05415e2ac0e4 (diff) |
ensure full commit when the security object is updated
git-svn-id: https://svn.apache.org/repos/asf/couchdb/trunk@918855 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | share/www/script/test/reader_acl.js | 5 | ||||
-rw-r--r-- | src/couchdb/couch_db.erl | 4 |
2 files changed, 8 insertions, 1 deletions
diff --git a/share/www/script/test/reader_acl.js b/share/www/script/test/reader_acl.js index a42e9bea..d173d701 100644 --- a/share/www/script/test/reader_acl.js +++ b/share/www/script/test/reader_acl.js @@ -41,6 +41,11 @@ couchTests.reader_acl = function(debug) { names : ["joe","barb"] } }).ok); + + usersDb.ensureFullCommit(); + // security changes will always commit synchronously + restartServer(); + // can't read it as jchris T(CouchDB.login("jchris@apache.org", "funnybone").ok); T(CouchDB.session().userCtx.name == "jchris@apache.org"); diff --git a/src/couchdb/couch_db.erl b/src/couchdb/couch_db.erl index e5635f55..4fca1346 100644 --- a/src/couchdb/couch_db.erl +++ b/src/couchdb/couch_db.erl @@ -291,7 +291,9 @@ get_security(#db{security=SecProps}) -> set_security(#db{update_pid=Pid}=Db, {NewSecProps}) when is_list(NewSecProps) -> check_is_admin(Db), ok = validate_security_object(NewSecProps), - gen_server:call(Pid, {set_security, NewSecProps}, infinity); + ok = gen_server:call(Pid, {set_security, NewSecProps}, infinity), + {ok, _} = ensure_full_commit(Db), + ok; set_security(_, _) -> throw(bad_request). |