tgstation-server 6.19.0
The /tg/station 13 server suite
Loading...
Searching...
No Matches
Users.cs
Go to the documentation of this file.
1using System;
2using System.Linq;
3using System.Threading;
4using System.Threading.Tasks;
5
6using HotChocolate;
7using HotChocolate.Data;
8using HotChocolate.Types;
9using HotChocolate.Types.Relay;
10
11using Microsoft.Extensions.Options;
12
16
17#pragma warning disable CA1724 // conflict with GitLabApiClient.Models.Users. They can fuck off
18
20{
24 public sealed class Users
25 {
30 public UserGroups Groups() => new();
31
37 public bool OidcStrictMode(
38 [Service] IOptions<SecurityConfiguration> securityConfigurationOptions)
39 {
40 ArgumentNullException.ThrowIfNull(securityConfigurationOptions);
41 return securityConfigurationOptions.Value.OidcStrictMode;
42 }
43
50 public ValueTask<User> Current(
51 [Service] IGraphQLAuthorityInvoker<IUserAuthority> userAuthority,
52 CancellationToken cancellationToken)
53 {
54 ArgumentNullException.ThrowIfNull(userAuthority);
55 return userAuthority.InvokeTransformable<Models.User, User, UserGraphQLTransformer>(authority => authority.Read(cancellationToken));
56 }
57
65 [Error(typeof(ErrorMessageException))]
66 public ValueTask<User?> ById(
67 [ID(nameof(User))] long id,
68 [Service] IGraphQLAuthorityInvoker<IUserAuthority> userAuthority,
69 CancellationToken cancellationToken)
70 => User.GetUser(id, userAuthority, cancellationToken);
71
77 [UsePaging]
78 [UseFiltering]
79 [UseSorting]
80 public async ValueTask<IQueryable<User>> QueryableUsers(
81 [Service] IGraphQLAuthorityInvoker<IUserAuthority> userAuthority)
82 {
83 ArgumentNullException.ThrowIfNull(userAuthority);
84 var dtoQueryable = await userAuthority.InvokeTransformableQueryable<Models.User, User, UserGraphQLTransformer>(
85 authority => authority.Queryable(false));
86 return dtoQueryable;
87 }
88 }
89}
Exception representing ErrorMessageResponses.
Wrapper for accessing UserGroups.
Definition UserGroups.cs:22
A user registered in the server.
Definition User.cs:22
static ValueTask< User?> GetUser(long id, [Service] IGraphQLAuthorityInvoker< IUserAuthority > userAuthority, CancellationToken cancellationToken)
Node resolver for Users.
Definition User.cs:62
Wrapper for accessing Users.
Definition Users.cs:25
UserGroups Groups()
Gets the swarm's UserGroups.
bool OidcStrictMode([Service] IOptions< SecurityConfiguration > securityConfigurationOptions)
If only OIDC logins and registration is allowed.
Definition Users.cs:37
ValueTask< User > Current([Service] IGraphQLAuthorityInvoker< IUserAuthority > userAuthority, CancellationToken cancellationToken)
Gets the current User.
Definition Users.cs:50
async ValueTask< IQueryable< User > > QueryableUsers([Service] IGraphQLAuthorityInvoker< IUserAuthority > userAuthority)
Queries all registered Users.
Definition Users.cs:80
ValueTask< User?> ById([ID(nameof(User))] long id, [Service] IGraphQLAuthorityInvoker< IUserAuthority > userAuthority, CancellationToken cancellationToken)
Gets a User by Entity.Id.
ITransformer<TInput, TOutput> for GraphQL.Types.Users.