-
-
Notifications
You must be signed in to change notification settings - Fork 4.8k
using include() function with Query fails on Pointer collection CLP restriction #2005
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
I have not had this problem. FWIW, in my code (at least with an older version of the JSSDK), it would complain if I tried to do: My structure is more like... Don't know if that was corrected in later versions of the SDK and I just have the array formatting in there due to legacy reasons, but thought I would share. |
Thanks for your comments. I did try putting it in an array like you suggested. In your code, does "vendor" have a CLP where FIND is unchecked? When I check that box on "vendor" CLP the issue is resolved. |
@araskin Was the column in question added after you did the Parse migration? I remember earlier on, I did notice something off about one of my columns... and it was related to permissions. |
I can successfully replicate your problem. I believe the issue is due to Parse internally using FIND instead of GET when executing query includes. |
@araskin Just make sure you're never using the masterKey outside of Cloud Code. Never on the client side of course. |
@tarekskr absolutely. I try to avoid any direct REST API calls (though I do have some). Almost all of the calls from the front end or to specifically created cloud code functions. |
* test for repro #2005 * Adds ability to override CLP op from RestQuery.execute * nits
Please read the following instructions carefully.
Make sure these boxes are checked before submitting your issue -- thanks for reporting issues back to Parse Server!
Issue Description
I currently have the following code which was migrated from and currently works without a problem on Parse.com
The
query.find()
call fails with the following exception{"message":"Permission denied for this action.","code":119}
When trouble shooting this issues I noticed that if I remove VENDOR from the INCLUDE function then everything works fine. The VENDOR field is a pointer to a record in the collection called vendor .
The CLP for collection vendor is as follows:
I noticed that when I check the box for FIND permission on the CLP the error goes away. However I feel that this behavior is incorrect since it is a direct pointer load and should be treated as a GET read rather then a FIND read.
Also passing in useMasterKey also fixes the issue and while in this case it is an acceptable work around I believe the core behavior is wrong when using an include function to load pointer objects with a CLP of GET = false
Steps to reproduce
Please include a detailed list of steps that reproduce the issue. Include curl commands when applicable.
The call will fail with a permission error.
Expected Results
Since I assume that the include does a GET I don't see why the query would fail. My assumption is the the collection2 pointer field would load successfully
{"message":"Permission denied for this action.","code":119}
[FILL THIS OUT]
Environment Setup
Logs/Trace
You can turn on additional logging by configuring VERBOSE=1 in your environment.
[FILL THIS OUT]
The text was updated successfully, but these errors were encountered: