Workflow Plone
Autor: Dinky Doo | Publicado: 2007-09-28T11:31:00-03:00

Estudando o Workflow Plone 2.5Por Marcello Bax(adaptado de http://www.leonardomiranda.com.br/artigos/estudando-o-plone-workflow)Plone WorkflowTodos 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 ObjetosNa 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 comoesboço público podem ser acessados através da URL ou através do sistema de busca doPlone. Porém não aparecem na árvore de navegação. Estes Objetos só podem ser editadospor seus donos ou por administradores do portal Plone.Pendente: Um objeto vai para o estado Pendente geralmente por uma ação do dono dodocumento, membro do site, que envia o documento para publicação. Quando umdocumento é enviado para publicação, ele se torna pendente, permitindo que os revisorespossam publicar ou rejeitar a publicação do documento. Quando um objeto é definido comopendente ele somente pode ser editado por usuários no papel manager (administradores dosite).Publicado: Um objeto publicado fica visível para todos os visitantes do site. Quando umitem 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 umitem é publicado, ele somente pode ser editado pelo manager do site ou pode ser retraído evoltar novamente ao estado esboço público para ser editado, ai sim, novamente enviadopara aprovação e ser publicado.Privado: Objetos em estado privado só podem ser visualizados e editados por seus donos epor managers que tenham acesso a pasta em questão. Eles não aparecem na lista de buscase 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 cadausuário dentro do Plone pode fazer. Quando o Plone é instalado, por padrão existem ospapeis: anônimos, membros, dono, revisor e gerente (anonymous, member, owner, reviewere 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ópriaspreferências.Revisores (reviewer) – São usuários que além de serem membros, são revisores. Este papelpermite que o usuário publique ou rejeite o pedido de publicação de conteúdos de outrosusuários. Quando um usuário no papel revisor loga no site e existem documentos pendentesaguardando 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 seuconteúdo, podendo modificar a vontade o seu conteúdo.Gerente (manager) – Podem visualizar todos os tipos de conteúdos em todos os seusestados, podendo publicar diretamente documentos, ou rejeitá-los. Podem também incluir,remover e adicionar papéis a outros usuários.Papéis LocaisPapéis Locais (local roles) – Servem para determinar que somente em algumas áreas dosite, um determinado usuário tem um papel específico. Cria um papel local e atribui-se aousuá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 automaticamenteherdadas 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 abusca pelo usuário desejado.Baseado em seus papéis você pode adicionar determinados papéis. Vamos atribuir o papelde dono da pasta Minha Pasta do usuário leo para o frank. Selecione o usuário Frank, opapel 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 ObjetosComo foi falado anteriormente, o Plone possui um mecanismo para revisar e publicarobjetos. Vejamos tal procedimento, passo a passo.Utilizando um usuário membro, sem o papel de revisor, foi criado um documento. Clicandoem 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 darpermissão de revisor de todo site a um outro usuário. Para tal acesse o link “configuraçãodo 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 checkboxrevisor 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 direitoapareceu 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