From 999fac7dac126ea97588b62aa5d250c6c7cee48d Mon Sep 17 00:00:00 2001 From: TekH Date: Wed, 23 Sep 2026 15:32:36 +0200 Subject: [PATCH] feat: add SenderId() extension to ClaimsPrincipal Extracts the authenticated sender's integer ID from the 'sub' / NameIdentifier claim. Mirrors the existing ReceiverId() helper and is required by GetDocumentOfSenderAsync. --- .../Extensions/ReceiverClaimExtensions.cs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/EnvelopeGenerator.Server/EnvelopeGenerator.Server/Extensions/ReceiverClaimExtensions.cs b/EnvelopeGenerator.Server/EnvelopeGenerator.Server/Extensions/ReceiverClaimExtensions.cs index e4b29df9..13720e38 100644 --- a/EnvelopeGenerator.Server/EnvelopeGenerator.Server/Extensions/ReceiverClaimExtensions.cs +++ b/EnvelopeGenerator.Server/EnvelopeGenerator.Server/Extensions/ReceiverClaimExtensions.cs @@ -96,6 +96,21 @@ public static class ReceiverClaimExtensions throw new InvalidOperationException($"Claim '{EnvelopeClaimNames.ReceiverId}' is not a valid integer."); } + /// + /// Gets the authenticated sender identifier from the 'sub' claim. + /// + /// + /// + /// + public static int SenderId(this ClaimsPrincipal user) + { + var senderIdStr = user.GetRequiredClaimValue(JwtRegisteredClaimNames.Sub, ClaimTypes.NameIdentifier); + if (int.TryParse(senderIdStr, out var senderId)) + return senderId; + else + throw new InvalidOperationException($"Claim '{JwtRegisteredClaimNames.Sub}' is not a valid integer."); + } + /// /// ///