public async Task <IActionResult> EditPolicy(CancellationToken cancellationToken, Guid id) { var policy = await _service.FetchPolicy(id, cancellationToken); if (policy == null) { _log.LogError($"policy not found with id {id}, so redirecting to index"); return(RedirectToAction("Index")); } var model = new PolicyEditViewModel(); model.Id = policy.Id; model.TenantId = policy.TenantId; model.AllowedRolesCsv = string.Join(",", policy.AllowedRoles); model.AuthenticationSchemesCsv = string.Join(",", policy.AuthenticationSchemes); model.Name = policy.Name; model.RequireAuthenticatedUser = policy.RequireAuthenticatedUser; model.RequiredUserName = policy.RequiredUserName; model.Notes = policy.Notes; foreach (var claim in policy.RequiredClaims) { var claimModel = new ClaimRequirementViewModel(policy.Id); claimModel.ClaimName = claim.ClaimName; claimModel.AllowedValuesCsv = string.Join(",", claim.AllowedValues); model.RequiredClaims.Add(claimModel); } return(View(model)); }
public async Task <IActionResult> EditClaimRequirement(ClaimRequirementViewModel model) { if (ModelState.IsValid) { var result = await _service.UpdateClaimRequirement(model.PolicyId, model.ClaimName, model.AllowedValuesCsv); if (result.Succeeded) { var successFormat = _sr["The claim requirement {0} was successfully updated."]; this.AlertSuccess(string.Format(successFormat, model.ClaimName), true); } else { this.AlertDanger(_sr[result.Message], true); } } return(RedirectToAction("EditPolicy", new { id = model.PolicyId })); }