You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by da...@apache.org on 2017/09/20 15:35:11 UTC
couchdb-cassim git commit: Remove public db record [Forced Update!]
Repository: couchdb-cassim
Updated Branches:
refs/heads/COUCHDB-3288-remove-public-db-record 86bf25f9b -> 60a1512a3 (forced update)
Remove public db record
COUCHDB-3288
Project: http://git-wip-us.apache.org/repos/asf/couchdb-cassim/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb-cassim/commit/60a1512a
Tree: http://git-wip-us.apache.org/repos/asf/couchdb-cassim/tree/60a1512a
Diff: http://git-wip-us.apache.org/repos/asf/couchdb-cassim/diff/60a1512a
Branch: refs/heads/COUCHDB-3288-remove-public-db-record
Commit: 60a1512a37f4ee550696c2fdabc24287547aa4c7
Parents: 7f03449
Author: Paul J. Davis <pa...@gmail.com>
Authored: Thu Feb 16 09:57:26 2017 -0600
Committer: Paul J. Davis <pa...@gmail.com>
Committed: Wed Sep 20 10:34:55 2017 -0500
----------------------------------------------------------------------
src/cassim_security.erl | 23 +++++++++++------------
1 file changed, 11 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/couchdb-cassim/blob/60a1512a/src/cassim_security.erl
----------------------------------------------------------------------
diff --git a/src/cassim_security.erl b/src/cassim_security.erl
index 08fe791..ad33c2c 100644
--- a/src/cassim_security.erl
+++ b/src/cassim_security.erl
@@ -38,9 +38,7 @@ get_security(DbName) ->
get_security(DbName, [?ADMIN_CTX]).
-get_security(#db{name=DbName}, Options) ->
- get_security(DbName, Options);
-get_security(DbName, Options) ->
+get_security(DbName, Options) when is_binary(DbName) ->
case cassim:is_active() of
true ->
UserCtx = couch_util:get_value(user_ctx, Options, #user_ctx{}),
@@ -50,7 +48,9 @@ get_security(DbName, Options) ->
{proplists:delete(<<"_id">>, SecProps)};
false ->
fabric:get_security(DbName, Options)
- end.
+ end;
+get_security(Db, Options) ->
+ get_security(couch_db:name(Db), Options).
get_security_doc(DbName) when is_binary(DbName) ->
@@ -90,20 +90,22 @@ set_security(DbName, SecProps) ->
set_security(DbName, SecProps, [?ADMIN_CTX]).
-set_security(#db{name=DbName0}, #doc{}=SecDoc0, Options) ->
+set_security(DbName0, #doc{}=SecDoc0, Options) when is_binary(DbName0) ->
DbName = mem3:dbname(DbName0),
MetaId = cassim_metadata_cache:security_meta_id(DbName),
SecDoc = SecDoc0#doc{id=MetaId},
UserCtx = couch_util:get_value(user_ctx, Options, #user_ctx{}),
MetaDbName = cassim_metadata_cache:metadata_db(),
- MetaDb = #db{name=MetaDbName, user_ctx=?ADMIN_USER},
+ {ok, MetaDb} = couch_db:clustered_db(MetaDbName, ?ADMIN_USER),
cassim:verify_admin_role(UserCtx),
ok = validate_security_doc(SecDoc),
{Status, Etag, {Body0}} =
chttpd_db:update_doc(MetaDb, MetaId, SecDoc, Options),
Body = {proplists:delete(<<"_id">>, Body0)},
ok = cassim_metadata_cache:cleanup_old_docs(MetaId),
- {Status, Etag, Body}.
+ {Status, Etag, Body};
+set_security(Db, SecDoc, Options) ->
+ set_security(couch_db:name(Db), SecDoc, Options).
migrate_security_props(DbName0, {SecProps}) ->
@@ -111,7 +113,7 @@ migrate_security_props(DbName0, {SecProps}) ->
MetaId = cassim_metadata_cache:security_meta_id(DbName),
SecDoc = #doc{id=MetaId, body={SecProps}},
MetaDbName = cassim_metadata_cache:metadata_db(),
- MetaDb = #db{name=MetaDbName, user_ctx=?ADMIN_USER},
+ {ok, MetaDb} = couch_db:clustered_db(MetaDbName, ?ADMIN_USER),
%% Better way to construct a new #doc{} with the rev?
{_, _, {Body}} = chttpd_db:update_doc(MetaDb, MetaId, SecDoc, [?ADMIN_CTX]),
Rev = proplists:get_value(rev, Body),
@@ -149,8 +151,5 @@ validate_roles_list(Field, _Roles) ->
check_is_member(UserCtx, SecProps) ->
- FakeDb = #db{
- security = SecProps,
- user_ctx = UserCtx
- },
+ {ok, FakeDb} = couch_db:clustered_db(<<"foo">>, UserCtx, SecProps),
couch_db:check_is_member(FakeDb).