The TopLogic user administration is full of special code "PersonManager", nonsensical abstractions "UserInterface" and absurd modeling "Admin flag in the password table", so that neither the UIs for the user administration can be implemented/extended with modern in-app tooling, nor functions such as admin authorization for LDAP users can be implemented(#27623).
Improvement
- LDAP accesses can now also be labeled as administrator.
- Removal of special code, new user management with in-app GUIs, model refactoring.
Data migration
- The PERSON table now explicitly stores the admin status of the account (new admin column).
Code migration
Requires a renovation of the user administration:
- com.top_logic.base.user.UserInterface with the entire administration layer com.top_logic.base.user.* omitted. An access is represented by an object of the type com.top_logic .knowledge.wrap.person.Person. The contact information is represented by an object of type com.top_logic. contact.business.PersonContact.
- The application must declare tl-layout-formeditor as a Maven dependency (dependencies on tl-contact, tl-model-search, tl-element become superfluous)
- If the GlobalDialogs.xml is overwritten, instead of {{{
<layout-reference resource="com.top_logic.contact/userSettings/editCurrentPersonDialog.layout.xml"/> }}} the dialogs {{{ <layout-reference resource="admin/security/accounts/userSettings/dialog.layout.xml"/> <layout-reference resource="admin/security/accounts/defaultFor/dialog.layout.xml"/> }}}
- The role profiles must be adapted for the components {{{
Person (Global dialog for displaying a person) Administration > Permissions > User administration (Alg. administration of accesses/persons) }}}