Skip to content

matchesQuery and pointer permissions #2431

Closed
@christianpbrink

Description

@christianpbrink

Issue Description

I've got a class, PlaylistItem, that has a pointer to a User. I'm using pointer permissions to give that User full read and write permissions on the PlaylistItem that points to it. The only public CLP on PlaylistItem is 'create'.

My use of pointer permissions is new. Until today I had full public 'read' CLPs on PlaylistItem.

This is an iOS app. One of the PFQuerys I run against PlaylistItem has a matchesQuery condition, where the inner query is on a different class called ArticleVersion. ArticleVersion has public 'read' CLPs.

The matchesQuery condition always worked fine until now. It stops working when I whack the public 'read' CLP on PlaylistItem and rely on pointer permissions only. By "stops working" I mean it causes my outer query to return no results.

Steps to reproduce

I can write a clear repro if need be, but first I'd like some confirmation as to whether this is a known issue (or perhaps is even expected behavior for reasons I'm not thinking of). I searched for a good while and found nothing about it.

  • Server
    • parse-server version: 2.2.17
    • Operating System: Um whatever's the default on Heroku?
    • Hardware: Heroku dyno, the default
  • Database
    • MongoDB version: 3.0.12
    • Storage engine: mLab default
    • Hardware: mLab default

Logs/Trace

verbose: REQUEST for [GET] /parse/classes/PlaylistItem: {
  "include": "articleVersion",
  "order": "index",
  "where": {
    "user": {
      "__type": "Pointer",
      "className": "_User",
      "objectId": "-----"
    },
    "articleVersion": {
      "$inQuery": {
        "include": "publication",
        "order": "index",
        "className": "ArticleVersion",
        "where": {
          "index": {
            "$exists": true
          },
          "active": true
        }
      }
    }
  }
} method=GET, url=/parse/classes/PlaylistItem, host=----, x-parse-client-version=i1.13.0, accept=*/*, x-parse-session-token=-----, x-parse-application-id=-----, x-parse-client-key=------, x-parse-installation-id=------, x-parse-os-version=9.3 (15F34), accept-language=en-us, accept-encoding=gzip, deflate, content-type=application/json; charset=utf-8, content-length=292, user-agent=Audm/6326 CFNetwork/758.3.15 Darwin/15.5.0, connection=keep-alive, x-parse-app-build-version=6326, x-parse-app-display-version=1.0, include=articleVersion, order=index, __type=Pointer, className=_User, objectId=-----, include=publication, order=index, className=ArticleVersion, $exists=true, active=true
verbose: RESPONSE from [GET] /parse/classes/PlaylistItem: {
  "response": {
    "results": []
  }
} results=[]

Thank you!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions