Feature: Import identifiers are shown, searchable and can be looked up 

Description 

The profile, the contract, the e-mail address, the phone number, the physical address, the location, the organisational unit and the function type carry a column import_identifier . The frontend user synchronisation writes it, but no backend form showed it, the backend search did not find it and import code had to query it by hand.

  • The backend form of a record that carries an identifier shows it read-only, in a new palette Import of the tab Extended. The contract form gains that tab for it.
  • On a profile, Disable profile sync moved into the same palette. It sat next to the visibility switch on the tab Access before.
  • The search of the list module and the backend search find a profile, location, organisational unit or function type by its identifier, on TYPO3 v13 and v14. The backend search never lists contracts and contact records. Page TSconfig shows them in the list module, whose search then finds them.
  • \FGTCLB\AcademicPersons\Import\ImportedRecordFinder::findUid() returns the uid of the live record of a table that carries an identifier, hidden and time-restricted records included. It is public API.
  • The identifier is written as {source}:{key}, for instance fe_users:12 or hr:4711.

See Finding what an import wrote.

Impact 

Editors see the field on every record the synchronisation or an import wrote, and no field on the records they created themselves. The column was passthrough before and is a read-only input now. The DataHandler does not read readOnly , so the synchronisation and imports write it as before. A project that hides the field adds a TCEFORM setting:

EXT:my_sitepackage/Configuration/page.tsconfig
TCEFORM.tx_academicpersons_domain_model_contract.import_identifier.disabled = 1
Copied!

A search for a number in the list module also compares it with the text of every searchable field, so searching a folder of person records for a uid such as 12 now also lists the records whose identifier contains 12.

The address table gains the index on the column that the other tables have: run the database analyzer once after updating.

On SQLite the core search cannot match _: it escapes the character for LIKE without naming an escape character, and SQLite has no default one. A search for fe_users:12 finds nothing there, one for users:12 finds the record.

Affected Installations 

Every installation of this extension. The new field shows only on records with an identifier.