anchor.diff:                               organization_guid = OrgId,
                                requestor = #chef_requestor{authz_id = ActorId},
                                db_type = DbType} = State,
  -                 RecType, ContainerId, ObjectEjson) ->
  -    %% Note: potential race condition.  If we don't have perms, the create will fail.
  -    %% Although we checked rights above, they could have changed.
  -    {ok, AuthzId} = ?SH_TIME(ReqId, chef_authz,
  -                             create_object_with_container_acl, (ActorId, ContainerId)),
  +                 RecType, AuthzInfo, ObjectEjson) ->
  +    {ok, AuthzId} = maybe_create_authz(ReqId, ActorId, AuthzInfo),
  +
       %% ObjectEjson should already be normalized. Record creation does minimal work and does
       %% not add or update any fields.
       ObjectRec = chef_object:new_record(RecType, OrgId, AuthzId, ObjectEjson,
  
positive.code:              State#base_state{log_msg = LogMsg}};
          What ->
              %% ignore return value of solr delete, this is best effort.
              chef_object:delete_from_solr(ObjectRec),
              {{halt, 500}, Req, State#base_state{log_msg = What}}
      end.
  
  
negative.code:                     {false, Req1, State1#base_state{log_msg = Reason}}
              end
      end.
  -spec create_from_json(Req :: #wm_reqdata{}, State :: #base_state{},
                         RecType :: chef_object_name()| chef_cookbook_version,
                         ContainerId ::object_id() | {authz_id, AuthzId::object_id()},
                         ObjectEjson :: ejson_term()) ->
                                {true | {halt, 409 | 500}, #wm_reqdata{}, #base_state{}}.
  %% @doc Implements the from_json callback for POST requests to create Chef
  %% objects. `RecType' is the name of the object record being created
  