Public/Set-DifyMemberRole.ps1
function Set-DifyMemberRole { [CmdletBinding()] param( [Parameter(ValueFromPipeline = $true)] [PSCustomObject[]] $Member = @(), [String] $Role = "normal" ) begin { $ValidRoles = @("normal", "editor", "admin") if ($Role -notin $ValidRoles) { throw "Invalid value for Role. Must be one of: $($ValidRoles -join ', ')" } } process { foreach ($MemberObject in $Member) { $Members += $MemberObject } } end { if (-not $Members) { throw "Member is required" } foreach ($Member in $Members) { $Endpoint = "$($env:PSDIFY_URL)/console/api/workspaces/current/members/$($Member.Id)/update-role" $Method = "PUT" $Body = @{ "role" = $Role } | ConvertTo-Json try { $Response = Invoke-DifyRestMethod -Uri $Endpoint -Method $Method -Body $Body -Token $env:PSDIFY_CONSOLE_TOKEN } catch { throw "Failed to set member role: $_" } if (-not $Response.result -or $Response.result -ne "success") { throw "Failed to set member role" } } $Members = Get-DifyMember -Id ($Members.Id) return $Members } } |