2024-04-22 18:04:14 -05:00
|
|
|
using API.Authentication.Interfaces;
|
|
|
|
using API.DTO.Base;
|
2024-07-12 17:27:01 -05:00
|
|
|
using API.DTO.Login;
|
2024-04-22 18:04:14 -05:00
|
|
|
using DAL.Contexts;
|
|
|
|
using DAL.Models;
|
|
|
|
using DAL.Models.Audits;
|
|
|
|
|
|
|
|
namespace API.Services
|
|
|
|
{
|
2024-07-15 13:23:58 -05:00
|
|
|
public class UserService : ServiceBase<UserService, UserDTO, User, AuditUser, IUserAuthentication>
|
2024-04-22 18:04:14 -05:00
|
|
|
{
|
2024-07-12 17:27:01 -05:00
|
|
|
private readonly ulong _defaultUserPermission;
|
|
|
|
private readonly PermissionService _permissionService;
|
2024-07-15 13:23:58 -05:00
|
|
|
public UserService(ILogger<UserService> logger, SASGContext context, IUserAuthentication auth, PermissionService permissionService, ulong defaultUserPermission) : base(logger, context, auth)
|
2024-07-12 17:27:01 -05:00
|
|
|
{
|
|
|
|
_permissionService = permissionService;
|
|
|
|
_defaultUserPermission = defaultUserPermission;
|
|
|
|
}
|
2024-04-22 18:04:14 -05:00
|
|
|
|
2024-07-12 17:27:01 -05:00
|
|
|
public User add(UserRegisterDTO registerDTO, string hashedPassword, byte[] salt)
|
2024-04-22 18:04:14 -05:00
|
|
|
{
|
2024-07-12 17:27:01 -05:00
|
|
|
Permission? defaultPermission = _permissionService.getNoAuthentication(_defaultUserPermission);
|
|
|
|
|
|
|
|
if (defaultPermission == null)
|
|
|
|
throw new InvalidOperationException("defaultUserPermission doesn't exist.");
|
|
|
|
|
|
|
|
User model = new User
|
|
|
|
{
|
|
|
|
firstName = registerDTO.firstName,
|
|
|
|
lastName = registerDTO.lastName,
|
|
|
|
phoneNumber = registerDTO.phoneNumber,
|
|
|
|
|
|
|
|
password = hashedPassword,
|
|
|
|
salt = salt,
|
|
|
|
|
|
|
|
permissionId = defaultPermission.id,
|
|
|
|
|
|
|
|
updated = DateTime.Now
|
|
|
|
};
|
|
|
|
|
|
|
|
Context.Add(model);
|
|
|
|
Context.SaveChanges();
|
|
|
|
|
|
|
|
return model;
|
2024-04-22 18:04:14 -05:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|