tgstation-server 6.19.0
The /tg/station 13 server suite
Loading...
Searching...
No Matches
UsersRepository.cs
Go to the documentation of this file.
1using System;
2using System.Linq;
3using System.Threading;
4using System.Threading.Tasks;
5
6using GreenDonut.Data;
7
8using HotChocolate;
9using HotChocolate.Data;
10using HotChocolate.Types;
11using HotChocolate.Types.Relay;
12
13using Microsoft.Extensions.Options;
14
18
20{
24 public sealed class UsersRepository
25 {
31 public bool OidcStrictMode(
32 [Service] IOptionsSnapshot<SecurityConfiguration> securityConfigurationOptions)
33 {
34 ArgumentNullException.ThrowIfNull(securityConfigurationOptions);
35 return securityConfigurationOptions.Value.OidcStrictMode;
36 }
37
44 public ValueTask<User> Current(
45 [Service] IGraphQLAuthorityInvoker<IUserAuthority> userAuthority,
46 CancellationToken cancellationToken)
47 {
48 ArgumentNullException.ThrowIfNull(userAuthority);
49 return userAuthority.InvokeTransformable<Models.User, User, UserGraphQLTransformer>(authority => authority.Read(cancellationToken));
50 }
51
60 [Error(typeof(ErrorMessageException))]
61 public ValueTask<User?> ById(
62 [ID(nameof(User))] long id,
63 [Service] IUsersDataLoader usersDataLoader,
64 QueryContext<User>? queryContext,
65 CancellationToken cancellationToken)
66 => User.GetUser(id, usersDataLoader, queryContext, cancellationToken);
67
73 [UsePaging]
74 [UseFiltering]
75 [UseSorting]
76 public async ValueTask<IQueryable<User>> QueryableUsers(
77 [Service] IGraphQLAuthorityInvoker<IUserAuthority> userAuthority)
78 {
79 ArgumentNullException.ThrowIfNull(userAuthority);
80 var dtoQueryable = await userAuthority.InvokeTransformableQueryable<Models.User, User, UserGraphQLTransformer>(
81 authority => authority.Queryable(false));
82 return dtoQueryable;
83 }
84 }
85}
Exception representing ErrorMessageResponses.
A user registered in the server.
Definition User.cs:27
static ValueTask< User?> GetUser(long id, [Service] IUsersDataLoader usersDataLoader, QueryContext< User >? queryContext, CancellationToken cancellationToken)
Node resolver for Users.
Definition User.cs:102
bool OidcStrictMode([Service] IOptionsSnapshot< SecurityConfiguration > securityConfigurationOptions)
If only OIDC logins and registration is allowed.
ValueTask< User > Current([Service] IGraphQLAuthorityInvoker< IUserAuthority > userAuthority, CancellationToken cancellationToken)
Gets the current User.
ValueTask< User?> ById([ID(nameof(User))] long id, [Service] IUsersDataLoader usersDataLoader, QueryContext< User >? queryContext, CancellationToken cancellationToken)
Gets a User by Entity.Id.
async ValueTask< IQueryable< User > > QueryableUsers([Service] IGraphQLAuthorityInvoker< IUserAuthority > userAuthority)
Queries all registered Users.
ITransformer<TInput, TOutput> for GraphQL.Types.Users.