anchor.diff:        make_ejson_part(<<"delete">>, ForType, ForId),
         make_ejson_part(<<"grant">>, ForType, ForId)]}.
   
  +%% Parse JSON ACL object, return members
   parse_acl_json(Json, Action) ->
       try
           Ejson = heimdall_wm_util:decode(Json),
  
positive.code:             heimdall_db:has_permission(TargetType, TargetId, Id, atom_to_list(Permission))
      end.
  
  check_any_access(TargetType, TargetId, RequestorId) ->
      check_access(TargetType, TargetId, RequestorId, create) or
          check_access(TargetType, TargetId, RequestorId, read) or
  
negative.code:       {<<"groups">>,
         acl_members(ForType, group, ForId, Permission)}]}}.
  
  %% Create full EJSON object for permission type on given ID
  make_ejson_action(Permission, ForType, ForId) ->
      {[{<<"actors">>,
         acl_members(ForType, actor, ForId, Permission)},
        {<<"groups">>,
         acl_members(ForType, group, ForId, Permission)}]}.
  
  %% Create full EJSON object for given ID
  make_ejson_acl(ForType, ForId) ->
      {[make_ejson_part(<<"create">>, ForType, ForId),
        make_ejson_part(<<"read">>, ForType, ForId),
  