From 8ef09f9fed656bacc3a25e790796e9f144a5fac8 Mon Sep 17 00:00:00 2001 From: Jake Mannens Date: Fri, 8 May 2026 01:28:31 +1000 Subject: v0.14a --- SetUser.cs | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 SetUser.cs (limited to 'SetUser.cs') diff --git a/SetUser.cs b/SetUser.cs new file mode 100644 index 0000000..93af581 --- /dev/null +++ b/SetUser.cs @@ -0,0 +1,38 @@ +using HyperBooru.ApiClient; +using System.Management.Automation; +using System.Security; + +namespace HyperBooru.PowerShell; + +[Alias("shbu")] +[Cmdlet(VerbsCommon.Set, "HyperBooruUser")] +public class SetUserCmdlet : PSCmdlet { + [Parameter(Position = 0, Mandatory = true)] + public HBSession Session { get; set; } + + [Parameter(Position = 1, Mandatory = true)] + public Guid UserId { get; set; } + + [Parameter(Position = 2)] + public string? Username { get; set; } + + [Parameter(Position = 3)] + public SecureString? Password { get; set; } + + protected override void ProcessRecord() { + if(Username is null && Password is null) { + ThrowTerminatingError(new( + new ArgumentException("Both Username and Password cannot be null"), + "ArgumentException", + ErrorCategory.InvalidArgument, + null)); + return; + } + + var user = Session.User.UpdateUserAsync(UserId, Username, Password?.ToInsecureString()) + .GetAwaiter() + .GetResult(); + + WriteObject(user); + } +} -- cgit v1.3