summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Christopher Anderson <jchris@apache.org>2010-03-04 05:16:00 +0000
committerJohn Christopher Anderson <jchris@apache.org>2010-03-04 05:16:00 +0000
commitb1ead98c905e60ed07de0592122642c018eb525b (patch)
treec0a48f758da3bf39840739dd2b1329a387bb6721
parentd318717866ffa267781ab482e99a05415e2ac0e4 (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.js5
-rw-r--r--src/couchdb/couch_db.erl4
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).