Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Bem-Vindo ao projeto Magoo, um novo conceito para gerenciamento de permissões em aplicações java web e desktop

Links Importantes 

 Informações gerais

...

De forma geral, o modelo de permissões e usuários de uma aplicação é intrinsicamente ligado ao seu código-fonte. Para dar um exemplo, considere esse fragmento de código em uma pseudo-linguagem:

Sem Formato
<ui:menu>
   <ui:menuItem>File</ui:menuItem>
   <ui:menuItem>Edit</ui:menuItem>
   <if:$user.role="owner">
      <ui:menuItem>Tools</ui:menuItem>
   </if>
   <ui:menuItem enabled='<%=user.role=="admin"%>'>Configuration</ui:menuItem>
</ui:menu>

...

Foi pensando nesse cenário que o Magoo foi projetado. A idéia básica por trás do Magoo é retirar totalmente do código da aplicação qualquer referência ao mecanismo de controle de acesso. Assim, o código da aplicacão seria simplesmente isso:

Sem Formato
<ui:menu>
   <ui:menuItem>File</ui:menuItem>
   <ui:menuItem>Edit</ui:menuItem>
   <ui:menuItem>Tools</ui:menuItem>
   <ui:menuItem>Configuration</ui:menuItem>
</ui:menu>

...

E para demonstrar isso, consideramos um exemplo fictício de configuração do Magoo, onde as permissões, perfis e elementos de tela são armazenados em um arquivo de texto plano, como:

Sem Formato
*       : disabled   : //ui/menuItem[Configuration]
*       : invisible : //ui/menuItem[Tools]
admin : enabled    : //ui/menuItem[Configuration]
owner : visible    : //ui/menuItem[Tools]

Nesse arquivo, as duas primeiras linhas referem-se a todos (asterisco) os perfis, e indicam que eles têm o menu "Configuration" desabilitado e o menu "Tools" invisível. Logo abaixo, as duas últimas linhas denotam que o administrador tem o menu "Configuration" habilitado e que o perfil "owner" tem o menu "Tools" visível.

...

Sem Formato
* except(admin) : disabled   : //ui/menuItem[Configuration]
* except(owner) : invisible : //ui/menuItem[Tools]

...