Loading...
 

Staging_and_Approval


Introduction


This new feature in 2.x is quite flexible but a little tricky to setup. Please see the documentation: Wiki Page Staging and Approval. This profile is designed to work with Tiki 6.2

This is one configuration among a lot of possible different ones to set a staging/ approval within Tiki. In this case:
  • Anonymous & the Registered group can view the wiki pages (which are approved) but Registered can also comment on pages. Only the Authors and Approvers groups can edit a page. As soon as a page is edited, a page with the same name preceded with * is created. An Author or an Approver can still continue to edit the staging page (with the name beginning with *).
  • The Approvers group can approve a staging page. As soon the page is approved, content and history are copied to the approved page. The staging page is deleted.
  • Permissions over staging and approved pages are done with 2 categories. It is possible to have regular categories (Registered can have tiki_p_view_categories, tiki_p_view_categorized... without breaking the staging feature.


Categories

YAML
objects:
 -
  type: category
  ref: Staging_categ
  data:
   name: Staging
   description: For staging page
 -
  type: category
  ref: Approved_categ
  data:
   name: Approved
   description: For approved pages


Groups & permissions

YAML
permissions:
 Anonymous:
  description: Anonymous visitors
  deny: [ view ]
  objects:
   -
    type: category
    id: $profileobject:Approved_categ$
    allow: [ view ]

 Registered:
  description: Logged in users
  allow:
   -view
   -comment
  objects:
   -
    type: category
    id: $profileobject:Approved_categ$
    allow: [ view ]
 Authors:
  description: Can edit pages -> put them in a staging status.
  allow: 
   -edit
   -wiki_view_history
   -modify_object_categories
  include: Registered
  objects:
   -
    type: category
    id: $profileobject:Staging_categ$
    allow: [ view_category, add_object, remove_object, view, edit, modify_object_categories, wiki_view_history ]
   -
    type: category
    id: $profileobject:Approved_categ$
    allow: [ view_category, view, wiki_view_history ]
 Approvers:
  description: Can approve a staging page
  include: Authors
  allow: [ rename ]
  objects:
   -
    type: category
    id: $profileobject:Approved_categ$
    allow: [ view_category, add_object, remove_object, view, edit, modify_object_categories, rename, wiki_view_history ]
   -
    type: category
    id: $profileobject:Staging_categ$
    allow: [ view_category, add_object, remove_object, view, edit, modify_object_categories, wiki_view_history ]
 Admins:
  include: Approvers


Activating the features

YAML
preferences:
 feature_wiki: y
 feature_categories: y
 feature_wikiapproval: y
 wikiapproval_delete_staging: y
 wikiapproval_prefix: *
 wikiapproval_master_group: Approvers
 wikiapproval_staging_category: $profileobject:Staging_categ$
 wikiapproval_approved_category: $profileobject:Approved_categ$
 feature_user_watches: y 
 feature_group_watches: y



Modules

YAML
objects:
 -
  type: module
  ref: module_categories
  data:
   name: change_categories
   groups: [ Authors ]
   position: right
   order: 10
 -
  type: module
  ref: module_change_category
  data:
   name: change_category
   groups: [ Authors ]
   position: right
   order: 20
 -
  type: module
  ref: module_last_modif_pages
  data:
   name: last_modif_pages
   groups: [ Anonymous, Registered ]
   position: right
   order: 30
 -
  type: module
  ref: module_quick_edit
  data:
   name: quick_edit
   groups: [ Authors ]
   position: right
   order: 40


Users for test


YAML
objects:
 -
  type: user
  data: 
    name: author
    pass: 12345
    groups: [ Authors ]
 -
  type: user
  data: 
    name: approver
    pass: 12345
    groups: [ Approvers ]


Wiki pages


YAML
objects:
  -
    type: wiki_page
    data:
      name: Staging and Approval instructions
      lang: en
      mode: create_or_update
      content: wikicontent:Staging_and_Approval_include




Instructions


YAML
instructions: Staging and Approval instructions
preferences:
 wikiplugin_listpages: y


Todo

  • Create a few test pages to help people get started

Questions

  • How does it deal with translations?