using Blazored.LocalStorage; namespace NetinaShop.AdminPanel.PWA.Utilities; public class UserUtility : IUserUtility { private readonly ILocalStorageService _localStorageService; public UserUtility(ILocalStorageService localStorageService) { _localStorageService = localStorageService; } public async Task GetBearerTokenAsync() => await _localStorageService.GetItemAsStringAsync(LocalStorageKeys.Token); public async Task SetBearerTokenAsync(string token) => await _localStorageService.SetItemAsStringAsync(LocalStorageKeys.Token, token); public async Task GetUserAsync() => await _localStorageService.GetItemAsync(LocalStorageKeys.UserInfo); public async Task SetUserAsync(ApplicationUserSDto user) => await _localStorageService.SetItemAsync(LocalStorageKeys.UserInfo, user); public async Task SetPermissionsAsync(List permissions) => await _localStorageService.SetItemAsync(LocalStorageKeys.UserPermissions,permissions); public async Task> GetPermissionsAsync() => await _localStorageService.GetItemAsync>(LocalStorageKeys.UserPermissions); public async Task HasPermissionAsync(string permission) { var permissions = await _localStorageService.GetItemAsync>(LocalStorageKeys.UserPermissions); return permissions.Exists(p => p == permission); } public async Task LogoutAsync() { await _localStorageService.RemoveItemAsync(LocalStorageKeys.Token); await _localStorageService.RemoveItemAsync(LocalStorageKeys.UserInfo); await _localStorageService.RemoveItemAsync(LocalStorageKeys.UserPermissions); } //public AccessToken? AccessToken { get; set; } //public List UserClaims => AccessToken == null ? new List() : AccessToken.Permissions; //public bool HasPermissionTo(string permission) => UserClaims.Any(c => c == permission); }