Caros colegas, Desenvolvi um site para cadastro de pessoas em Plone 2.0.5. Ao invés de a pessoa se cadastrar via join_form, criei um controller page template para esse fim.
Analisei o script validate_emailaddr do Plone e verifiquei que o email é validado usando o método context.portal_registration.isValidEmail(email). Dessa forma, implementei o mesmo mecanismo no meu controller validator. Está ocorrendo uma situação inusitada, entretanto. Um email no formato [EMAIL PROTECTED] (com duas sublinhas) passa pelo crivo de isValidEmail (retorna 1), mas o portal não consegue cadastrar o usuário pois retorna o erro: Error Type ValueError Error Value You must enter a valid email address. Analisando o traceback (ver abaixo) constatei que o erro ocorre em addMember, RegistrationTool, linha 125, ou seja, nessa validação: if properties is not None: failMessage = self.testPropertiesValidity(properties) if failMessage is not None: raise ValueError(failMessage) Ocorre que testPropertiesValidity aparentemente não faz nada, apenas retorna None, o que não deveria, então, apresentar erro: def testPropertiesValidity(self, new_properties, member=None): '''If the properties are valid, returns None. If not, returns a string explaining why. ''' return None Parei por aqui porque não sei mais onde procurar. Alguém tem alguma idéia de onde realmente está vindo esse erro, para que eu possa elaborar uma rotina adequada para validação de email. Zénrique. Traceback (innermost last): * Module ZPublisher.Publish, line 101, in publish * Module ZPublisher.mapply, line 88, in mapply * Module ZPublisher.Publish, line 39, in call_object * Module Products.CMFFormController.FSControllerPageTemplate, line 98, in __call__ * Module Products.CMFFormController.BaseControllerPageTemplate, line 39, in _call * Module Products.CMFFormController.ControllerBase, line 243, in getNext * Module Products.CMFFormController.Actions.TraverseTo, line 36, in __call__ * Module ZPublisher.mapply, line 88, in mapply * Module ZPublisher.Publish, line 39, in call_object * Module Products.CMFFormController.FSControllerPythonScript, line 105, in __call__ * Module Products.CMFFormController.Script, line 141, in __call__ * Module Products.CMFCore.FSPythonScript, line 104, in __call__ * Module Shared.DC.Scripts.Bindings, line 306, in __call__ * Module Shared.DC.Scripts.Bindings, line 343, in _bindAndExec * Module Products.CMFCore.FSPythonScript, line 160, in _exec * Module None, line 18, in register <FSControllerPythonScript at /saes/register> Line 18 * Module Products.CMFCore.RegistrationTool, line 125, in addMember ValueError: You must enter a valid email address. Para enviar uma mensagem: zope-pt@yahoogrupos.com.br Para desistir envie uma mensagem em branco para: [EMAIL PROTECTED] Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/zope-pt/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html