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

Latest state including reworking to the permissions system

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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.