Utilização das diretivas de segurança
As diretivas de segurança oferecem uma forma rápida de configurar sua aplicação para apresentar ou não determinado conteúdo ao usuário baseado no estado de autenticação ou nas 'roles' deste usuário. Para isso, as diretivas se utilizam de AuthService.
- Importe o módulo de segurança no seu módulo ou sub-módulo (NOTA: a importação no módulo raiz app.module ou core.module não carrega de forma correta as diretivas no Angular 4+ com angular-cli);
- Use as diretivas em seus templates;
// Importe #1
import { SecurityModule } from '@demoiselle/security';
@NgModule({
// Importe #2
imports: [SecurityModule],
// ...código resumido
})
<!-- Use no seu template HTML -->
<div id="sidebar-menu" *dmlHasRoles="['ADMINISTRATOR']">
Diretiva dmlIsLogged
Remove um elemento (uma porção do DOM) caso o usuário não esteja autenticado.
<div *dmlIsLogged>
Somente usuário logado pode ver esse conteúdo!!!
</div>
Diretiva dmlHasRoles
Remove um elemento (uma porção do DOM) caso o usuário não tenha um dos perfis informados. Os perfis devem ser declarados através de um array de strings.
<div *dmlHasRoles="['ADMINISTRADOR','USUARIO']">
Somente usuário com roles ADMINISTRADOR ou USUARIO
pode ver este conteúdo!
</div>
Diretiva dmlHasRolesDisable
Desabilita elementos (input, select, textarea, button, a) do DOM caso o usuário não tenha um dos perfis informados. Os perfis devem ser declarados através de um array de strings.
<div [dmlHasRolesDisable]="['ADMINISTRADOR']">
<input
type="text"
value="input desabilitado caso não seja administrador"
/>
<a href="">
Somente usuário com roles ADMINISTRADOR pode ver este link!
</a>
</div>