Skip to content
Snippets Groups Projects

Fix multi tenant

9 files
+ 118
19
Compare changes
  • Side-by-side
  • Inline

Files

@@ -83,8 +83,8 @@ namespace Tsi1.Api.Controllers
});
}
[AllowAnonymous]
[HttpPost("RefreshToken")]
[Authorize]
public async Task<ActionResult> RefreshToken([FromBody] RefreshTokenRequest request)
{
try
@@ -118,10 +118,38 @@ namespace Tsi1.Api.Controllers
public async Task<IActionResult> Register(UserRegisterDto dto)
{
var tenantId = int.Parse(HttpContext.User.Claims.FirstOrDefault(x => x.Type == "TenantId").Value);
dto.TenantId = tenantId;
var userTypeResult = await _userTypeService.GetById(dto.UserTypeId);
if (userTypeResult.HasError)
{
return BadRequest(userTypeResult.Message);
}
var userType = userTypeResult.Data;
if (userType.Name == UserTypes.UdelarAdmin ||
userType.Name == UserTypes.FacultyAdmin)
{
return BadRequest(string.Format(ErrorMessages.InvalidUserType, userType.Name));
}
var userServiceResult = await _userService.Create(dto, userType.Name, tenantId);
if (userServiceResult.HasError)
{
return BadRequest(userServiceResult.Message);
}
return Ok();
}
[Authorize(Roles = UserTypes.UdelarAdmin)]
[HttpPost("RegisterAdmin/{tenantId}")]
public async Task<IActionResult> RegisterAdmin(UserRegisterDto dto, int tenantId)
{
var userTypeResult = await _userTypeService.GetById(dto.UserTypeId);
if (userTypeResult.HasError)
{
BadRequest(userTypeResult.Message);
@@ -129,7 +157,13 @@ namespace Tsi1.Api.Controllers
var userType = userTypeResult.Data;
var userServiceResult = await _userService.Create(dto, userType.Name);
if (userType.Name == UserTypes.Student ||
userType.Name == UserTypes.Professor)
{
return BadRequest(string.Format(ErrorMessages.InvalidUserType, userType.Name));
}
var userServiceResult = await _userService.Create(dto, userType.Name, tenantId);
if (userServiceResult.HasError)
{
@@ -170,5 +204,21 @@ namespace Tsi1.Api.Controllers
return Ok(result.Data);
}
[Authorize(Roles = UserTypes.UdelarAdmin + ", " + UserTypes.FacultyAdmin)]
[HttpGet("GetUserTypes")]
public async Task<IActionResult> GetUserTypes()
{
var userType = HttpContext.User.Claims.FirstOrDefault(x => x.Type == ClaimTypes.Role).Value;
var result = await _userTypeService.GetAll(userType);
if (result.HasError)
{
return BadRequest(result.Message);
}
return Ok(result.Data);
}
}
}
Loading