Open andrex47 opened 1 year ago
Olá, André! Tudo bem? Obrigado pela sua contribuição.
Não fico confortável com a mudança de um comportamento que já está em uso, quando não está "definitivamente" errado. O que acha de criarmos um novo middleware? Afinal, ele existe apenas para facilitar a vida do DEV, já que temos o Guard registrado.
Imagino duas opções:
1 - Criar um novo middleware chamado KeycloakCanOne ou KeycloakCanOneOf.
2 - Alterar o middleware para aceitar um separador OU:
$this->middleware('keycloak-web-can:permissao-um,permissao-dois');
3 - Alterar o middleware para aceitar um outro parâmetro permitindo o OU:
$this->middleware('keycloak-web-can:permissao-um|permissao-dois,1');
Considerações:
O que você acha?
Novo middleware, amém
Bacana! Vamos com "KeycloakCanOneOf" então.
tem uma nova pull request aberta com o novo middleware
atualmente o middleware trabalha verificando se um usuário possui todas as permissões para acessar o recurso,a proposta é para que um usuário possa acessar um recurso se possui qualquer uma das permissões, por exemplo: Considerando que um sistema possui uma role administrador que tem acesso a tudo, a minha proposta é rodar um loop e quando encontrar qualquer uma das permissões conceder acesso:
O mesmo comportamento de verificar multiplas roles pode ser atingido através de um novo group repetindo o middleware do keycloak, enquanto o comportamento de apenas verificar uma role não pode ser atingido sem criar um novo middleware. Abri uma open request alterar esse comportamento