Skip to content

Commit f679d82

Browse files
Fix the registration workflow
1 parent cfab0f4 commit f679d82

2 files changed

Lines changed: 7 additions & 5 deletions

File tree

src/IdServer/SimpleIdServer.IdServer/Helpers/WorkflowHelper.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public string GetNextAmr<TViewModel>(JsonObject input, WorkflowViewModel result,
4444

4545
public string GetNextAmr<TViewModel>(JsonObject input, WorkflowRecord workflow, List<FormRecord> records, string activeLink)
4646
{
47-
var targetFormRecordId = GetTargetFormRecordId(input, workflow, activeLink);
47+
var targetFormRecordId = GetTargetFormRecordId(input, workflow, activeLink).FormRecordCorrelationId;
4848
if (targetFormRecordId == FormBuilder.Constants.EmptyStep.CorrelationId) return FormBuilder.Constants.EmptyStep.Name;
4949
var formRecord = records.Single(rec => rec.CorrelationId == targetFormRecordId);
5050
return formRecord.Name;
@@ -73,7 +73,7 @@ public string GetNextAmr(JsonObject input, WorkflowRecord workflow, List<FormRec
7373
public string GetTargetFormRecordId<TViewModel>(JsonObject input, WorkflowRecord workflow, TViewModel viewModel)
7474
where TViewModel : ISidStepViewModel
7575
{
76-
return GetTargetFormRecordId(input, workflow, viewModel.CurrentLink);
76+
return GetTargetFormRecordId(input, workflow, viewModel.CurrentLink).Id;
7777
}
7878

7979
public static List<string> ExtractAmrs(WorkflowRecord workflow, List<FormRecord> forms)
@@ -91,9 +91,9 @@ public static List<string> ExtractAmrs(WorkflowRecord workflow, List<FormRecord>
9191
public static bool IsLastStep(string stepName)
9292
=> stepName == FormBuilder.Constants.EmptyStep.Name;
9393

94-
private string GetTargetFormRecordId(JsonObject input, WorkflowRecord workflow, string activeLink)
94+
private WorkflowStep GetTargetFormRecordId(JsonObject input, WorkflowRecord workflow, string activeLink)
9595
{
9696
var stepId = _workflowLinkHelper.ResolveNextStep(input, workflow, activeLink);
97-
return workflow.Steps.Single(s => s.Id == stepId).FormRecordCorrelationId;
97+
return workflow.Steps.Single(s => s.Id == stepId);
9898
}
9999
}

src/IdServer/SimpleIdServer.IdServer/UI/RegistrationController.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,9 @@ public async Task<IActionResult> Index([FromRoute] string prefix, string? workfl
6161
var cookieName = _options.GetRegistrationCookieName(_realmStore.Realm);
6262
var allForms = await _formStore.GetLatestPublishedVersionByCategory(prefix, FormCategories.Registration, CancellationToken.None);
6363
var registrationProgressId = Guid.NewGuid().ToString();
64-
var workflowSteps = workflow.Steps.Select(s => allForms.Single(f => f.CorrelationId == s.FormRecordCorrelationId)).Where(s => s.ActAsStep);
64+
var workflowSteps = workflow.Steps
65+
.Where(s => s.FormRecordCorrelationId != FormBuilder.Constants.EmptyStep.CorrelationId)
66+
.Select(s => allForms.Single(f => f.CorrelationId == s.FormRecordCorrelationId));
6567
var amr = workflowSteps.First().Name;
6668
var registrationProgress = new UserRegistrationProgress
6769
{

0 commit comments

Comments
 (0)