Opened 23 months ago
Last modified 15 months ago
#17981 new defect (bug)
XML-RPC wp.getComments should work for non-admins
| Reported by: |
|
Owned by: | |
|---|---|---|---|
| Priority: | normal | Milestone: | Awaiting Review |
| Component: | XML-RPC | Version: | 3.2 |
| Severity: | normal | Keywords: | mobile has-patch commit |
| Cc: | jbernal@…, ercoli@… |
Description
Right now, if the caller doesn't have the moderate_comments permission, the XML-RPC call returns a 401 error.
A more graceful alternative would be to return the approved comments. The user may not be able to moderate, but still should be able to read/reply
Attachments (7)
Change History (18)
I should have done a trac search before writing a second patch but I feel it's better ;)
Dashboard also shows unapproved comments to authors, so we check for (edit_posts OR moderate_comments) instead of just moderate_comments. The current checks for edit_comment should take care of the rest.
Also, added better error descriptions.
comment:4
Anton Torvald — 19 months ago
Nothing.
comment:5
nprasath002 — 16 months ago
Related #19916
comment:6
daniloercoli — 16 months ago
- Cc ercoli@… added
comment:7
josephscott — 16 months ago
Have you compared this with #19916 yet?
comment:8
nprasath002 — 16 months ago
The patch fixes the issues in cap checks.
Also added validation for post_id
Added a new patch (sorry about the wrong one). Tested with an Author user:
- wp.getComments shows every comment (as dashboard does)
- Added a new field 'can_edit' to show if the user has permission to edit/delete that specific comment. That'll allow to customize the UI for it
- Can edit/delete comments in own posts
- Can't edit/delete comments in others posts
I think this also solves #19916. Some questions about it:
- Should wp.deleteComment error be "You are not allowed to delete..." instead of moderate?
- I was going to change the error in wp.getComments to match wp.getComment, but it's a different error code (401 and 403) and could break something
comment:10
ericmann — 15 months ago
- Keywords commit added
comment:11
westi — 15 months ago
Before we commit these changes I would like us to have some unit tests around the expected behaviour here.
Highest priority are tests for all the cap checks to ensure we have expected behaviour - writing the tests out makes you think a lot about this :)
Second priority are tests for the data returned especially datatypes so we can ensure continuing consistency over time.
I asked koke to see if he could write some of these in IRC today.

Added patch for wp.getComments and wp.getComment. If user can't moderate comments, in only returns approved comments for wp.getComments, and returns an error if comment isn't approved for wp.getComment