PermissionServicePolicies are NOT part of the Alfresco Public API and thus may change without warning between Alfresco releases. Also, these policies do NOT work like other policies, because their implementation has been hacked in a quick & dirty manner. You can only bind against these permissions using the node type - aspects of a node will be ignored during registered policy lookup. The OnInheritPermissionsEnabled and OnInheritPermissionsDisabled are the worst of all, as their lookup will only check for bindings against the system base type, and completely ignores any special type the node may have.
As it stands, these policies require more or less a global binding and custom type/aspect check when your behaviour implementation is being called to determine if your logic actually needs to run.
I was looking for something like those policies that you showed me, Angel. It wouldn't be the first time you saved my day.
Unfortunately, in this case my client uses an older version of Alfresco, which does not have these behaviors. This may be another reason for them to upgrade to a newer version. Anyway we have implemented one workaround to solve this particular problem.
Axel, one last thing, do you know if the PermissionServicePolicies are planned to become part of the Alfresco Public API in next releases? I think they could be useful for more people.
I do not expect to ever see the PermissionServicePolicies as part of the public API. a) Alfresco would only include this if they have a use case of their own that warrants this, b) Alfresco is hoping to move people away from using in-process behaviours for event handling, and use queue-based out-of-process handling - adding more policy interfaces seems counter-productive for that goal.