Ignore:
Timestamp:
Feb 16, 2023, 3:50:53 PM (21 months ago)
Author:
alloc
Message:

Latest state including reworking to the permissions system

Location:
binary-improvements2/WebServer/src/Commands
Files:
1 added
1 deleted
2 edited

Legend:

Unmodified
Added
Removed
  • binary-improvements2/WebServer/src/Commands/WebPermissionsCmd.cs

    r391 r404  
    11using System.Collections.Generic;
    22using JetBrains.Annotations;
     3using Webserver.Permissions;
    34
    45namespace Webserver.Commands {
     
    4445                        }
    4546
    46                         if (!WebPermissions.Instance.IsKnownModule (_params [1])) {
     47                        if (!AdminWebModules.Instance.IsKnownModule (_params [1])) {
    4748                                SdtdConsole.Instance.Output ($"\"{_params [1]}\" is not a valid web function.");
    4849                                return;
     
    5455                        }
    5556
    56                         WebPermissions.Instance.AddModulePermission (_params [1], level);
     57                        AdminWebModules.Instance.AddModule (_params [1], level);
    5758                        SdtdConsole.Instance.Output ($"{_params [1]} added with permission level of {level}.");
    5859                }
     
    6465                        }
    6566
    66                         if (!WebPermissions.Instance.IsKnownModule (_params [1])) {
     67                        if (!AdminWebModules.Instance.IsKnownModule (_params [1])) {
    6768                                SdtdConsole.Instance.Output ($"\"{_params [1]}\" is not a valid web function.");
    6869                                return;
    6970                        }
    7071
    71                         WebPermissions.Instance.RemoveModulePermission (_params [1]);
     72                        AdminWebModules.Instance.RemoveModule (_params [1]);
    7273                        SdtdConsole.Instance.Output ($"{_params [1]} removed from permissions list.");
    7374                }
     
    7677                        SdtdConsole.Instance.Output ("Defined web function permissions:");
    7778                        SdtdConsole.Instance.Output ("  Level: Web function");
    78                         foreach (WebPermissions.WebModulePermission wmp in WebPermissions.Instance.GetModules ()) {
    79                                 SdtdConsole.Instance.Output ($"  {wmp.permissionLevel,5}: {wmp.module}");
     79                       
     80                        List<AdminWebModules.WebModule> wmps = AdminWebModules.Instance.GetModules ();
     81                        for (int i = 0; i < wmps.Count; i++) {
     82                                AdminWebModules.WebModule wmp = wmps [i];
     83                               
     84                                SdtdConsole.Instance.Output ($"  {wmp.PermissionLevel,5}: {wmp.Name}");
    8085                        }
    8186                }
  • binary-improvements2/WebServer/src/Commands/WebTokens.cs

    r402 r404  
    22using System.Text.RegularExpressions;
    33using JetBrains.Annotations;
     4using Webserver.Permissions;
    45
    56namespace Webserver.Commands {
     
    1920                        return "Set/get webtoken permission levels. A level of 0 is maximum permission.\n" +
    2021                               "Usage:\n" +
    21                                "   webtokens add <username> <usertoken> <level>\n" +
    22                                "   webtokens remove <username>\n" +
     22                               "   webtokens add <tokenname> <tokensecret> <level>\n" +
     23                               "   webtokens remove <tokenname>\n" +
    2324                               "   webtokens list";
    2425                }
     
    4748
    4849                        if (string.IsNullOrEmpty (_params [1])) {
    49                                 SdtdConsole.Instance.Output ("Argument 'username' is empty.");
     50                                SdtdConsole.Instance.Output ("Argument 'tokenname' is empty.");
    5051                                return;
    5152                        }
     
    5354                        if (!validNameTokenMatcher.IsMatch (_params [1])) {
    5455                                SdtdConsole.Instance.Output (
    55                                         "Argument 'username' may only contain characters (A-Z, a-z), digits (0-9) and underscores (_).");
     56                                        "Argument 'tokenname' may only contain characters (A-Z, a-z), digits (0-9) and underscores (_).");
    5657                                return;
    5758                        }
    5859
    5960                        if (string.IsNullOrEmpty (_params [2])) {
    60                                 SdtdConsole.Instance.Output ("Argument 'usertoken' is empty.");
     61                                SdtdConsole.Instance.Output ("Argument 'tokensecret' is empty.");
    6162                                return;
    6263                        }
     
    6465                        if (!validNameTokenMatcher.IsMatch (_params [2])) {
    6566                                SdtdConsole.Instance.Output (
    66                                         "Argument 'usertoken' may only contain characters (A-Z, a-z), digits (0-9) and underscores (_).");
     67                                        "Argument 'tokensecret' may only contain characters (A-Z, a-z), digits (0-9) and underscores (_).");
    6768                                return;
    6869                        }
     
    7374                        }
    7475
    75                         WebPermissions.Instance.AddAdmin (_params [1], _params [2], level);
    76                         SdtdConsole.Instance.Output ($"Web user with name={_params [1]} and password={_params [2]} added with permission level of {level}.");
     76                        AdminApiTokens.Instance.AddToken (_params [1], _params [2], level);
     77                        SdtdConsole.Instance.Output ($"Web API token with name={_params [1]} and secret={_params [2]} added with permission level of {level}.");
    7778                }
    7879
     
    8485
    8586                        if (string.IsNullOrEmpty (_params [1])) {
    86                                 SdtdConsole.Instance.Output ("Argument 'username' is empty.");
     87                                SdtdConsole.Instance.Output ("Argument 'tokenname' is empty.");
    8788                                return;
    8889                        }
     
    9091                        if (!validNameTokenMatcher.IsMatch (_params [1])) {
    9192                                SdtdConsole.Instance.Output (
    92                                         "Argument 'username' may only contain characters (A-Z, a-z), digits (0-9) and underscores (_).");
     93                                        "Argument 'tokenname' may only contain characters (A-Z, a-z), digits (0-9) and underscores (_).");
    9394                                return;
    9495                        }
    9596
    96                         WebPermissions.Instance.RemoveAdmin (_params [1]);
    97                         SdtdConsole.Instance.Output ($"{_params [1]} removed from web user permissions list.");
     97                        AdminApiTokens.Instance.RemoveToken (_params [1]);
     98                        SdtdConsole.Instance.Output ($"{_params [1]} removed from web API token permissions list.");
    9899                }
    99100
    100101                private void ExecuteList () {
    101                         SdtdConsole.Instance.Output ("Defined webuser permissions:");
    102                         SdtdConsole.Instance.Output ("  Level: Name / Token");
    103                         foreach (WebPermissions.AdminToken at in WebPermissions.Instance.GetAdmins ()) {
    104                                 SdtdConsole.Instance.Output ($"  {at.permissionLevel,5}: {at.name} / {at.token}");
     102                        SdtdConsole.Instance.Output ("Defined web API token permissions:");
     103                        SdtdConsole.Instance.Output ("  Level: Name / Secret");
     104                        foreach ((string _, AdminApiTokens.ApiToken apiToken) in AdminApiTokens.Instance.GetTokens ()) {
     105                                SdtdConsole.Instance.Output ($"  {apiToken.PermissionLevel,5}: {apiToken.Name} / {apiToken.Secret}");
    105106                        }
    106107                }
Note: See TracChangeset for help on using the changeset viewer.