Estudando o Workflow Plone 2.5
Plone Workflow
Todos os objetos do Plone estão dentro
de um sistema de Workflow, que nada mais é que um sistema de fluxo de
informações, onde a informação vai sendo direcionada de acordo com
regras para o conteúdo.
O Plone trata o Workflow de uma maneira
simples, onde os usuários tem User Roles, que são os papéis do Plone.
Estes papéis permitem que se alterem os estados dos objetos,
funcionando tudo isso através de transições.
Porém, vamos por
partes, para termos um bom entendimento de todo o seu funcionamento,
passando por todas as partes, desde definições de papéis até os estados
dos objetos.
Estados dos Objetos
Todos os objetos
padrões de um site Plone, possuem alguns estados em comum. E estes
estados são: esborço público, pendente, publicado e privado.
Desenvolvedores pode criar novos Estados, porém esse assunto foge de nosso objetivo de curso. Vamos detalhar os estados agora:
Esborço público: Este
é o estado padrão dos objetos no Plone. Objetos definidos como esborço
público podem ser acessados através da url ou através do sistema de
busca do Plone. Porém não aparecem na árvore de navegação. Estes
Objetos só podem ser editados por seus donos ou por administradores do
portal Plone.

Pendente:
Este estado é definido pelo dono do documento, geralmente membros, que
enviam o documento, com o objetivo de publicar o documento. Quando um
documento é enviado, ele vira pendente, e passa a permitir que os
revisores possam publicar ou rejeitar a publicação do documento. Quando
um objeto é definido como pendente ele somente pode ser editado por
managers (administradores do site).

Publicado: Um
objeto publicado fica visivel para todos os visitantes do site. Quando
um item de news (notícia) é publicado ele aparece no menu
news(notícias) do Portal Plone. Quando uma pasta é publicada, ele
também aparece no Portlet de Navegação. Quando um item é publicado, ele
somente pode ser editado pelo manager do site ou poder ser retraido e
voltar novamente ao estado visível para ser editado, ai sim, novamente
enviado para aprovação e ser publicado.

Privado:
Objetos em estado privado só podem ser visualizados e editados por seus
donos e por managers que tenham acesso a pasta em questão. Eles não
aparecem na lista de buscas e na lista do Porltet de Navegação.

Roles / Local Roles (papéis/papéis locais)
Dentro
de um site Plone, existem diversos papéis (roles) que permitem dizer o
que cada usuário dentro do Plone pode fazer. Quando o Plone é
instalado, por padrão existem: anônimos, membros, dono, revisor e
gerente (anonymous, member, owner, reviewer e manager).
Roles
Anônimo (anonymous) – Todo visitante de um site plone e não tenha feito o login, automaticamente recebe o papel de anônimo.
Membros (members) – Membros são os usuários que fizeram o login em um site Plone. Usuários com papéis de membro podem adicionar conteúdos e mudar as suas próprias preferências.
Revisores (reviewer) – São usuários
que além de serem membros, são revisores. Este papel permite que se
publique ou rejeite o pedido de publicação de conteúdos de outros
sites. Quando um revisor loga no site e tem documentos pendentes
aguardando aprovação, uma lista de revisão aparece, como esta abaixo:

Dono (owner) – Todo membro que cria um conteúdo dentro do Plone, se torna dono de seu conteúdo. Podendo modificar a vontade o seu conteúdo.
Gerente (manager)
– Podem visualizar todos os tipos de conteúdos em todos os seus
estados, podendo publicar diretamente documentos, ou rejeita-los. Podem
também incluir, remover e adicionar papéis a outros usuários.
Papéis Locais
Papéis Locais (local roles)
– Em algum momento, pode se determinar que somente em algumas áreas do
site, um determinado usuário tenha um papel em específico. Nesse caso
se cria um papel local e atribui ao usuário a permissão desejada.
Vamos atribuir o papel de manager para um outro membro dentro da pasta Minha Pasta:

Vamos clicar em compartilhamento:

Uma tela semelhante a essa vai aparecer:

Vamos trabalhar todas as opções por partes.
Papéis herdados:
Baseado no sistema de aquisição do Zope, todas as permissões de nível
superior, são automaticamente herdadas para seus objetos. Todos os
objetos pai passam sua herença a seus objetos filhos, onde no caso são
os membros. Objetos filhos. Esta permissão só pode ser mudada por seu
Dono.
Papéis locais: São papéis atribuidos a sua pasta por você ou por um manager(gerente).
Para
adicionar outro usuário com algum papel em específico, basta que no
formulário, como esse abaixo, colocar o nome do usuário ou clicar em
executar busca, que ele mostra todos os usuários

Baseado
em seus papéis você pode adicionar determinados papéis. Vamos atribuir
o papel de dono da pasta Minha Pasta do usuário leo para o frank.
Selecione o usuário Frank, o papel Dono e clique em atribuir papel.
Perceba que mais uma papel apareceu no quadro de permissões:

Podemos realizar essa operação com grupos também.

Revisando e Publicando Objetos
Como
foi falado anteriormente, o Plone possui um mecanismo para revisar e
publicar objetos. Vamos fazer todo esse procedimento, passo a passo.
Utilizando
um usuário membro, sem o papel de revisor, foi criado um documento.
Clicando em sua lista de estados e clique em enviar. Estou usando o
usuário leo.

Agora o nosso estado do documento foi mudado para Pendente:

Agora,
vamos logar no Plone com o usuário admin ( o administrador do Plone), e
vamos dar permissão de revisor de todo site a um outro usuário.
Acesse o botão configuração do site, no topo do seu plone site e depois acesse a opção Administração de usuários e grupos:

Digite
o nome do usuário que deseja setar a permissão de revisor do site.
Selecione o checkbox revisor para o usuário e clique na opção aplicar
alterações:
Agora,
saia do usuário admin, e faça o logon com o usuário Frank. Veja que do
seu lado direito apareceu uma janela de lista de revisão.

Clicando no item, podemos escolher ou aprovar ou rejeitar a solicitação:

Clicando em publicar aprovamos a solicitação e clicando em rejeitar, cancelamos a solicitação.
Clique aqui para saber mais sobre o workflow do plone.