Consigo autenticar mas, a permissão na funciona corretamente com a roleMatch
//Saída no console
userRoles: [{…}]
0: {roleNome: 'Usuario', roleDescricao: 'Função padrão para registro recém-criado'}
allowedRoles: ['Admin']
0: "Admin"
userRoles: [{…}]
0: {roleNome: 'Usuario', roleDescricao: 'Função padrão para registro recém-criado'}
allowedRoles: ['Usuario']
0: "Usuario"
//Html
<li class="nav-item">
<a class="nav-link active" aria-current="page" routerLink="/admin"
*ngIf="userService.roleMatch(['Admin'])"
>Painel Admin</a>
</li>
<li class="nav-item">
<a class="nav-link active" aria-current="page" routerLink="/usuario"
*ngIf="userService.roleMatch(['Usuario'])"
>Painel Usuario</a>
</li>
//Uso indexOf() retorna o primeiro índice em que o elemento pode ser encontrado no array, retorna -1 caso o mesmo não esteja presente.
public roleMatch(allowedRoles: any): boolean {
let isMatch = false;
const userRoles: any = this.userAuthService.getRoles();
if(userRoles != null && userRoles) {
for(let i=0; i < userRoles.length; i++) {
console.log('userRoles: ',userRoles);
for(let j=0; j < allowedRoles.length; j++) {
//if(userRoles[i].roleName === allowedRoles[j]){}// não funciona
console.log('allowedRoles: ',allowedRoles);
if(allowedRoles.indexOf(userRoles[i].roleName)){
console.log('roleMatch achou: ',allowedRoles.indexOf(userRoles[i].roleName));
isMatch = true;
return isMatch;
}
else {
console.log('roleMatch não achou: ',allowedRoles.indexOf(userRoles[i].roleName));
return isMatch;
}
}
}
}
return isMatch;
}