Skip to main content

Version 9.1.202.2 (Support Release - 7 January 2026)

System Access

Update email confirmation logic for user import and update to allow a user without an email to log in (#142626)

Problem

  • A user without an email address cannot log in because the email has not been confirmed

 

Solution

  • In ImportUsersCommandHandler, email is now considered confirmed if the user has no email address
  • In UpdateUserCommandHandler, email is always marked as confirmed
  • These changes ensure consistent handling of email confirmation status during user import and update operations

 


Imports

Remove duplicate self-service settings in validation when importing users (#142626)

Problem

  • Cannot import users when ESS settings are duplicated in the DB 

 

Solution

  • This pull request addresses the issue of duplicate entries in the `SelfServiceSetup` table and improves the handling of required fields in the user details validation logic. The most important changes are as follows:
    • Removes duplicate rows in ESS settings, keeping only the most recently edited entry for each unique combination of `FieldSection`, `FieldId`, and `RulesetId`.
    • Updated the construction of the `requiredFields` dictionary in `UserDetailsValidationService.cs` to ensure unique combinations of `FieldSection` and `FieldId` are included, preventing issues caused by duplicate settings.

 


Performance Management

Resolved KPI not being able to delete (#143253)

Problem

  • Primary contract bool value not being sent through, which caused an invalid object 

 

Solution

  • Add a change to pass through the primary contract's bool value

 


People Management

Re-add transfer person JS logic (#143186)

Problem

  • The transfer button was removed. 

 

Solution

  • Re-add it

 

Fix materialisation when a people group has not materialised before | Fix regression bug on people termination (#136729)

Problem

  • When materialising people groups and the list of people groups to materialise is empty, it only materialises for people groups that have already been materialised in the past. 

 

Solution

  • When the 'forceSync' parameter is true, refresh for ALL people groups on the ruleset (if an empty people group was received).
  • Still, only materialise people groups already materialised when 'forceSync' is false. 
  • PLUS Other issue picked up while testing:
    • Termination broken due to a regression bug.
    • A new field was added to a model used in a query in the job profiler, but the query was not updated, which results in the query breaking, meaning ultimately, people cannot be terminated anymore. 
    • Updated the model to make use of auto properties instead of a constructor, which makes it easier for Dapper to map the query result to the model.