Altinn / Altinn/app-lib-dotnet

Null-pointer ved prefill når bruker logger inn som selvregistrert bruker.

Open
#1,119 2 comments 1 reaction 0 assignees View on GitHub
kind/bug status/triage
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.