/**
  * Updates the given user in the respective repository and potentially executes further actions depending on what
  * has been changed.
  *
  * Note: changes to the user's account will not be committed for persistence. Please use addRoleToAccount(), removeRoleFromAccount(),
  * setRolesForAccount() and setUserPassword() for changing account properties.
  *
  * @param User $user The modified user
  * @return void
  * @api
  */
 public function updateUser(User $user)
 {
     $this->partyRepository->update($user);
     $this->emitUserUpdated($user);
 }