For developers 

This chapter documents the programmatic surface of the profile editing: the events it dispatches around every write of the editor.

Which classes of this extension are public API, and what that promises, is stated for all academic extensions on the extension points page of academic_base. The three controllers of the editor are final and @internal , so the events are the way to take part in a write.

Events 

Event Dispatched What a listener can change Owner
BeforeProfileEditingWriteEvent once for every write the editor accepted, right before anything of it is stored refuse the write with a reason the person is shown, or replace the values it stores, which are validated again this extension
AfterProfileUpdateEvent once after a write was stored, for a profile edited in the default language of the site react to the change. The profile, its site and the origin are read only academic_persons

The profile editing does not dispatch ModifyPluginViewEvent of academic_base, which the plugins of the other academic extensions dispatch. Its views are rendered once and then driven by the editor script, so what a project needs to change about a write is offered by the write event instead.