diff --git a/src/Tgstation.Server.Host/Controllers/ApiController.cs b/src/Tgstation.Server.Host/Controllers/ApiController.cs
index ea8c4c3209..bad2e6c10f 100644
--- a/src/Tgstation.Server.Host/Controllers/ApiController.cs
+++ b/src/Tgstation.Server.Host/Controllers/ApiController.cs
@@ -267,7 +267,7 @@ namespace Tgstation.Server.Host.Controllers
///
/// The of model being generated and returned.
/// A resulting in a resulting in the generated .
- /// A to transform the s after being queried.
+ /// Optional to transform the s after being queried.
/// The requested page from the query.
/// The requested page size from the query.
/// The for the operation.
@@ -297,7 +297,7 @@ namespace Tgstation.Server.Host.Controllers
/// A resulting in the for the operation.
protected ValueTask Paginated(
Func>> queryGenerator,
- Func resultTransformer,
+ Func? resultTransformer,
int? pageQuery,
int? pageSizeQuery,
CancellationToken cancellationToken)
diff --git a/src/Tgstation.Server.Host/Controllers/DreamMakerController.cs b/src/Tgstation.Server.Host/Controllers/DreamMakerController.cs
index 9401f646d9..d1ef45fe48 100644
--- a/src/Tgstation.Server.Host/Controllers/DreamMakerController.cs
+++ b/src/Tgstation.Server.Host/Controllers/DreamMakerController.cs
@@ -21,8 +21,6 @@ using Tgstation.Server.Host.Models;
using Tgstation.Server.Host.Security;
using Tgstation.Server.Host.Utils;
-#nullable disable
-
namespace Tgstation.Server.Host.Controllers
{
///
@@ -87,6 +85,10 @@ namespace Tgstation.Server.Host.Controllers
.AsQueryable()
.Where(x => x.InstanceId == Instance.Id)
.FirstOrDefaultAsync(cancellationToken);
+
+ if (dreamMakerSettings == null)
+ return this.Gone();
+
return Json(dreamMakerSettings.ToApi());
}
@@ -189,9 +191,10 @@ namespace Tgstation.Server.Host.Controllers
if (hostModel == null)
return this.Gone();
+ var dreamMakerRights = InstancePermissionSet.DreamMakerRights!.Value;
if (model.ProjectName != null)
{
- if (!AuthenticationContext.InstancePermissionSet.DreamMakerRights.Value.HasFlag(DreamMakerRights.SetDme))
+ if (!dreamMakerRights.HasFlag(DreamMakerRights.SetDme))
return Forbid();
if (model.ProjectName.Length == 0)
hostModel.ProjectName = null;
@@ -201,10 +204,10 @@ namespace Tgstation.Server.Host.Controllers
if (model.ApiValidationPort.HasValue)
{
- if (!AuthenticationContext.InstancePermissionSet.DreamMakerRights.Value.HasFlag(DreamMakerRights.SetApiValidationPort))
+ if (!dreamMakerRights.HasFlag(DreamMakerRights.SetApiValidationPort))
return Forbid();
- if (model.ApiValidationPort.Value != hostModel.ApiValidationPort.Value)
+ if (model.ApiValidationPort.Value != hostModel.ApiValidationPort!.Value)
{
var verifiedPort = await portAllocator
.GetAvailablePort(
@@ -220,28 +223,28 @@ namespace Tgstation.Server.Host.Controllers
if (model.ApiValidationSecurityLevel.HasValue)
{
- if (!AuthenticationContext.InstancePermissionSet.DreamMakerRights.Value.HasFlag(DreamMakerRights.SetSecurityLevel))
+ if (!dreamMakerRights.HasFlag(DreamMakerRights.SetSecurityLevel))
return Forbid();
hostModel.ApiValidationSecurityLevel = model.ApiValidationSecurityLevel;
}
if (model.RequireDMApiValidation.HasValue)
{
- if (!AuthenticationContext.InstancePermissionSet.DreamMakerRights.Value.HasFlag(DreamMakerRights.SetApiValidationRequirement))
+ if (!dreamMakerRights.HasFlag(DreamMakerRights.SetApiValidationRequirement))
return Forbid();
hostModel.RequireDMApiValidation = model.RequireDMApiValidation;
}
if (model.Timeout.HasValue)
{
- if (!AuthenticationContext.InstancePermissionSet.DreamMakerRights.Value.HasFlag(DreamMakerRights.SetTimeout))
+ if (!dreamMakerRights.HasFlag(DreamMakerRights.SetTimeout))
return Forbid();
hostModel.Timeout = model.Timeout;
}
await DatabaseContext.Save(cancellationToken);
- if ((AuthenticationContext.GetRight(RightsType.DreamMaker) & (ulong)DreamMakerRights.Read) == 0)
+ if (!dreamMakerRights.HasFlag(DreamMakerRights.Read))
return NoContent();
return await Read(cancellationToken);
@@ -254,17 +257,17 @@ namespace Tgstation.Server.Host.Controllers
IQueryable BaseCompileJobsQuery() => DatabaseContext
.CompileJobs
.AsQueryable()
- .Include(x => x.Job)
+ .Include(x => x.Job!)
.ThenInclude(x => x.StartedBy)
- .Include(x => x.Job)
+ .Include(x => x.Job!)
.ThenInclude(x => x.Instance)
- .Include(x => x.RevisionInformation)
- .ThenInclude(x => x.PrimaryTestMerge)
+ .Include(x => x.RevisionInformation!)
+ .ThenInclude(x => x.PrimaryTestMerge!)
.ThenInclude(x => x.MergedBy)
.Include(x => x.RevisionInformation)
- .ThenInclude(x => x.ActiveTestMerges)
- .ThenInclude(x => x.TestMerge)
- .ThenInclude(x => x.MergedBy)
- .Where(x => x.Job.Instance.Id == Instance.Id);
+ .ThenInclude(x => x.ActiveTestMerges!)
+ .ThenInclude(x => x!.TestMerge)
+ .ThenInclude(x => x!.MergedBy)
+ .Where(x => x.Job.Instance!.Id == Instance.Id);
}
}