Overview
O express-acler é um middleware para o ExpressJS para utilização de ACL baseado no acler.
Installation
Para adicionar o express-acler
no seu projeto:
npm install express-acler
Ou
yarn add express-acler
Configurations
Você pode fazer algumas alterações na configuração para adequar o express-acler
a sua necessidade.
Você tem as seguintes configurações:
Propriedade | Tipo | Default | Descrição |
---|---|---|---|
roles | string |
user.roles |
Caminho das roles do seu usuário |
permissions | string |
user.permissions |
Caminho das permissions do seu usuário |
errors.roles | string |
You not allowed to this resource |
Mensagem de erro apresentada ao usuário por não possuir a role necessária |
errors.permissions | string |
You not allowed to this resource |
Mensagem de erro apresentada ao usuário por não possuir a permission necessária |
Important
O express-acler
precisa que você insira o seu User
em um middleware
que o antecede, por padrão o usuário deve ser inserido no req.user
e as roles e permissions devem ficar em req.user.roles
e req.user.permissions
respectivamente. Essa configuração pode ser alterada quando o express-acler
for instanciado.
// userMiddleware.jsconst User = ; moduleexports = async { requser = await User; ;};
O seu usuário deve ter um Array
contendo as roles e as permissions e caso alguma role possua permissions ela deve vir como Object
. Segue o exemplo da estrutura esperada:
user = username: "Higo Ribeiro" { return "moderator" moderator: "read" "write" "delete" ; } { return "write" "read"; };
Permissions
Ao tratar das permissions o express-acler
naturalmente pega aquelas definidas nas roles do User
, seguindo o objeto acima apresentado suas permissões são write
, read
e delete
. A delete
foi automaticamente acrescentada as permissions pois é uma das atribuições do moderator
.
Usage
const is can = ;const app = /* ... configurations */; const userMiddleware = ;const postController = ; app; app;app; app;
Contribute
Todas as contribuições são bem-vindas.
- Fork it
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- Create new Pull Request
License
MIT © Rocketseat