safety4d


# Safety4D Framework para Controle de Regras de Acesso de Usuários inspirado no conceito RBAC. ## Instalação Basta registrar no Library Path do seu Delphi o caminho da pasta SRC da Biblioteca ou utilizar o Boss (https://github.com/HashLoad/boss) para facilitar ainda mais, executando o comando ``` boss install https://github.com/bittencourtthulio/safety4d ``` ## Primeiros Passos - Tutorial Para utilizar o Safety4D você deve adicionar a uses ``` Safety4D ``` ### Como funciona O Safety4D foi baseado no conceito de RBAC ( role-based access control) https://pt.wikipedia.org/wiki/Controle_de_acesso_baseado_em_fun%C3%A7%C3%B5es Ele se baseia em uma estrutura JSON de configuração para definição das permissões, inspirada na estrutura utilizada pelo Windows Azure. https://docs.microsoft.com/pt-br/azure/role-based-access-control/overview Abaixo o exemplo de um arquivo de configuração ```JSON { "resources": { "safety4d": { "users": { "actions": { "read": { "description": "read-only", "errormsg": "not permit" }, "write": { "description": "read-write", "errormsg": "not write data" }, "delete": { "description": "delete-data", "errormsg": "not delete data" }, "view": { "description": "view data", "errormsg": "not view data" } } } } }, "groupPermission": { "{4D62E4C3-C73D-488A-8518-03A9545B5611}": { "key": "Gerente", "description": "Permissoes completa de gestao do Sistema", "Actions": [ "users.write" ], "NotActions": [ "*" ] }, "{C188D1AB-EC28-4380-96E0-D1B13A29A8B3}": { "key": "Comercial", "description": "Permissoes de Recursos Comerciais", "Actions": [ "*" ], "NotActions": [ "users.delete", "users.write" ] } }, "userKeys": { "{34C940ED-50E7-4CE3-B701-03CF1E15F28B}": { "description": "Fulano de Tal", "permissionGroups": [ "{4D62E4C3-C73D-488A-8518-03A9545B5611}" ] }, "{96B4C46F-0EBB-443B-B309-09C81844406E}": { "description": "Beltrano", "permissionGroups": [ "{C188D1AB-EC28-4380-96E0-D1B13A29A8B3}" ] } } } ``` ## Explicando a Estrutura Abaixo vou detalhar cada bloco do JSON acima explicando o objetivo e a aplicação de cada recurso. ### Resources Neste bloco você vai cadastrar a sua aplicação, os recursos dela e as ações que você deseja validar. ```JSON "resources": { "safety4d": { "users": { "actions": { "read": { "description": "read-only", "errormsg": "not permit" }, "write": { "description": "read-write", "errormsg": "not write data" }, "delete": { "description": "delete-data", "errormsg": "not delete data" }, "view": { "description": "view data", "errormsg": "not view data" } } } } }, ``` No exemplo acima, estamos cadastrando a aplicação chamada safety4d, o recursos chamados users e as ações disponíveis neste recurso read, write, delete, view .
Você pode cadastrar quantas ações desejar para um recurso.