I have a node as a panel. And my user (id != 1) has the permission "Change layouts with the Panels In-Place Editor" and my user see's the "Change layout" in the IPE. But he always gets an "Access denied" answer.

Reason:
get_panels_storage_op_for_ajax() in panels_renderer_ipe.class.php returns the op "change layout".
panels_node_panels_storage_access() calls node_access()
and node_access() returns always FALSE because only the op 'view', 'update', 'delete', 'create' are allowed.

So the given permission is never checked and the node op does not exist.

So what is the right way to check?

CommentFileSizeAuthor
#2 panels-2895336-1.patch627 bytestoschl
Support from Acquia helps fund testing for Drupal Acquia logo

Comments

toschl created an issue. See original summary.

toschl’s picture

FileSize
627 bytes

The patch checks for the operation "change layout" and the permission "change layouts in place editing".
So probably not the best solution as it is not placed in the panels_ipe module. But it works for me.