---
title: "Feature: Visibility (hidden) support for contact record models"
manual: "Academic Profiles"
version: "main"
source: "Changelog/2.4/Feature-VisibilitySupportForContactRecordModels.rst"
rendered: "2026-10-02T20:47:49+00:00"
---

# Feature: Visibility (`hidden`) support for contact record models {#feature-1782285578}

## Description {#description}

The contact record models gained access to the `hidden` enable field
that already exists on their database tables:

-   `\FGTCLB\AcademicPersons\Domain\Model\Address`
-   `\FGTCLB\AcademicPersons\Domain\Model\Email`
-   `\FGTCLB\AcademicPersons\Domain\Model\PhoneNumber`

Each of them now provides:

-   `getHidden(): bool`
-   `setHidden(bool $hidden): self`

To work with hidden records the matching repositories
(`AddressRepository`, `EmailRepository`,
`PhoneNumberRepository`) provide two new methods that ignore the
`disabled` enable field:

-   `findByContractIncludingHidden(int $contractUid): QueryResultInterface`
-   `findByUidIncludingHidden(int $uid): ?<Model>`

These are used by `EXT:academic_persons_edit` (optional) to let profile
owners show and hide their contact records in the frontend, while the
public profile display keeps excluding hidden records via the default
Extbase enable field handling.

## Impact {#impact}

The profile synchronization keeps matching and updating existing
contact records even when they are hidden, and no longer resets their
visibility. Integrators can use the new model accessors and repository
methods to handle contact record visibility programmatically.

## Affected Installations {#affected-installations}

All installations using the `EXT:academic_persons` extension starting
with version 2.4.

## Migration {#migration}

No migration is required, except you extended and replaced the extbase
model in projects - then you need to adopt the newly added properties
and setter/getter methods with the same signatures.
