Sim, tentei. Mas agora já resolvi. Obrigado pela atenção!

Quando cria-se um tipo de conteúdo usando o membrane, ele registra um membro
no portal com o id recebendo o UID() do objeto criado, ao invés do nome de
usuário. Logo, quando eu coloco as permissões, eu colocava para um id
baseado no login, e não para o UID(). Assim, como são IDs diferentes, as
pemissões só eram confirmadas após eu ir na aba "sharing" e clicar em
"salvar", pois assim o membrane tratava a relação entre o conteúdo e o
membro criado.

Outra coisa, era que quando o usuário se logava, aparecia o UID, ao invés do
nome do lado do "sair".

Resolvendo o "problema":

Para que não ter esse problema com o membrane, a classe do tipo de conteúdo
membrane, deve implementar a interface IUserRelated, mais especificamente o
método getUserId(), retornando o nome do usuário. Fazendo isso, além de
resolver a confusão com permissões, você ainda impede que quando o usuário
faça login, o UID apareça no portal, e sim o nome dele.

Abraços

2008/8/29 Douglas Soares de Andrade <[EMAIL PROTECTED]>

>   Vanderson Mota dos Santos escreveu:
>
> > saudações,
> >
> > Estou usando Plone 3.1.5 com zope 2.10 e estou com um problema na hora de
> > "setar" os localroles numa pasta para um determinado usuário, que é
> criado
> > usando o membrane. Os tipos de conteúdo da aplicação são criados usando
> > archetypes.
> >
> > assim:
> > content/Usuario.py
> > #essa parte é só para desativar o "Herdar permissões de níveis
> superiores"
> > *def post_validate(self, REQUEST, errors):*
> > from plone.app.workflow.browser.sharing import SharingView
> > SharingView(self, REQUEST).update_inherit(status=False)
> >
> > *def setInstituicao(self, value):*
> > folder.manage_setLocalRoles(self.getUserName().lower(),
> >
> > ('Contributor','Reviewer','Editor','Reader'),)
> > folder.reindexObjectSecurity()
>
> Ola Vanderson,
>
> Eu nao sei se ajuda, mas vc ja tentou executar o comando:
>
> folder.reindexObject()
>
> >
> > *Problema:
> > *O usuário quando se loga, não pega os papéis setados via código.
> > Entretanto, quando vou na aba sharing da devida pasta, todas as
> permissões
> > de adição, leitura, ediçao e revisão estão marcadas, exatamente como eu
> > "setei" no código.
> >
> > Já li o fonte do AccessControl, e não encontrei nenhuma luz. Busquei no
> > plone.org, e, a chamada do método também está ok. Eu simplesmente não
> sei
> > mais o que fazer para que o usuário realmente pegue as permissões.
>
> --
> Douglas Soares de Andrade
> -- ThreePointsWeb - www.threepointsweb.com
> -- Python, Zope e Plone
> == Archlinux Trusted User and Developer - dsa
> ** Quote: Old programmers never die; they exit to a higher shell.
>  
>



-- 
Vanderson Mota dos Santos
Tecnólogo em Desenvolvimento de Software
NSI - Núcleo de Sistemas de Informação
CEFET - Campos

Responder a