Members of the Administrators group can purge deleted items fine.
Members of a non-Administrators group can go through the motions of purging items fine, but ultimately, the files persist. No errors are received via MODX or in PHP error log.
The non-Administrators group uses an ACL with purge_deleted and remove permissions. I have confirmed that this ACL is in use.
The users can see the Trash icon, enter the Trash Bin page, select items , click Purge Selected Resources, confirm the “this cannot be undone” message. The page reloads and both panes refresh, but the files persist.
Via Chrome dev tools I can see the request to remove the files looks like this:
{“success”:true,“message”:“Nothing was purged, no errors occurred.”,“total”:0,“data”:[],“object”:[]}
The only other difference I’ve noticed between the two user groups is that when an Administrator right clicks an individual deleted item, they get a context menu offering to purge or restore it. The non-Administrators group gets no context menu.
In the trash manager (manager/?a=resource/trash), when you open the developer tools in the browser (tab “Network”) and reload the data (button ↻ beneath the grid), what is the value of the resource field "cls" in the JSON response?
As far as I can tell, you need the permissions purge_deleted, save_document and edit_document to erase a resource. And undelete_document, save_document and edit_document to restore it.
Are the resources you want to erase in a resource group? Has the user the necessary permissions for this resource group?
But you can see the request? To connectors/index.php with the request parameter “action” = Resource/Trash/GetList?
And there is no “cls” property for every resource in the JSON response?
No the view is correct.
Clear the list (there is a trash-icon above the list) and then reload the data (button ↻ under the grid in the manager page). This should create a single new request in the list. Click on this request in the list. This opens a new area with tabs on the right side. Go to the tab “Response” and look at the JSON response data of this request.