Hi!
The only way I've found to do this per page type, is to monkey patch the PagePermissionTester class.
That way you would be overriding each action that you would want to control.
However, I can not recommend doing this unless you really have to, it's messy and error prone.
Having said that, here is a simple example removing the "Move" option from all ContentPage pages:
from wagtail.wagtailcore.models import UserPagePermissionsProxy, PagePermissionTester
def can_move(self):
# my model is called ContentPage, so I look for the name "content page"
return False
return self.original_can_move()
PagePermissionTester.original_can_move = PagePermissionTester.can_move
PagePermissionTester.can_move = can_move
- Sævar