Hi Alexander Awesome, thanks for your help! I've fixed it up based on your feedback and it works now :)
Kind regards Jamie On Tue, Sep 22, 2015 at 10:34 PM, Alexander Shorin <[email protected]> wrote: > Hi! > > couch_db:set_security is: > > set_security(#db{update_pid=Pid}=Db, {NewSecProps}) when > is_list(NewSecProps) -> > check_is_admin(Db), > ok = validate_security_object(NewSecProps), > ok = gen_server:call(Pid, {set_security, NewSecProps}, infinity), > {ok, _} = ensure_full_commit(Db), > ok; > set_security(_, _) -> > throw(bad_request). > > So you just mismatch the first clause and falls into second one. You > have no reason to do couch_doc:from_json_obj(Json), your Json is valid > here, except a typo in members roles definition. > > > -- > ,,,^..^,,, > > > On Tue, Sep 22, 2015 at 5:29 AM, Jamie Diprose <[email protected]> > wrote: > > Hi (sorry if this got sent twice) > > > > I'm trying to set the database security document ("_security"), from the > > Erlang API. I've tried by saving a document with the id "_security" and > by > > using the *couch_db:set_security* method - both fail and I have no idea > why. > > > > 1) Saving a document with the id "_security" gives the following error: > > > > {"error":"bad_request","reason":"Only reserved document ids may start > with > >> underscore."} > > > > > > 2) So I tried using the set_security method: > > > > add_security_doc(Username) -> > >> ?LOG_INFO("add_security_doc: ~p", [Username]), > >> UsernameBinary = unicode:characters_to_binary(Username), > >> > >> DbOptions = [{user_ctx, #user_ctx{roles = [<<"_admin">>]}}], > >> {ok, UserDb} = couch_db:open_int(UsernameBinary, DbOptions), > >> > >> try > >> Json = {[ > >> {<<"members">>, {[{<<"names">>, []}, {<<"roles">>, UsernameBinary]}]}}, > >> {<<"admins">>, {[{<<"names">>, [UsernameBinary]}, {<<"roles">>, []}]}} > >> ]}, > >> > >> couch_db:set_security(UserDb, couch_doc:from_json_obj(Json)) > >> after > >> couch_db:close(UserDb) > >> end. > > > > > > But this gives the error: > > > > {"error":"bad_request","reason":""} > > > > > > Anyone have any idea what I'm doing wrong? > > > > Thanks for your help > > > > Jamie >
