Public/Security/Get-JIMRoleMember.ps1
|
# Copyright (c) Tetron Limited. All rights reserved. # Licensed under the Tetron Commercial License. See LICENSE file in the project root. function Get-JIMRoleMember { <# .SYNOPSIS Gets the members of a security Role in JIM. .DESCRIPTION Retrieves Metaverse Objects that are statically assigned to a security Role. Members are returned sorted by display name. .PARAMETER RoleId The unique identifier (integer) of the Role whose members to retrieve. .PARAMETER InputObject Role object from the pipeline (e.g., from Get-JIMRole). .OUTPUTS PSCustomObject representing metaverse object(s) that are members of the Role. .EXAMPLE Get-JIMRoleMember -RoleId 1 Lists members of the role with ID 1. .EXAMPLE Get-JIMRole -Name "Administrator" | Get-JIMRoleMember Lists members of the Administrator role using the pipeline. .EXAMPLE Get-JIMRole | Get-JIMRoleMember Lists members of all roles. .LINK Get-JIMRole Add-JIMRoleMember Remove-JIMRoleMember #> [CmdletBinding(DefaultParameterSetName = 'ById')] [OutputType([PSCustomObject])] param( [Parameter(Mandatory, ParameterSetName = 'ById', ValueFromPipelineByPropertyName)] [Alias('Id')] [int]$RoleId, [Parameter(Mandatory, ParameterSetName = 'ByInputObject', ValueFromPipeline)] [PSCustomObject]$InputObject ) process { # Check connection first if (-not $script:JIMConnection) { Write-Error "Not connected to JIM. Use Connect-JIM first." return } $id = if ($InputObject) { $InputObject.id } else { $RoleId } Write-Verbose "Getting members of role: $id" try { $response = Invoke-JIMApi -Endpoint "/api/v1/security/roles/$id/members" foreach ($member in $response) { $member } } catch { Write-Error "Failed to get role members: $_" } } } |