diff --git a/server/AyaNova/Controllers/LicenseController.cs b/server/AyaNova/Controllers/LicenseController.cs index 0167374f..8544a446 100644 --- a/server/AyaNova/Controllers/LicenseController.cs +++ b/server/AyaNova/Controllers/LicenseController.cs @@ -55,8 +55,11 @@ namespace AyaNova.Api.Controllers public ActionResult GetLicenseInfo() { if (serverState.IsClosed) - return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason)); - + { + //Exception for SuperUser account to handle licensing issues + if (UserIdFromContext.Id(HttpContext.Items) != 1) + return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason)); + } if (!Authorized.HasReadFullRole(HttpContext.Items, AyaType.License)) { return StatusCode(403, new ApiNotAuthorizedResponse()); @@ -95,9 +98,12 @@ namespace AyaNova.Api.Controllers [HttpPost] public async Task FetchLicense() { - if (serverState.IsClosed) - return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason)); - + if (serverState.IsClosed) + { + //Exception for SuperUser account to handle licensing issues + if (UserIdFromContext.Id(HttpContext.Items) != 1) + return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason)); + } if (!Authorized.HasCreateRole(HttpContext.Items, AyaType.License)) { return StatusCode(403, new ApiNotAuthorizedResponse()); @@ -152,8 +158,11 @@ namespace AyaNova.Api.Controllers public async Task RequestTrial([FromBody] RequestTrial trialRequest) { if (serverState.IsClosed) - return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason)); - + { + //Exception for SuperUser account to handle licensing issues + if (UserIdFromContext.Id(HttpContext.Items) != 1) + return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason)); + } if (!Authorized.HasCreateRole(HttpContext.Items, AyaType.License)) { return StatusCode(403, new ApiNotAuthorizedResponse()); @@ -201,9 +210,12 @@ namespace AyaNova.Api.Controllers [HttpPost("permanently-erase-all-data")] public async Task RemoveAllData([FromBody] string acceptCode) { - if (serverState.IsClosed) - return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason)); - + if (serverState.IsClosed) + { + //Exception for SuperUser account to handle licensing issues + if (UserIdFromContext.Id(HttpContext.Items) != 1) + return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason)); + } if (!ModelState.IsValid) return BadRequest(new ApiErrorResponse(ModelState)); diff --git a/server/AyaNova/util/License.cs b/server/AyaNova/util/License.cs index c47d74f8..f8fdb896 100644 --- a/server/AyaNova/util/License.cs +++ b/server/AyaNova/util/License.cs @@ -157,7 +157,8 @@ namespace AyaNova.Core { get { - + //TEST + // return LicenseStatus.ExpiredPurchased; if (string.IsNullOrWhiteSpace(RegisteredTo) || RegisteredTo == UNLICENSED_TOKEN) return LicenseStatus.NONE; if (RegisteredTo == REVOKED_TOKEN) @@ -455,7 +456,7 @@ namespace AyaNova.Core { return "ok"; } - else return res.Content.ToString(); + else return $"E1020 - Error requesting trial license key: \"{res.ReasonPhrase}\""; } catch (Exception ex) {