Functions/Public/Get-GocdUser.ps1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
function Get-GocdUser {
    [CmdletBinding()]
    param(
        [Parameter()]
        [ValidateNotNullOrEmpty()]
        [string]
        $UserName = '*'
        ,
        [Parameter()]
        [ValidateNotNullOrEmpty()]
        [string]
        $Login = '*'
        ,
        [Parameter()]
        [switch]
        $Raw
    )

    $Response = Invoke-GocdApi -Path "/api/users" -Accept 'application/vnd.go.cd.v1+json'
    $ContentBytes = $Response | Select-Object -ExpandProperty Content
    $Users = ConvertFrom-ByteArray -Data $ContentBytes -Encoding ASCII | ConvertFrom-Json
    $Users = $Users._embedded.users | Where-Object { $_.display_name -like $UserName -and $_.login_name -like $Login }

    if ($Raw) {
        $Users
        return
    }

    foreach ($User in $Users) {
        [pscustomobject]@{
            Name = $User.display_name
            Login = $User.login_name
            Email = $User.email
            Enabled = $User.enabled
        }
    }
}