none
[Framework​] Como fazer o acesso baseado em perfis/rol​es? RRS feed

  • Pergunta

  • Seguinte, como atualmente vocês estão resolvendo esse detalhe:
     
    Meu sistema tem vários usuários, cada usuário tem o seu perfil, e cada perfil tem um conjunto de funcionalidades (locais do sistema que ele pode acessar).
     
    obs: antes de ler o paragrafo abaixo, lembre-se, quando eu falar de perfil estou falando do meu cenário (meus objetos e etc..), quando falar de role estou me referindo ao role provider.
     
    É um cenário, de um certo modo "padrão". Porém, o que eu vejo na maioria dos casos é a restrição de actions por exemplo, pela role, e aí com um RoleProvider o mundo fica mais feliz e ponto. Porém, no meu caso são as funcionalidades que dão acesso e não as roles. Cada perfil pode ter seu conjunto de funcionalidades e etc... pensei em tratar as funcionalidades como roles, e quando pedisse a role (pelo role provider) daquele usuário, eu iria retornar o conjunto de funcionalidades que o perfil do usuário tinha... dessa forma, assinaria as actions com essas funcionalidades, porém irá ficar com uma brencha monstra, que é, se o cara deleta uma funcionalidade de um perfil do banco, e ela para de existir... ela continuaria existindo no codigo, ai vai apagar, recompila projeto... ou seja, trabalho que só.
     
    Existe alguma framework hoje que facilita isso pegando os acessos via xml (dessa forma só modificaria no xml, e aí poderia criar no código que, quando alterasse no banco - pela aplicação - alteraria no xml...) e faz esse bind nas actions ou controllers via data annotations ou algo do tipo?
    quarta-feira, 11 de janeiro de 2012 17:43

Respostas

  • Bem, resolvi utilizando as Funcionalidades como as Roles e não os Perfis. Desta forma os perfis servem hoje como uma interface do usuário para as roles, e no role provider eu dou o get em todas as Funcionalidades(Roles) do Perfil do usuário. 
    • Marcado como Resposta Vinícius Ottoni quinta-feira, 26 de janeiro de 2012 12:40
    quinta-feira, 26 de janeiro de 2012 12:40