< Summary - Kestrun — Combined Coverage

Information
Class: Public.ClaimPolicy.Add-KrUserClaim
Assembly: Kestrun.PowerShell.Public
File(s): /home/runner/work/Kestrun/Kestrun/src/PowerShell/Kestrun/Public/ClaimPolicy/Add-KrUserClaim.ps1
Tag: Kestrun/Kestrun@eeafbe813231ed23417e7b339e170e307b2c86f9
Line coverage
0%
Covered lines: 0
Uncovered lines: 6
Coverable lines: 6
Total lines: 72
Line coverage: 0%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Coverage history

Coverage history 0 25 50 75 100 09/12/2025 - 13:32:05 Line coverage: 0% (0/6) Total lines: 72 Tag: Kestrun/Kestrun@63ea5841fe73fd164406accba17a956e8c08357f

Metrics

File(s)

/home/runner/work/Kestrun/Kestrun/src/PowerShell/Kestrun/Public/ClaimPolicy/Add-KrUserClaim.ps1

#LineLine coverage
 1<#
 2.SYNOPSIS
 3    Adds a claim to the current user.
 4    This function allows you to add a new claim to the current user's identity.
 5    The claim can be of any type, and you must specify the claim type and value.
 6    The function will return the updated claims collection.
 7.DESCRIPTION
 8    This function is designed to be used in the context of Kestrun for managing user claims.
 9    It supports both string-based claim types and user identity claims.
 10    Claims can be added to the user's identity using this function.
 11    This function is part of the Kestrun.Claims module and is used to manage user claims.
 12    It maps to ClaimCollection.Add method.
 13.PARAMETER Claims
 14    The claims to add to the current user's identity. This can be a single claim or an array of claims.
 15    If this parameter is specified, the ClaimType and Value parameters are ignored.
 16    If this parameter is not specified, you must provide the ClaimType and Value parameters.
 17.PARAMETER ClaimType
 18    The type of claim to add to the user's identity. This is required if the Claims parameter is not specified.
 19    It can be a string representing the claim type or a Kestrun.Claims.UserIdentityClaim enum value.
 20.PARAMETER UserClaimType
 21    The user identity claim type to use when adding the claim. This is required if the Claims parameter is not specified
 22    It must be a valid Kestrun.Claims.UserIdentityClaim enum value.
 23.PARAMETER Value
 24    The value of the claim to add to the user's identity. This is required if the Claims parameter is not specified.
 25    It can be a string or a Kestrun.Claims.UserIdentityClaim enum value.
 26    If the Claims parameter is specified, this parameter is ignored.
 27
 28.EXAMPLE
 29    Adds a claim to the current user's identity.
 30    This example demonstrates how to add a claim using the ClaimType and Value parameters.
 31    Add-KrUserClaim -ClaimType "customClaimType" -Value "customClaimValue"
 32.EXAMPLE
 33    Adds a claim to the current user's identity.
 34    This example demonstrates how to add a claim using the UserClaimType and Value parameters.
 35    Add-KrUserClaim -UserClaimType "Email" -Value "user@example.com"
 36.NOTES
 37    This function is part of the Kestrun.Claims module and is used to manage user claims.
 38    It maps to ClaimCollection.Add method.
 39#>
 40function Add-KrUserClaim {
 41    [KestrunRuntimeApi('Route')]
 42    [CmdletBinding(DefaultParameterSetName = 'ClaimType')]
 43    [OutputType([System.Security.Claims.Claim[]])]
 44    [OutputType([System.Array])]
 45    param(
 46        [Parameter(ValueFromPipeline)]
 47        [System.Security.Claims.Claim[]] $Claims,
 48        [Parameter(Mandatory = $true, ParameterSetName = 'ClaimType')]
 49        [string] $ClaimType,
 50        [Parameter(Mandatory = $true, ParameterSetName = 'UserClaimType')]
 51        [Kestrun.Claims.UserIdentityClaim] $UserClaimType,
 52        [Parameter(Mandatory = $true)]
 53        [string] $Value
 54    )
 55
 056    begin { $bag = [System.Collections.Generic.List[System.Security.Claims.Claim]]::new() }
 57
 058    process { if ($null -ne $Claims) { $bag.AddRange($Claims) } }
 59
 60    end {
 61        # resolve ClaimType if the user chose the enum parameter-set
 062        if ($UserClaimType) {
 063            $ClaimType = [Kestrun.Claims.KestrunClaimExtensions]::ToClaimUri($UserClaimType)
 64        }
 65
 066        $bag.Add([System.Security.Claims.Claim]::new($ClaimType, $Value))
 67
 68        # OUTPUT: one strongly-typed array, not enumerated
 069        , ([System.Security.Claims.Claim[]] $bag.ToArray())
 70    }
 71}
 72

Methods/Properties

Add-KrUserClaim()