Add user group limit to config

This commit is contained in:
Jordan Brown
2020-12-29 20:14:18 -05:00
parent c48f277279
commit 989b39d723
6 changed files with 16 additions and 1 deletions
@@ -1,4 +1,4 @@
using System.Collections.Generic;
using System.Collections.Generic;
namespace Tgstation.Server.Api.Models.Internal
{
@@ -22,6 +22,11 @@ namespace Tgstation.Server.Api.Models.Internal
/// </summary>
public uint UserLimit { get; set; }
/// <summary>
/// The maximum number of <see cref="Models.UserGroup"/>s allowed.
/// </summary>
public uint UserGroupLimit { get; set; }
/// <summary>
/// Limits the locations instances may be created or attached from.
/// </summary>
@@ -43,6 +43,11 @@ namespace Tgstation.Server.Host.Configuration
/// </summary>
const uint DefaultUserLimit = 100;
/// <summary>
/// The default value for <see cref="ServerInformation.UserGroupLimit"/>.
/// </summary>
const uint DefaultUserGroupLimit = 25;
/// <summary>
/// The default value for <see cref="ByondTopicTimeout"/>
/// </summary>
@@ -102,6 +107,7 @@ namespace Tgstation.Server.Host.Configuration
MinimumPasswordLength = DefaultMinimumPasswordLength;
InstanceLimit = DefaultInstanceLimit;
UserLimit = DefaultUserLimit;
UserGroupLimit = DefaultUserGroupLimit;
}
/// <summary>
@@ -191,6 +191,7 @@ namespace Tgstation.Server.Host.Controllers
MinimumPasswordLength = generalConfiguration.MinimumPasswordLength,
InstanceLimit = generalConfiguration.InstanceLimit,
UserLimit = generalConfiguration.UserLimit,
UserGroupLimit = generalConfiguration.UserGroupLimit,
ValidInstancePaths = generalConfiguration.ValidInstancePaths,
WindowsHost = platformIdentifier.IsWindows,
SwarmServers = swarmService.GetSwarmServers(),
@@ -8,6 +8,7 @@
"ApiPort": 5000,
"UseBasicWatchdog": false,
"UserLimit": 100,
"UserGroupLimit": 25,
"InstanceLimit": 10,
"ValidInstancePaths": null,
"HostApiDocumentation": false
+1
View File
@@ -162,6 +162,7 @@ namespace Tgstation.Server.Tests
Assert.AreEqual(10U, serverInfo.MinimumPasswordLength);
Assert.AreEqual(11U, serverInfo.InstanceLimit);
Assert.AreEqual(150U, serverInfo.UserLimit);
Assert.AreEqual(47U, serverInfo.UserGroupLimit);
Assert.AreEqual(RuntimeInformation.IsOSPlatform(OSPlatform.Windows), serverInfo.WindowsHost);
//check that modifying the token even slightly fucks up the auth
@@ -80,6 +80,7 @@ namespace Tgstation.Server.Tests
String.Format(CultureInfo.InvariantCulture, "General:MinimumPasswordLength={0}", 10),
String.Format(CultureInfo.InvariantCulture, "General:InstanceLimit={0}", 11),
String.Format(CultureInfo.InvariantCulture, "General:UserLimit={0}", 150),
String.Format(CultureInfo.InvariantCulture, "General:UserGroupLimit={0}", 47),
String.Format(CultureInfo.InvariantCulture, "General:HostApiDocumentation={0}", DumpOpenApiSpecpath),
String.Format(CultureInfo.InvariantCulture, "FileLogging:Directory={0}", Path.Combine(Directory, "Logs")),
String.Format(CultureInfo.InvariantCulture, "FileLogging:LogLevel={0}", "Trace"),