This commit is contained in:
@@ -168,10 +168,10 @@ namespace AyaNova.Api.Controllers
|
||||
{
|
||||
//Valid password, user is effectively authorized at this point
|
||||
|
||||
//check if server closed
|
||||
//if it is it means we got here only because there is no license
|
||||
//and only *the* SuperUser account can login now
|
||||
if (serverState.IsClosed)
|
||||
//check if server available to SuperUser account only (closed or migrate mode)
|
||||
//if it is it means we got here either because there is no license
|
||||
//and only *the* SuperUser account can login now or we're in migrate mode
|
||||
if (serverState.IsClosed || serverState.IsMigrateMode)
|
||||
{
|
||||
//if not SuperUser account then boot closed
|
||||
//SuperUser account is always ID 1
|
||||
|
||||
@@ -43,7 +43,7 @@ namespace AyaNova.Api.Controllers
|
||||
/// <summary>
|
||||
/// Get server state
|
||||
/// </summary>
|
||||
/// <returns>Current server state (Closed, OpsOnly, Open)</returns>
|
||||
/// <returns>Current server state (Closed, MigrateMode, OpsOnly, Open)</returns>
|
||||
[HttpGet]
|
||||
public ActionResult Get()
|
||||
{
|
||||
@@ -79,8 +79,29 @@ namespace AyaNova.Api.Controllers
|
||||
if (desiredState == ApiServerState.ServerState.Closed)
|
||||
return BadRequest(new ApiErrorResponse(ApiErrorCode.VALIDATION_INVALID_VALUE, null, "Invalid state - must be one of \"OpsOnly\", \"MigrateMode\" or \"Open\""));
|
||||
|
||||
var TransId = UserTranslationIdFromContext.Id(HttpContext.Items);
|
||||
|
||||
log.LogInformation($"ServerState change request by user {UserNameFromContext.Name(HttpContext.Items)} from current state of \"{serverState.GetState().ToString()}\" to \"{desiredState.ToString()}-{state.Reason}\"");
|
||||
|
||||
//Add a message if user didn't enter one so other users know why they can't login
|
||||
if (string.IsNullOrWhiteSpace(state.Reason))
|
||||
{
|
||||
switch (desiredState)
|
||||
{
|
||||
case ApiServerState.ServerState.Open:
|
||||
break;
|
||||
case ApiServerState.ServerState.MigrateMode:
|
||||
state.Reason += await TranslationBiz.GetTranslationStaticAsync("ServerStateLoginRestricted", TransId, ct) + " " + await TranslationBiz.GetTranslationStaticAsync("ServerStateMigrateMode", TransId, ct);
|
||||
break;
|
||||
case ApiServerState.ServerState.OpsOnly:
|
||||
state.Reason += await TranslationBiz.GetTranslationStaticAsync("ServerStateLoginRestricted", TransId, ct) + " " + await TranslationBiz.GetTranslationStaticAsync("ServerStateOps", TransId, ct);
|
||||
break;
|
||||
case ApiServerState.ServerState.Closed:
|
||||
state.Reason += await TranslationBiz.GetTranslationStaticAsync("ServerStateLoginRestricted", TransId, ct) + " " + await TranslationBiz.GetTranslationStaticAsync("ErrorAPI2000", TransId, ct);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
serverState.SetState(desiredState, state.Reason);
|
||||
|
||||
//Log
|
||||
|
||||
Reference in New Issue
Block a user