Listando os Membros do portal
Neste artigo, vou fazer uma apenas uma amostra de como é possivel lista os membros do portal usando um Page Template e Script Python.
O primeiro passo é criar um Page Template chamado usuarios, com este código:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
lang="en"
metal:use-macro="here/main_template/macros/master"
i18n:domain="plone">
<head>
<metal:block fill-slot="top_slot"
tal:define="dummy python:request.set('disable_border',1)" />
</head>
<body>
<metal:main fill-slot="main">
<h1>Lista de Usuários</h1>
<span tal:replace="structure context/lista_usuarios" />
</metal:main>
</body>
</html>
Este é um Page Template simples usando o slot main do main_template e fazendo uma chamda de um Script Python chamado: lista_usuarios.
O segundo passo é criar o nosso Script Python chamdo lista_usuarios, com o código abaixo:#importa o getToolByName
from Products.CMFCore.utils import getToolByName
#acessa a tool portal_membership
portal_membership = getToolByName(context, 'portal_membership')
html = ""
#lista os usuarios do metodo listMemberIds
for i in portal_membership.listMemberIds():
#seta o valor das variaveis
membro = portal_membership.getMemberById(i)
nome = membro.getProperty('fullname', '')
email = membro.getProperty('email', '')
foto = context.portal_membership.getPersonalPortrait(i).absolute_url()
#monta o html do retorno
html = html + "<div class=card>"
html = html + "<img src=%s <br />" %(foto)
html = html + "<span><b>Nome:</b> %s</span><br />" %(nome)
html = html + "<span><b>Email:</b> %s</span>" %(email)
html = html + "</div>"
return html
Depois das nossas páginas criadas, precisamos setar o proxy do script para que todos possam enchergar á página.
Acesse a aba proxy, conforme a figura abaixo:

Selecione as roles que deseja, conforme a figura abaixo:

E agora vamos testar, acesse o seu page template usuarios e clique na aba Test.
E se deu tudo certo, a página vai listar os usuários do portal, com a foto dele, nome e e-mail.
Olhe um exemplo: http://www.leonardomiranda.com.br/colaboradores