Altinn / Altinn/app-lib-dotnet
Null-pointer ved prefill når bruker logger inn som selvregistrert bruker.
- Dominant language
- C#
- Stars
- 8
- Forks
- 27
- Avg merge
- 1h 21m
- Merged PRs (30d)
- 7
Description
### Description of the bug
Dersom man har følgende prefill,
```json
{
"$schema": "https://altinncdn.no/schemas/json/prefill/prefill.schema.v1.json",
"allowOverwrite": true,
"DSF": {
"FirstName": "avgiver.fornavn",
"MiddleName": "avgiver.mellomnavn",
"LastName": "avgiver.etternavn",
"SSN" : "avgiver.personnummer"
},
"UserProfile": {
"Party.SSN": "innloggetBruker.personnummer",
"Party.Person.FirstName": "innloggetBruker.fornavn",
"Party.Person.LastName": "innloggetBruker.etternavn",
"Party.Person.MiddleName": "innloggetBruker.mellomnavn"
}
}
```
og brukeren logger inn som en selvregistrert bruker, så oppstår det en null-pointer i metoden AssignValueToDataModel. Det står faktisk en TODO om at dette kan skje
```C#
// recursively assign values
// TODO: handle Nullable (nullable value types), propertyValue may be null here
// due to Activator.CreateInstance above. Right now there is an exception
// but we could handle this better
AssignValueToDataModel(keys, value, propertyValue, index + 1, continueOnError);
```
Resultatet av dette er at applikasjonen kræsjer ved instansiering av skjema. Dersom man derimot logger inn med en TestId med personnummer eller d-nummer, så går dette fint.
Dette gjør at vi ikke har mulighet til å bruke prefill når vi også tillater selvregistrert bruker, som er et problem for en del av våre skjemaer. Man ser et eksempel på dette i følgende repo:
https://altinn.studio/repos/mat/mattilsynet-veterinaer
### Steps To Reproduce
.
### Additional Information
_No response_
Contributor guide
Research direction
Start at AssignValueToDataModel and read the TODO describing nullable value types and propertyValue becoming null after Activator.CreateInstance. Reproduce the prefill scenario with a self-registered user, then verify schema instantiation no longer crashes while the existing TestId case still works. The mattilsynet-veterinaer repository provides an example application.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 62/100