43 lines
966 B
C#
43 lines
966 B
C#
using Server;
|
|
using Shared;
|
|
using System.Net.Sockets;
|
|
using System.Text.Json;
|
|
|
|
namespace Server.JsonApi;
|
|
|
|
public class Context {
|
|
public Server server;
|
|
public Socket socket;
|
|
public ApiRequest? request;
|
|
public Logger? logger;
|
|
|
|
|
|
public Context(
|
|
Server server,
|
|
Socket socket
|
|
) {
|
|
this.server = server;
|
|
this.socket = socket;
|
|
}
|
|
|
|
|
|
public bool HasPermission(string perm) {
|
|
if (this.request == null) { return false; }
|
|
return Settings.Instance.JsonApi.Tokens[this.request!.Token!].Contains(perm);
|
|
}
|
|
|
|
|
|
public List<string> Permissions {
|
|
get {
|
|
if (this.request == null) { return new List<string>(); }
|
|
return Settings.Instance.JsonApi.Tokens[this.request!.Token!];
|
|
}
|
|
}
|
|
|
|
|
|
public async Task Send(object data) {
|
|
byte[] bytes = JsonSerializer.SerializeToUtf8Bytes(data);
|
|
await this.socket.SendAsync(bytes, SocketFlags.None);
|
|
}
|
|
}
|