---
title: "Important: Extended ProfileDemand, findByUids() and demand handling"
manual: "Academic Profiles"
version: "main"
source: "Changelog/2.4/Important-ExtendedProfileDemandAndRepositorySignatures.rst"
rendered: "2026-10-02T20:47:49+00:00"
---

# Important: Extended `ProfileDemand`, `findByUids()` and demand handling {#important-ace-250-academic-persons}

## Description {#description}

To support the new "Show hidden records" plugin option, the person demand
and repository layer gained the following additions. All of them are
non-breaking (new optional parameter / new transport flag with defaults):

-   `\FGTCLB\AcademicPersons\Domain\Model\Dto\ProfileDemand` has a new
    `showHiddenRecords` transport flag with
    `getShowHiddenRecords(): bool` and
    `setShowHiddenRecords(bool): ProfileDemand` accessors
    (default `false`). It mirrors the existing transport-only
    properties (`storagePages`, `fallbackForNonTranslated`) and is
    likewise announced as a future addition to
    `\FGTCLB\AcademicPersons\Domain\Model\Dto\DemandInterface` (the
    interface carries the commented signatures and the repository guards the
    call with `method_exists()`).
-   `\FGTCLB\AcademicPersons\Domain\Repository\ProfileRepository::findByDemand()`
    honours `ProfileDemand::getShowHiddenRecords()` via
    `applyDemandSettings()`.
-   `\FGTCLB\AcademicPersons\Domain\Repository\ProfileRepository::findByUids()`
    and
    `\FGTCLB\AcademicPersons\Domain\Repository\ContractRepository::findByUids()`
    gained an appended optional `bool $showHidden = false` parameter.
-   `\FGTCLB\AcademicPersons\Domain\Repository\ProfileRepository::findByUidIncludingHidden(int $uid): ?Profile`
    is a new method that resolves a single profile by uid including hidden
    (disabled) records. It is used by the detail view.
-   `\FGTCLB\AcademicPersons\Controller\ProfileController` reads
    `$this->settings['showHiddenRecords']` in
    `adoptSettings()`, `cardAction()`,
    `selectedProfilesAction()` and `selectedContractsAction()` and
    threads it into the repositories. The new
    `initializeDetailAction()` re-resolves the `profile` argument via
    `findByUidIncludingHidden()` when the option is enabled, because the
    default Extbase argument mapping respects enable fields.

When the flag/parameter is set, the query ignores only the `disabled`
(`hidden`) enable field via the Extbase query settings; the `deleted`,
`starttime`/`endtime` and `fe_group` restrictions stay in effect.

## Impact {#impact}

The change is non-breaking: the new demand flag defaults to `false`,
the new `findByUids()` parameter has a default value, and no existing
method signature changed in an incompatible way. Projects that build a
`ProfileDemand` or call `findByUids()` themselves can opt in via
`setShowHiddenRecords(true)` respectively the new parameter.

## Affected Installations {#affected-installations}

Only installations that extend or replace the `ProfileDemand` DTO,
the `ProfileRepository`, the `ContractRepository` or the
`ProfileController` need to take the additions into account. All
other installations are unaffected.
