Allow instance owners to provide custom name, Include server version in LbpEnvVer

This is the first step towards instance customization. Just a name for now ;)
This commit is contained in:
jvyden 2022-06-01 00:34:38 -04:00
parent 238894c2be
commit ee541dbfae
No known key found for this signature in database
GPG key ID: 18BCF2BE0262B278
8 changed files with 25 additions and 14 deletions

View file

@ -130,7 +130,7 @@ public class LoginController : ControllerBase
new LoginResult
{
AuthTicket = "MM_AUTH=" + token.UserToken,
LbpEnvVer = ServerStatics.ServerName,
ServerBrand = VersionHelper.FullVersion,
}.Serialize()
);
}

View file

@ -8,7 +8,7 @@
Layout = "Layouts/BaseLayout";
Model.ShowTitleInPage = false;
}
<h1>Welcome to <b>Project Lighthouse</b>!</h1>
<h1>Welcome to <b>@ServerConfiguration.Instance.Customization.ServerName</b>!</h1>
@if (Model.User != null)
{

View file

@ -2,6 +2,7 @@ using System.Net;
using System.Net.Http;
using System.Threading.Tasks;
using LBPUnion.ProjectLighthouse.Configuration;
using LBPUnion.ProjectLighthouse.Helpers;
using LBPUnion.ProjectLighthouse.PlayerData;
using LBPUnion.ProjectLighthouse.Tests;
using Xunit;
@ -25,7 +26,7 @@ public class AuthenticationTests : LighthouseServerTest
Assert.True(response.IsSuccessStatusCode);
string responseContent = await response.Content.ReadAsStringAsync();
Assert.Contains("MM_AUTH=", responseContent);
Assert.Contains(ServerStatics.ServerName, responseContent);
Assert.Contains(VersionHelper.FullVersion, responseContent);
}
[DatabaseFact]
@ -35,10 +36,10 @@ public class AuthenticationTests : LighthouseServerTest
Assert.NotNull(loginResult);
Assert.NotNull(loginResult.AuthTicket);
Assert.NotNull(loginResult.LbpEnvVer);
Assert.NotNull(loginResult.ServerBrand);
Assert.Contains("MM_AUTH=", loginResult.AuthTicket);
Assert.Equal(ServerStatics.ServerName, loginResult.LbpEnvVer);
Assert.Equal(VersionHelper.FullVersion, loginResult.ServerBrand);
}
[DatabaseFact]

View file

@ -0,0 +1,6 @@
namespace LBPUnion.ProjectLighthouse.Configuration.ConfigurationCategories;
public class CustomizationConfiguration
{
public string ServerName { get; set; } = "Project Lighthouse";
}

View file

@ -163,6 +163,9 @@ public class ServerConfiguration
#endregion
// TODO: Find a way to properly remove config options
// YamlDotNet hates that and it's fucking annoying.
// This seriously sucks. /rant
[Obsolete("Obsolete. Use the Website/GameApi/Api listen URLS instead.")]
public string ListenUrl { get; set; } = "http://localhost:10060";
@ -193,5 +196,5 @@ public class ServerConfiguration
public MailConfiguration Mail { get; set; } = new();
public UserGeneratedContentLimitConfiguration UserGeneratedContentLimits { get; set; } = new();
public WebsiteConfiguration WebsiteConfiguration { get; set; } = new();
public CustomizationConfiguration Customization { get; set; } = new();
}

View file

@ -8,8 +8,6 @@ namespace LBPUnion.ProjectLighthouse.Configuration;
public static class ServerStatics
{
public const string ServerName = "ProjectLighthouse";
public const int PageSize = 20;
public static bool DbConnected {

View file

@ -31,8 +31,8 @@ public static class VersionHelper
{
Logger.Error
(
"Project Lighthouse was built incorrectly. Please make sure git is available when building. " +
"Because of this, you will not be notified of updates.",
"Project Lighthouse was built incorrectly. Please make sure git is available when building.",
// "Because of this, you will not be notified of updates.",
LogArea.Startup
);
CommitHash = "invalid";
@ -54,14 +54,14 @@ public static class VersionHelper
public static string CommitHash { get; set; }
public static string Branch { get; set; }
public static string FullVersion => $"{ServerStatics.ServerName} {Branch}@{CommitHash} {Build}";
public static string FullVersion => $"{ServerConfiguration.Instance.Customization.ServerName} {Branch}@{CommitHash} {Build}";
public static bool IsDirty => CommitHash.EndsWith("-dirty") || CommitsOutOfDate != 1 || CommitHash == "invalid" || Branch == "invalid";
public static int CommitsOutOfDate { get; set; }
public static bool CanCheckForUpdates { get; set; }
public static string[] Remotes { get; set; }
public const string Build =
#if DEBUG
#if DEBUG
"Debug";
#elif RELEASE
"Release";

View file

@ -15,9 +15,12 @@ public class LoginResult
public string AuthTicket { get; set; }
[XmlElement("lbpEnvVer")]
public string LbpEnvVer { get; set; }
public string ServerBrand { get; set; }
public string Serialize()
=> LbpSerializer.Elements
(new KeyValuePair<string, object>("authTicket", this.AuthTicket), new KeyValuePair<string, object>("lbpEnvVer", this.LbpEnvVer));
(
new KeyValuePair<string, object>("authTicket", this.AuthTicket),
new KeyValuePair<string, object>("lbpEnvVer", this.ServerBrand)
);
}