PAS user/group events missing from Plone - input appreciated!

Hi all,

I've been attempting to figure out what event to subscribe to in order to keep external, linked, users in sync when Plone user fields are updated. I eventually found the IPropertiesUpdatedEvent in Products.PluggableAuthService but it doesn't appear to be triggered anywhere.

Products/PluggableAuthService/interfaces/events.py

class IPropertiesUpdatedEvent(IPASEvent):
    """A principals properties have been updated.
    """
    properties = Attribute('List of modified property ids')

Does anyone have any suggestions where this event should be implemented? Or if there's another equivalent event that I could use but have missed.

I originally created an event for this on github last year but wanted to repost it here to

Hello everyone,
It would be nice to have a wider discussion about user / group events that seem to be missing from Plone.

I've gone ahead and implemented a basic patch to notify the PropertiesUpdated event:

It seems to me that there are a number of use cases for user / group events that it would be useful to have the option of subscribing to, but - as far as I can tell - do not currently notify an event. These include:

It seems that there are a number of moving parts - events imported from Products.PluggableAuthService, changes going on with Products.PlonePAS (Python 3 & some talk of merging PAS functionality into Products.CMFCore)

It seem I'd appreciate some input / guidance as to the best way to proceed.

  • Is there any reason these events don't / shouldn't exist?
  • Do the missing events need to be added to Products.PluggableAuthService, to be consistent with the events that already exist?
  • Is this just a matter of branch / pull request or does it need more discussion, or a PLIP?
  • Presumably this is potentially useful to other people and isn't something that we should just resolve for our use case locally?
  • Are there any other events that should be implemented at the same time that I've missed off the list above?