Ignore:
Timestamp:
May 17, 2023, 11:05:59 PM (19 months ago)
Author:
alloc
Message:

Added permission management APIs

Location:
binary-improvements2/WebServer/src/WebAPI/APIs
Files:
8 added
8 edited

Legend:

Unmodified
Added
Removed
  • binary-improvements2/WebServer/src/WebAPI/APIs/Command.cs

    r426 r434  
    9191
    9292                protected override void HandleRestPost (RequestContext _context, IDictionary<string, object> _jsonInput, byte[] _jsonInputData) {
    93                         if (!TryGetJsonField (_jsonInput, "command", out string commandString)) {
    94                                 SendErrorResult (_context, HttpStatusCode.BadRequest, _jsonInputData, "NO_COMMAND");
     93                        if (!JsonCommons.TryGetJsonField (_jsonInput, "command", out string commandString)) {
     94                                SendEmptyResponse (_context, HttpStatusCode.BadRequest, _jsonInputData, "NO_COMMAND");
    9595                                return;
    9696                        }
     
    9898                        WebCommandResult.ResultType responseType = WebCommandResult.ResultType.Full;
    9999
    100                         if (TryGetJsonField (_jsonInput, "format", out string formatString)) {
     100                        if (JsonCommons.TryGetJsonField (_jsonInput, "format", out string formatString)) {
    101101                                if (formatString.EqualsCaseInsensitive ("raw")) {
    102102                                        responseType = WebCommandResult.ResultType.Raw;
     
    115115
    116116                        if (command == null) {
    117                                 SendErrorResult (_context, HttpStatusCode.NotFound, _jsonInputData, "UNKNOWN_COMMAND");
     117                                SendEmptyResponse (_context, HttpStatusCode.NotFound, _jsonInputData, "UNKNOWN_COMMAND");
    118118                                return;
    119119                        }
     
    122122
    123123                        if (_context.PermissionLevel > commandPermissionLevel) {
    124                                 SendErrorResult (_context, HttpStatusCode.Forbidden, _jsonInputData, "NO_PERMISSION");
     124                                SendEmptyResponse (_context, HttpStatusCode.Forbidden, _jsonInputData, "NO_PERMISSION");
    125125                                return;
    126126                        }
  • binary-improvements2/WebServer/src/WebAPI/APIs/GameData/Item.cs

    r433 r434  
    33using Webserver.Permissions;
    44
    5 namespace Webserver.WebAPI.APIs {
     5namespace Webserver.WebAPI.APIs.GameData {
    66        [UsedImplicitly]
    77        internal class Item : AbsRestApi {
  • binary-improvements2/WebServer/src/WebAPI/APIs/GameData/Mods.cs

    r433 r434  
    33using Webserver.Permissions;
    44
    5 namespace Webserver.WebAPI.APIs {
     5namespace Webserver.WebAPI.APIs.GameData {
    66        [UsedImplicitly]
    77        public class Mods : AbsRestApi {
     
    1212                        writer.WriteBeginArray ();
    1313
    14                         for (int i = 0; i < _parent.webMods.Count; i++) {
    15                                 WebMod webMod = _parent.webMods [i];
     14                        for (int i = 0; i < _parent.WebMods.Count; i++) {
     15                                WebMod webMod = _parent.WebMods [i];
    1616
    1717                                if (i > 0) {
     
    6262                        _writer.WriteValueSeparator ();
    6363                        _writer.WritePropertyName ("displayName");
    64                         JsonCommons.WriteStringOrNull (ref _writer, _webMod.ParentMod.DisplayName);
     64                        _writer.WriteString (_webMod.ParentMod.DisplayName);
    6565
    6666                        _writer.WriteValueSeparator ();
    6767                        _writer.WritePropertyName ("description");
    68                         JsonCommons.WriteStringOrNull (ref _writer, _webMod.ParentMod.Description);
     68                        _writer.WriteString (_webMod.ParentMod.Description);
    6969
    7070                        _writer.WriteValueSeparator ();
    7171                        _writer.WritePropertyName ("author");
    72                         JsonCommons.WriteStringOrNull (ref _writer, _webMod.ParentMod.Author);
     72                        _writer.WriteString (_webMod.ParentMod.Author);
    7373
    7474                        _writer.WriteValueSeparator ();
    7575                        _writer.WritePropertyName ("version");
    76                         JsonCommons.WriteStringOrNull (ref _writer, _webMod.ParentMod.VersionString);
     76                        _writer.WriteString (_webMod.ParentMod.VersionString);
    7777
    7878                        _writer.WriteValueSeparator ();
    7979                        _writer.WritePropertyName ("website");
    80                         JsonCommons.WriteStringOrNull (ref _writer, _webMod.ParentMod.Website);
     80                        _writer.WriteString (_webMod.ParentMod.Website);
    8181                }
    8282
  • binary-improvements2/WebServer/src/WebAPI/APIs/Log.cs

    r408 r434  
    5555
    5656                                writer.WriteRaw (jsonMsgKey);
    57                                 writer.WriteString (logEntry.message);
     57                                writer.WriteString (logEntry.Message);
    5858
    5959                                writer.WriteRaw (jsonTypeKey);
    60                                 writer.WriteString (logEntry.type.ToStringCached ());
     60                                writer.WriteString (logEntry.Type.ToStringCached ());
    6161
    6262                                writer.WriteRaw (jsonTraceKey);
    63                                 writer.WriteString (logEntry.trace);
     63                                writer.WriteString (logEntry.Trace);
    6464
    6565                                writer.WriteRaw (jsonIsotimeKey);
    66                                 writer.WriteString (logEntry.isoTime);
     66                                writer.WriteString (logEntry.IsoTime);
    6767
    6868                                writer.WriteRaw (jsonUptimeKey);
    69                                 writer.WriteString (logEntry.uptime.ToString ());
     69                                writer.WriteString (logEntry.Uptime.ToString ());
    7070
    7171                                writer.WriteEndObject ();
  • binary-improvements2/WebServer/src/WebAPI/APIs/Permissions/RegisterUser.cs

    r433 r434  
    99using Webserver.UrlHandlers;
    1010
    11 namespace Webserver.WebAPI.APIs {
     11namespace Webserver.WebAPI.APIs.Permissions {
    1212        [UsedImplicitly]
    1313        public class RegisterUser : AbsRestApi {
     
    2727
    2828                        if (string.IsNullOrEmpty (token)) {
    29                                 SendErrorResult (_context, HttpStatusCode.BadRequest, null, "NO_TOKEN");
     29                                SendEmptyResponse (_context, HttpStatusCode.BadRequest, null, "NO_TOKEN");
    3030                                return;
    3131                        }
    3232
    3333                        if (!UserRegistrationTokens.TryValidate (token, out UserRegistrationTokens.RegistrationData regData)) {
    34                                 SendErrorResult (_context, HttpStatusCode.NotFound, null, "INVALID_OR_EXPIRED_TOKEN");
     34                                SendEmptyResponse (_context, HttpStatusCode.NotFound, null, "INVALID_OR_EXPIRED_TOKEN");
    3535                                return;
    3636                        }
     
    5050
    5151                protected override void HandleRestPost (RequestContext _context, IDictionary<string, object> _jsonInput, byte[] _jsonInputData) {
    52                         if (!TryGetJsonField (_jsonInput, "token", out string token)) {
    53                                 SendErrorResult (_context, HttpStatusCode.BadRequest, _jsonInputData, "MISSING_TOKEN");
     52                        if (!JsonCommons.TryGetJsonField (_jsonInput, "token", out string token)) {
     53                                SendEmptyResponse (_context, HttpStatusCode.BadRequest, _jsonInputData, "MISSING_TOKEN");
    5454                                return;
    5555                        }
    5656
    57                         if (!TryGetJsonField (_jsonInput, "username", out string username)) {
    58                                 SendErrorResult (_context, HttpStatusCode.BadRequest, _jsonInputData, "MISSING_USERNAME");
     57                        if (!JsonCommons.TryGetJsonField (_jsonInput, "username", out string username)) {
     58                                SendEmptyResponse (_context, HttpStatusCode.BadRequest, _jsonInputData, "MISSING_USERNAME");
    5959                                return;
    6060                        }
    6161
    62                         if (!TryGetJsonField (_jsonInput, "password", out string password)) {
    63                                 SendErrorResult (_context, HttpStatusCode.BadRequest, _jsonInputData, "MISSING_PASSWORD");
     62                        if (!JsonCommons.TryGetJsonField (_jsonInput, "password", out string password)) {
     63                                SendEmptyResponse (_context, HttpStatusCode.BadRequest, _jsonInputData, "MISSING_PASSWORD");
    6464                                return;
    6565                        }
    6666
    6767                        if (!UserRegistrationTokens.TryValidate (token, out UserRegistrationTokens.RegistrationData regData)) {
    68                                 SendErrorResult (_context, HttpStatusCode.Unauthorized, null, "INVALID_OR_EXPIRED_TOKEN");
     68                                SendEmptyResponse (_context, HttpStatusCode.Unauthorized, null, "INVALID_OR_EXPIRED_TOKEN");
    6969                                return;
    7070                        }
    7171
    7272                        if (!userValidationRegex.IsMatch (username)) {
    73                                 SendErrorResult (_context, HttpStatusCode.Unauthorized, _jsonInputData, "INVALID_USERNAME");
     73                                SendEmptyResponse (_context, HttpStatusCode.Unauthorized, _jsonInputData, "INVALID_USERNAME");
    7474                                return;
    7575                        }
    7676                       
    7777                        if (!passValidationRegex.IsMatch (password)) {
    78                                 SendErrorResult (_context, HttpStatusCode.Unauthorized, _jsonInputData, "INVALID_PASSWORD");
     78                                SendEmptyResponse (_context, HttpStatusCode.Unauthorized, _jsonInputData, "INVALID_PASSWORD");
    7979                                return;
    8080                        }
     
    8686                                    !PlatformUserIdentifierAbs.Equals (existingMapping.CrossPlatformUser, regData.CrossPlatformUserId)) {
    8787                                        // Username already in use by another player
    88                                         SendErrorResult (_context, HttpStatusCode.Unauthorized, _jsonInputData, "DUPLICATE_USERNAME");
     88                                        SendEmptyResponse (_context, HttpStatusCode.Unauthorized, _jsonInputData, "DUPLICATE_USERNAME");
    8989                                        return;
    9090                                }
  • binary-improvements2/WebServer/src/WebAPI/APIs/WorldState/Animal.cs

    r433 r434  
    44using Webserver.LiveData;
    55
    6 namespace Webserver.WebAPI.APIs {
     6namespace Webserver.WebAPI.APIs.WorldState {
    77        [UsedImplicitly]
    88        internal class Animal : AbsRestApi {
  • binary-improvements2/WebServer/src/WebAPI/APIs/WorldState/Hostile.cs

    r433 r434  
    44using Webserver.LiveData;
    55
    6 namespace Webserver.WebAPI.APIs {
     6namespace Webserver.WebAPI.APIs.WorldState {
    77        [UsedImplicitly]
    88        internal class Hostile : AbsRestApi {
  • binary-improvements2/WebServer/src/WebAPI/APIs/WorldState/Player.cs

    r433 r434  
    66using Webserver.Permissions;
    77
    8 namespace Webserver.WebAPI.APIs {
     8namespace Webserver.WebAPI.APIs.WorldState {
    99        [UsedImplicitly]
    1010        public class Player : AbsRestApi {
     
    216216
    217217                protected override void HandleRestPost (RequestContext _context, IDictionary<string, object> _jsonInput, byte[] _jsonInputData) {
    218                         if (!TryGetJsonField (_jsonInput, "command", out string commandString)) {
    219                                 SendErrorResult (_context, HttpStatusCode.BadRequest, _jsonInputData, "NO_COMMAND");
     218                        if (!JsonCommons.TryGetJsonField (_jsonInput, "command", out string commandString)) {
     219                                SendEmptyResponse (_context, HttpStatusCode.BadRequest, _jsonInputData, "NO_COMMAND");
    220220                                return;
    221221                        }
     
    223223                        WebCommandResult.ResultType responseType = WebCommandResult.ResultType.Full;
    224224
    225                         if (TryGetJsonField (_jsonInput, "format", out string formatString)) {
     225                        if (JsonCommons.TryGetJsonField (_jsonInput, "format", out string formatString)) {
    226226                                if (formatString.EqualsCaseInsensitive ("raw")) {
    227227                                        responseType = WebCommandResult.ResultType.Raw;
     
    240240
    241241                        if (command == null) {
    242                                 SendErrorResult (_context, HttpStatusCode.NotFound, _jsonInputData, "UNKNOWN_COMMAND");
     242                                SendEmptyResponse (_context, HttpStatusCode.NotFound, _jsonInputData, "UNKNOWN_COMMAND");
    243243                                return;
    244244                        }
     
    247247
    248248                        if (_context.PermissionLevel > commandPermissionLevel) {
    249                                 SendErrorResult (_context, HttpStatusCode.Forbidden, _jsonInputData, "NO_PERMISSION");
     249                                SendEmptyResponse (_context, HttpStatusCode.Forbidden, _jsonInputData, "NO_PERMISSION");
    250250                                return;
    251251                        }
Note: See TracChangeset for help on using the changeset viewer.