How do you troubleshoot a potential Access Control issue?




our GCs are reporting that they cannot delete certain pages from the siteadmin page. There is likely a correlation between the pages they cannot delete and those pages being possibly referenced elsewhere. Here is what we have tried so far to troubleshoot and reproduce the issue:

  • Steps to reproduce
    • Navigate to the desired to be deleted page in siteadmin
    • Deactivate the page (optional)
    • Select the page
    • Click Delete from the toolbar at the top of the window
    • Get the Delete Page dialog
    • DO NOT Get the "One or more selected pages are referenced" warning
    • Nothing happens.

  • I can delete the pages as admin with administrator group role
  • I can delete the pages while impersonating the affected users
  • I can delete the pages when I configure my own non-admin personal user with the same group roles

  • When I run through the same workflow as the affected user,
    • I get two dialogs: Delete Page confirmation, and A warning that One or more selected pages are referenced.
    • I'm allowed to proceed and force the deletion
  • When the affected GC runs through the workflow,
    • They get only the first dialog: Delete Page confirmation
    • They get no option to force the deletion after selecting yes and nothing happens, nothing is deleted.

  • There are no client-side javascript issues visible using the developer tools.
  • The problem is reproduced in multiple browsers (Chrome and Firefox) for the affected user

  • On the client browser, we get the following potentially relevant Network error:
    • POST https://author.domain.com/bin/wcmcommand 412 (Precondition Failed)

    • XMLHttpRequest.send @ granite.js:235

    • asyncRequest @ widgets.js:3319

    • request @ widgets.js:3374

    • request @ widgets.js:85167

    • CQ.wcm.SiteAdmin.internalDeletePage @ widgets.js:140667

    • fn @ widgets.js:140750

    • (anonymous) @ widgets.js:2282

    • setTimeout (async)

    • defer @ widgets.js:2316

    • callback @ widgets.js:13020

    • handleButton @ widgets.js:49543

    • (anonymous) @ widgets.js:2235

    • onClick @ widgets.js:54772

    • h @ widgets.js:11676

  • In the error logs, we get the following 3 lines
    • 22.09.2017 15:45:39.290 *INFO* [ [1506087939181] GET /libs/wcm/core/content/pageinfo.json HTTP/1.1] com.day.cq.wcm.core.impl.DefaultPageStatusProvider Can't access workflow models; maybe missing or due to access restrictions.
    • 22.09.2017 15:45:39.306 *INFO* [ [1506087939181] GET /libs/wcm/core/content/pageinfo.json HTTP/1.1] com.adobe.granite.workflow.core.collection.ResourceCollectionManagerImpl Can't access workflow packages; maybe missing or due to access restrictions.
    • 22.09.2017 15:45:44.931 *WARN* [ [1506087944603] POST /bin/wcmcommand HTTP/1.1] com.day.cq.wcm.core.impl.commands.DeletePageCommand Selected items are referenced by 1 pages.  Use "force" to delete anyway.

I'm at a loss trying to troubleshoot why this is not working for certain users. Any help or advice is appreciated and welcome. Thank you!