Permissões do Administrador da Rede em desacordo com Administrador do Perfil

Antonio Terceiro terceiro at colivre.coop.br
Wed Aug 7 10:16:43 BRT 2013


On Fri, Aug 02, 2013 at 09:50:31AM -0300, Bráulio Bhavamitra wrote:
> Olá comunidade noosfero,
> 
> Fui investigar aqui porque alguns administradores de rede conseguem
> administrar perfis e outros não.
> Notei que os que podem têm o papel profile_admin (além do
> environment_admin) associado ao ambiente. É semanticamente estranho pois o
> profile_admin de uma pessoa com o ambiente dá poderes para administrar
> qualquer perfil.

funciona assim, quando você testa se $fulano tem $permissao em $item,
o sistema checa se

  $fulano tem $permissao em $item?
  $fulano tem $permissão em pai($item)?

sendo que o segundo teste é recursivo. O pai de um artigo é um perfil, e
o pai de um perfil é o ambiente. Se qualquer um dos testes passa, então
o acesso é permitido.

Isso foi projetado assim pra permitir a flexibilidade necessária pra que
você possa por exemplo ter administradores do ambiente que não podem
futucar nos perfis.

> Procurei log do app/models/environment.rb e não encontrei em nenhum lugar
> de sua história a referência a este relacionamento profile_admin com o
> ambiente, o que me faz supor que isto foi feito manualmente no cirandas.
>
> def add_admin user
>   self.affiliate user, Environment::Roles.admin(self.id)
>   self.affiliate user, Profile::Roles.admin(self.id)
> end
> 
> Para ter este comportamento como padrão a função add_admin ficaria como
> acima, acrescentando uma linha ao final.
> 
> Este comportamento é desejado para o noosfero como um todo ou apenas para o
> cirandas?

O conserto certo pra esse problema é ter uma interface de administração
pra associar papéis a usuários no contexto do ambiente (hoje só tem tem
isso no contexto de um perfil) ...

Eu ainda acho que o default deveria ser permissão de administração só do
ambiente em si, e não de qualquer perfil). Você acha que num contexto
de rede social (e econômica!) um administrador do sistema¹ deveria ter
permissão pra visualizar *e alterar* qualquer informação de qualquer
usuário por default?

¹ administrador do sistema no nível da aplicação. Um administrador do SO
  do servidor já pode fazer qq coisa, mas normalmente a gente é bem mais
  criterioso pra dar acesso de admin no SO do que na aplicação.

De qualquer forma, o esforço de implementar essa interface é
provavelmente menor do que o esforço pra chegar a um consenso sobre
isso, e com uma interface funcionando a discussão perde o sentido.

-- 
Antonio Terceiro <terceiro at colivre.coop.br>
Colivre - Cooperativa de Tecnologias Livres
http://www.colivre.coop.br/


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://listas.softwarelivre.org/pipermail/noosfero-br/attachments/20130807/70401ec5/attachment.pgp>


More information about the Noosfero-br mailing list