From cc5ddc26e31a9b5f406289fc613ef8a77397fda1 Mon Sep 17 00:00:00 2001 From: Jordan Dominion Date: Wed, 18 Sep 2024 22:49:11 -0400 Subject: [PATCH] Allow null permission sets and enabled status on user/group creation --- .../GraphQL/Mutations/UserGroupMutations.cs | 4 +-- .../GraphQL/Mutations/UserMutations.cs | 36 ++++++++++--------- 2 files changed, 21 insertions(+), 19 deletions(-) diff --git a/src/Tgstation.Server.Host/GraphQL/Mutations/UserGroupMutations.cs b/src/Tgstation.Server.Host/GraphQL/Mutations/UserGroupMutations.cs index ff98da6f37..09af618a05 100644 --- a/src/Tgstation.Server.Host/GraphQL/Mutations/UserGroupMutations.cs +++ b/src/Tgstation.Server.Host/GraphQL/Mutations/UserGroupMutations.cs @@ -20,7 +20,7 @@ namespace Tgstation.Server.Host.GraphQL.Mutations { public ValueTask CreateUserGroup( string name, - PermissionSetInput permissionSet, + PermissionSetInput? permissionSet, [Service] IUserGroupAuthority userGroupAuthority, CancellationToken cancellationToken) { @@ -30,7 +30,7 @@ namespace Tgstation.Server.Host.GraphQL.Mutations public ValueTask UpdateUserGroup( [ID(nameof(UserGroup))] long id, string? newName, - PermissionSetInput newPermissionSet, + PermissionSetInput? newPermissionSet, [Service] IUserGroupAuthority userGroupAuthority, CancellationToken cancellationToken) { diff --git a/src/Tgstation.Server.Host/GraphQL/Mutations/UserMutations.cs b/src/Tgstation.Server.Host/GraphQL/Mutations/UserMutations.cs index 6861380169..91cf35a3d4 100644 --- a/src/Tgstation.Server.Host/GraphQL/Mutations/UserMutations.cs +++ b/src/Tgstation.Server.Host/GraphQL/Mutations/UserMutations.cs @@ -40,15 +40,14 @@ namespace Tgstation.Server.Host.GraphQL.Mutations public ValueTask CreateUserByPasswordAndPermissionSet( string name, string password, - bool enabled, + bool? enabled, IEnumerable? oAuthConnections, - PermissionSetInput permissionSet, + PermissionSetInput? permissionSet, [Service] IGraphQLAuthorityInvoker userAuthority, CancellationToken cancellationToken) { ArgumentException.ThrowIfNullOrWhiteSpace(name); ArgumentException.ThrowIfNullOrEmpty(password); - ArgumentNullException.ThrowIfNull(permissionSet); ArgumentNullException.ThrowIfNull(userAuthority); return userAuthority.InvokeTransformable( @@ -58,11 +57,13 @@ namespace Tgstation.Server.Host.GraphQL.Mutations Name = name, Password = password, Enabled = enabled, - PermissionSet = new Api.Models.PermissionSet - { - AdministrationRights = permissionSet.AdministrationRights, - InstanceManagerRights = permissionSet.InstanceManagerRights, - }, + PermissionSet = permissionSet != null + ? new Api.Models.PermissionSet + { + AdministrationRights = permissionSet.AdministrationRights, + InstanceManagerRights = permissionSet.InstanceManagerRights, + } + : null, OAuthConnections = oAuthConnections ?.Select(oAuthConnection => new Api.Models.OAuthConnection { @@ -88,14 +89,13 @@ namespace Tgstation.Server.Host.GraphQL.Mutations [Error(typeof(ErrorMessageException))] public ValueTask CreateUserBySystemIDAndPermissionSet( string systemIdentifier, - bool enabled, + bool? enabled, IEnumerable? oAuthConnections, PermissionSetInput permissionSet, [Service] IGraphQLAuthorityInvoker userAuthority, CancellationToken cancellationToken) { ArgumentException.ThrowIfNullOrWhiteSpace(systemIdentifier); - ArgumentNullException.ThrowIfNull(permissionSet); ArgumentNullException.ThrowIfNull(userAuthority); return userAuthority.InvokeTransformable( @@ -104,11 +104,13 @@ namespace Tgstation.Server.Host.GraphQL.Mutations { SystemIdentifier = systemIdentifier, Enabled = enabled, - PermissionSet = new Api.Models.PermissionSet - { - AdministrationRights = permissionSet.AdministrationRights, - InstanceManagerRights = permissionSet.InstanceManagerRights, - }, + PermissionSet = permissionSet != null + ? new Api.Models.PermissionSet + { + AdministrationRights = permissionSet.AdministrationRights, + InstanceManagerRights = permissionSet.InstanceManagerRights, + } + : null, OAuthConnections = oAuthConnections ?.Select(oAuthConnection => new Api.Models.OAuthConnection { @@ -136,7 +138,7 @@ namespace Tgstation.Server.Host.GraphQL.Mutations public ValueTask CreateUserByPasswordAndGroup( string name, string password, - bool enabled, + bool? enabled, IEnumerable? oAuthConnections, [ID(nameof(UserGroup))] long groupId, [Service] IGraphQLAuthorityInvoker userAuthority, @@ -182,7 +184,7 @@ namespace Tgstation.Server.Host.GraphQL.Mutations [Error(typeof(ErrorMessageException))] public ValueTask CreateUserBySystemIDAndGroup( string systemIdentifier, - bool enabled, + bool? enabled, IEnumerable? oAuthConnections, [ID(nameof(UserGroup))] long groupId, [Service] IGraphQLAuthorityInvoker userAuthority,