public async Task <IActionResult> Edit(Guid id) { var user = await adminService.GetUserByObjectIdAsync(id); List <CertificateModel> certs = null; if (user.KeyVaultUrl != null) { certs = await keyVaultAdminService.GetCertificatesInVaultAsync(user.KeyVaultUrl); } if (certs == null) { certs = new List <CertificateModel>(); } var model = new UpdateCreateSignServiceUserModel { ObjectId = user.ObjectId.Value, Username = user.UserPrincipalName, Configured = user.SignServiceConfigured ?? false, CertificateName = user.KeyVaultCertificateName, DisplayName = user.DisplayName, KeyVaultUrl = user.KeyVaultUrl, TimestampUrl = user.TimestampUrl, // Only show enabled ones here CertificatesModels = certs.Where(cm => cm.Attributes?.Enabled == true).ToList() }; return(View(model)); }
public async Task <IActionResult> Delete(Guid id) { var user = await adminService.GetUserByObjectIdAsync(id); var model = new UpdateCreateSignServiceUserModel { ObjectId = user.ObjectId.Value, Username = user.UserPrincipalName, Configured = user.SignServiceConfigured ?? false, CertificateName = user.KeyVaultCertificateName, DisplayName = user.DisplayName, KeyVaultUrl = user.KeyVaultUrl, TimestampUrl = user.TimestampUrl }; return(View(model)); }
public async Task <IActionResult> Edit(Guid id, UpdateCreateSignServiceUserModel model) { if (model.Configured) { if (model.KeyVaultUrl == null) { ModelState.TryAddModelError(nameof(model.KeyVaultUrl), $"{nameof(model.KeyVaultUrl)} is required when Configured"); } if (string.IsNullOrWhiteSpace(model.TimestampUrl)) { ModelState.TryAddModelError(nameof(model.TimestampUrl), $"{nameof(model.TimestampUrl)} is required when Configured"); } if (string.IsNullOrWhiteSpace(model.CertificateName)) { ModelState.TryAddModelError(nameof(model.CertificateName), $"{nameof(model.CertificateName)} is required when Configured"); } } if (!ModelState.IsValid) { return(View(model)); } try { await adminService.UpdateUserAsync(id, model.DisplayName?.Trim(), model.Configured, model.KeyVaultUrl, model.CertificateName?.Trim(), model.TimestampUrl?.Trim()); return(RedirectToAction(nameof(Details), new { id })); } catch (Exception e) { ModelState.TryAddModelError("", e.Message); return(View(model)); } }
public async Task <IActionResult> Delete(Guid id, UpdateCreateSignServiceUserModel model) { var user = await adminService.GetUserByObjectIdAsync(id); // Soft delete, just clear out the sign service attributes try { await adminService.UpdateUserAsync(id, user.DisplayName, null, null, null, null); } catch (Exception) { } return(RedirectToAction(nameof(Index))); }