Olá Pessoal, estou criando usuários que possuem determinados privilégios no sistema e algumas páginas ficam ocultas para usuários específicos. A forma com que codifiquei este bloqueio, funciona, porém não sei se é a maneira mais correta, por isso gostaria de pedir a opinião dos colegas.
A codificação esta mais ou menos assim:
Minhas páginas são chamadas a partir do momento que a classe controladora é informada juntamente com o nome do método, capturo estas informações através da URL, exemplo: sistemateste.com/NomeDoController/nomeDoMetodo, assim a função chama a view requisitada. Para que o bloqueio a página acontecesse, na tabela de usuários do banco de dados, acrescentei uma coluna com o nível de acesso, até o momento, como os menus também possuem esta coluna, foi relativamente fácil oculta-los, pois só chamei os menus que possuíam o nível de acesso compatível com o do usuário. O menu estava oculto, porém o acesso a página, ainda era possível direto pela URL, para solucionar o problema, passei a capturar o nome do controlador e da função requisitada pelo usuário, assim realizo um select na tabela de menus, afim de localizar o menu que possui o link informado NomeDoController/nomeDaFuncao, localizado, acessei o nível de acesso do mesmo e comparei com a do usuário logado, caso não compatível, ele é redirecionado para outra página. Resumindo, foi através dos menus cadastrados que consegui descobrir se a página poderia ou não ser acessada.
Gostaria da opinião dos colegas com relação a esta codificação, será que o padrão é aceitável? Existe uma outra maneira mais adequada de realizar este procedimento?