sexta-feira, 28 de setembro de 2007

Workflow Plone

Estudando o Workflow Plone 2.5
Por Marcello Bax
(adaptado de http://www.leonardomiranda.com.br/artigos/estudando-o-plone-workflow)

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 acordocom certas regras. Essas regras são representadas por um grafo, formado por estados e transições entre estados.
O Plone trata o Workflow de uma maneira simples, onde os usuários são organizados em papéis (User Roles). Estes papéis têm determinadas permissões que os permitem alterar os estados dos objetos através de transições entre estados.
Estados dos Objetos
Na configuração padrão do Plone, todos os objetos de um site possuem estados em comum. Estes estados são: esborço público, pendente, publicado e privado.
Desenvolvedores podem criar novos estados, porém esse assunto não será tratado aqui. Vamos detalhar os estados agora:
Esboço público:


Este é o estado padrão dos objetos no Plone. Objetos definidos como
esboç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: Um objeto vai para o estado Pendente geralmente por uma ação do dono do
documento, membro do site, que envia o documento para publicação. Quando um
documento é enviado para publicação, ele se torna pendente, permitindo que os revisores
possam publicar ou rejeitar a publicação do documento. Quando um objeto é definido como
pendente ele somente pode ser editado por usuários no papel manager (administradores do
site).
Publicado: Um objeto publicado fica visível 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 pode ser retraído e
voltar novamente ao estado esboço público 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 os
papeis: anônimos, membros, dono, revisor e gerente (anonymous, member, owner, reviewer
e manager).
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 o usuário publique ou rejeite o pedido de publicação de conteúdos de outros
usuários. Quando um usuário no papel revisor loga no site e existem documentos pendentes
aguardando aprovação, uma lista de revisão aparece, como 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 rejeitá-los. Podem também incluir,
remover e adicionar papéis a outros usuários.
Papéis Locais
Papéis Locais (local roles) – Servem para determinar que somente em algumas áreas do
site, um determinado usuário tem um papel específico. Cria um papel local e atribui-se ao
usuário a permissão desejada naquele local e nas pastas filhas.
Vamos atribuir o papel de manager para um outro membro dentro da pasta Minha Pasta:
Para tal, clica-se em compartilhamento:
Uma tela semelhante a essa vai aparecer:
Vejamos as opções por partes.
Papéis herdados: Baseado no sistema de aquisição do Zope (não tratado neste documento),
todas as permissões de nível superior (na hierarquia de pastas do site), são automaticamente
herdadas para seus objetos filhos. Um objeto pai passa a herença a seus objetos filhos.
Papéis locais: São papéis atribuídos à pasta local pelo dono da pasta ou por um manager
(gerente).
Para adicionar outro usuário com algum papel local específico, basta clicar em executar a
busca pelo usuário desejado.
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 um papel apareceu no quadro de permissões:
Pode-se 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. Vejamos tal procedimento, passo a passo.
Utilizando um usuário membro, sem o papel de revisor, foi criado um documento. Clicando
em sua lista de estados, clique em enviar. O usuário leo está sendo usado.
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. Para tal acesse o link “configuração
do site”, no topo a direita do site e depois acesse a opção Administração de usuários e grupos:
Digite o nome do usuário que deseja configurar como 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 lado direito
apareceu uma janela de lista de revisão.
Clicando no item, podemos optar por aprovar ou rejeitar a solicitação:
Clicando em publicar aprova-se a solicitação e clicando em rejeitar, cancela-se a solicitação.
FIM

Nenhum comentário:

Powered By Blogger