--- myst: html_meta: "description": "Controlling security with workflow" "property=og:description": "Controlling security with workflow" "property=og:title": "" "keywords": "" --- (workflow-label)= # Plone Workflow About : Controlling security with workflow Level : All levels Status : Work in progress ```{warning} This chapter is still work in progress! ``` Workflow is used in Plone for three distinct, but overlapping purposes: - To keep track of metadata, chiefly an object’s *state*; - To create content review cycles and model other types of processes; - To manage object security. When writing content types, we will often create custom workflows to go with them. Plone’s workflow system is known as DCWorkflow. It is a *states-and-transitions* system, which means that your workflow starts in a particular *state* (the *initial state*) and then moves to other states via *transitions* (also called *actions* in CMF). When an object enters a particular state (including the initial state), the workflow is given a chance to update **permissions** on the object. A workflow manages a number of permissions – typically the “core” CMF permissions like {guilabel}`View`, {guilabel}`Modify portal content` and so on – and will set those on the object at each state change. Note that this is event-driven, rather than a real-time security check: only by changing the state is the security information updated. This is why you need to click {guilabel}`Update security settings` at the bottom of the `portal_workflow` screen in the ZMI when you change your workflows’ security settings and want to update existing objects. ```{toctree} :caption: Workflow :hidden: true :maxdepth: 3 introduction roles-and-permissions local-roles dynamic-roles placeful-workflow workflow-chains workflow-variables generic-setup-export-import ``` ```{toctree} :caption: Plone Trainings :hidden: true :maxdepth: 3 :name: plone-trainings-workflow-toc ``` TODO: - Add a use case story thread that runs through each of the sections to illustrate how each concept works - Add in more screen shots of the {term}`TTW` (Trough-The_web) experience of using workflows in Plone