diff options
| author | Jake Mannens <jake@asger.xyz> | 2026-06-05 00:37:02 +1000 |
|---|---|---|
| committer | Jake Mannens <jake@asger.xyz> | 2026-06-11 01:13:31 +1000 |
| commit | 81a0570c1b64891f286ee86d34d6f77090d525e3 (patch) | |
| tree | 1c98593ddec2eb64029f4fabe024cb5323050bb1 /Services/UserService.cs | |
| parent | 03055cb1b262a2b9a0516ad3aa523e503edeb36b (diff) | |
Deleted server-specific files
Diffstat (limited to 'Services/UserService.cs')
| -rw-r--r-- | Services/UserService.cs | 76 |
1 files changed, 0 insertions, 76 deletions
diff --git a/Services/UserService.cs b/Services/UserService.cs deleted file mode 100644 index 9e79dc6..0000000 --- a/Services/UserService.cs +++ /dev/null @@ -1,76 +0,0 @@ -using Microsoft.AspNetCore.Cryptography.KeyDerivation; - -namespace HyperBooru.Services; - -public interface IUserService { - public UserSessionState UserSessionState { get; } -} - -public class UserService : IUserService { - public UserSessionState UserSessionState => - globalUserService.GetSessionState(httpContext.Session.Id); - - private IHttpContextAccessor httpContextAccessor; - private IGlobalUserService globalUserService; - - private HttpContext httpContext => - httpContextAccessor.HttpContext!; - - public UserService( - IHttpContextAccessor httpContextAccessor, - IGlobalUserService globalUserService) { - - this.httpContextAccessor = httpContextAccessor; - this.globalUserService = globalUserService; - - // HTTP context session states are discarded if no values - // are set. Set a dummy value so that the session state - // will not be discarded later when we actually need it. - httpContext.Session.SetInt32("Persist", 1); - } - - public static string HashPassword(string password) => - Convert.ToBase64String( - KeyDerivation.Pbkdf2( - password, - Array.Empty<byte>(), - KeyDerivationPrf.HMACSHA512, - 100_000, - 512 / 8)); -} - -public interface IGlobalUserService { - public UserSessionState GetSessionState(string id); -} - -public class GlobalUserService : IGlobalUserService { - // TODO: prune this list periodically - private Dictionary<string, UserSessionState> sessionStates = new(); - - public UserSessionState GetSessionState(string id) { - sessionStates.TryGetValue(id, out var state); - - if(state is null) { - state = new(); - sessionStates[id] = state; - } - - return state; - } -} - -public record UserSessionState { - public event UserSessionStateChange OnStateChange; - - public bool ShowNsfw { - get => showNsfw; - set { - showNsfw = value; - OnStateChange.Invoke(this); - } - } - - private bool showNsfw = false; -} - -public delegate void UserSessionStateChange(UserSessionState sessionState); |
