No final do método cadastrarAcl(dto), em await database.usuarios.findOne(), o instrutor esqueceu de adicionar o parâmetro where com o dto.usuarioId:
const novoUsuario = await database.usuarios.findOne({
include: [
{...},
{...}
]
})
Sem esse parâmetro, a função deixa de filtrar pelo id e retorna o primeiro usuário encontrado no banco de dados. Por esse motivo, alguns alunos estavam relatando ter recebido como resposta da requisição um usuário com os atributos usuario_roles: [] e usuario_permissoes: [] vazios.
Assim, para corrigir, basta adicionar o parametro where logo após o include, como já implementado em outras partes:
class SegurancaService {
async cadastrarAcl(dto) {
// código omitido
const novoUsuario = await database.usuarios.findOne({
include: [
{
model: database.roles,
as: 'usuario_roles',
attributes: ['id', 'nome', 'descricao'],
through: {
attributes: [],
}
},
{
model: database.permissoes,
as: 'usuario_permissoes',
attributes: ['id', 'nome', 'descricao'],
through: {
attributes: [],
}
}
],
where: {
id: dto.usuarioId
}
})
return novoUsuario
}
}