quinta-feira, 14 de janeiro de 2010

Alterando Dados do Usuário (Member) no Plone 2.5

Você quer fazer alteração em Massa nos dados dos seus usuários  no Plone e não sabe como? Tenta de tudo e só consegue alterar os dados do seu usuário ou da privilégios insuficientes? Você está no lugar certo então.

O que está escrito aqui, eu tenho certeza que é verdade para o Plone 2.5. Ainda não utilizei a versão 3 direito. Estou atrasando este encontro ao máximo.

Mas o problema dos usuários é o seguinte: Se você tentar utilizar o código member.setProperties() para alterar informações dos usuários (Members do Plone) que não seja o usuário logado, nada vai acontecer.
Este método só altera informações do usuário logado. O método que você precisa usar é: member.setMemberProperties(). Esse método fará a alteração no usuário que está na variável member, o outro não. Faça algo como

member.setMemberProperties({"nomePropriedade",valor})

Só tem um probleminha. Este método não é autorizado a ser chamado no Plone via ZMI. Então, vai dar erro de privilégios insuficientes e você vai ficar morrendo de raiva. Se quiser utilizá-lo. Tem três formas: External Method (é a mais simples), criar um produto ou autorizar este método em um script python que sobre junto com o Plone.
Faça um External Method. Como? Bom, ai é uma outra dica. Não essa.