using System.IdentityModel.Tokens.Jwt; using adas_core.Authentication.Models; using adas_core.Domain.Models.DTO; using adas_core.Domain.Models.Filter; using adas_core.Domain.Models.MongoModels; using adas_core.Domain.Models.Responses; using Microsoft.IdentityModel.Tokens; using MongoDB.Bson; namespace adas_core.Authentication.Interfaces; public interface IUserService { static readonly string TokenTypeUser = "user"; static readonly string TokenTypeRefresh = "refresh"; Task Login(string username, string password); Task GetUser(string username, string password); Task RefreshToken(string refreshToken); Task LoginWithAccessToken(string token); void ValidateToken(string token, string tokenType, out SecurityToken securityToken); Task GetUserByToken(JwtSecurityToken? jwtToken); Task GetUserByCasTicket(string service, string ticket); Task GenerateJwt(User user); Task> GetAll(); Task GetUserById(ObjectId id); Task GetUserByUserName(string name); Task GetUserByName(string name); Task CreateUser(User userEntryLdap); Task CreateNewUserByRequest(User user); Task CreateNewUserWithAuthorities(CreateUserWithAuthDto createUserWithAuthDto); Task UpdateUserWithAuthorities(UpdateUserWithAuthDto createUserWithAuthDto, bool updatePass); Task UpdateUsersByRequest(User user, bool updatePass); Task UpdateUserPassword(ObjectId id, string oldPassword, string newPassword); Task DeleteUser(ObjectId id); Task> GetPaginatedUsers(PaginationFilter config); Task CreateNewAuthority(Authorization auth); Task DeleteAuthority(string id); Task UpdateAuthority(Authorization authorization); Task LoginWithGivenAccessToken(string token); }