1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/PKG-INFO Sat Oct 15 19:20:52 2011 +0200
1.3 @@ -0,0 +1,22 @@
1.4 +Metadata-Version: 1.1
1.5 +Name: ApproveChanges
1.6 +Version: 0.1
1.7 +Author: Paul Boddie
1.8 +Author-email: paul at boddie org uk
1.9 +Maintainer: Paul Boddie
1.10 +Maintainer-email: paul at boddie org uk
1.11 +Home-page: http://moinmo.in/ActionMarket/ApproveChanges
1.12 +Download-url: http://moinmo.in/ActionMarket/ApproveChanges?action=AttachFile&do=view&target=ApproveChanges-0.1.tar.bz2
1.13 +Summary: Queue untrusted page changes for approval
1.14 +License: GPL (version 2 or later)
1.15 +Description: The ApproveChanges action for MoinMoin, along with the queue_for_review event
1.16 + handler and supporting library, provides a way for contributions to a Wiki
1.17 + made by anonymous or untrusted users to be queued for review and approval by
1.18 + trusted reviewers.
1.19 +Keywords: MoinMoin Wiki approval moderation
1.20 +Requires: MoinMoin
1.21 +Classifier: Development Status :: 3 - Alpha
1.22 +Classifier: License :: OSI Approved :: GNU General Public License (GPL)
1.23 +Classifier: Programming Language :: Python
1.24 +Classifier: Topic :: Internet :: WWW/HTTP
1.25 +Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2.2 +++ b/README.txt Sat Oct 15 19:20:52 2011 +0200
2.3 @@ -0,0 +1,156 @@
2.4 +Introduction
2.5 +------------
2.6 +
2.7 +The ApproveChanges action for MoinMoin, along with the queue_for_review event
2.8 +handler and supporting library, provides a way for contributions to a Wiki
2.9 +made by anonymous or untrusted users to be queued for review and approval by
2.10 +trusted reviewers.
2.11 +
2.12 +After installation, some Wiki configuration is required to make sure that the
2.13 +queuing and approval mechanisms function correctly. See "Configuration" below
2.14 +for more information.
2.15 +
2.16 +Pre-Installation Tasks
2.17 +----------------------
2.18 +
2.19 +Before installing the software, create a new user who will be responsible for
2.20 +queuing untrusted changes. This user will be used by the software internally,
2.21 +and it should never be necessary to log in manually as this user to perform
2.22 +tasks.
2.23 +
2.24 +Adding a new user can be done using the moin program as follows:
2.25 +
2.26 + moin --config-dir=path-to-wikiconfig account create \
2.27 + --name=ApprovalQueueUser --email=... --password=...
2.28 +
2.29 +The ... values should be substituted with acceptable values. Beware that
2.30 +MoinMoin insists on distinct e-mail addresses. Beware also that providing a
2.31 +password on the command line can be a risk on multi-user systems.
2.32 +
2.33 +Installation
2.34 +------------
2.35 +
2.36 +To install the software, consider using the moinsetup tool. See the
2.37 +"Recommended Software" section below for more information.
2.38 +
2.39 +With moinsetup and a suitable configuration file, the installation is done as
2.40 +follows with $ACDIR referring to the ApproveChanges distribution directory
2.41 +containing this README.txt file:
2.42 +
2.43 + python moinsetup.py -f moinsetup.cfg -m install_extension_package $ACDIR
2.44 + python moinsetup.py -f moinsetup.cfg -m install_actions $ACDIR/actions
2.45 + python moinsetup.py -f moinsetup.cfg -m install_event_handlers $ACDIR/events
2.46 +
2.47 +The first command above uses the setup.py script provided as follows:
2.48 +
2.49 + python setup.py install --prefix=path-to-moin-prefix
2.50 +
2.51 +The second and third commands install the action and event handler
2.52 +respectively.
2.53 +
2.54 +Useful Pages
2.55 +------------
2.56 +
2.57 +The pages directory contains a selection of useful pages using a syntax
2.58 +appropriate for use with MoinMoin 1.6 or later. These pages can be created
2.59 +through the Wiki and their contents copied in from each of the files. An
2.60 +easier installation method is to issue the following commands:
2.61 +
2.62 + python moinsetup.py -f moinsetup.cfg -m make_page_package $ACDIR/pages pages.zip
2.63 + python moinsetup.py -f moinsetup.cfg -m install_page_package pages.zip
2.64 +
2.65 +You may need to switch user in order to have sufficient privileges to copy the
2.66 +page package into the Wiki. For example:
2.67 +
2.68 + sudo -u www-data python moinsetup.py -f moinsetup.cfg -m install_page_package pages.zip
2.69 +
2.70 +Resource Pages
2.71 +--------------
2.72 +
2.73 +In order to assign Wiki users to particular roles, some resource pages must be
2.74 +set up in a Wiki. For this purpose, the resource_pages directory contains
2.75 +example pages defining the membership of two groups:
2.76 +
2.77 + ApprovedGroup: the approved users group; users whose changes do not
2.78 + need to approved and who can edit the Wiki normally
2.79 +
2.80 + PageReviewersGroup the reviews group; users who can review the changes
2.81 + made by untrusted users
2.82 +
2.83 +Once installed, these group pages should be populated with real user
2.84 +identities or other group names. See the following page for more information:
2.85 +
2.86 + http://moinmo.in/HelpOnGroups
2.87 +
2.88 +Without any usernames in the group pages, all users who are not nominated as
2.89 +superusers will have their edits intercepted by the change queuing mechanism,
2.90 +and only superusers will be able to review changes.
2.91 +
2.92 +To install the resource pages, use the following commands:
2.93 +
2.94 + python moinsetup.py -f moinsetup.cfg -m make_page_package $ACDIR/resource_pages resource_pages.zip
2.95 + python moinsetup.py -f moinsetup.cfg -m install_page_package resource_pages.zip
2.96 +
2.97 +You may need to switch user in order to have sufficient privileges to copy the
2.98 +page package into the Wiki. For example:
2.99 +
2.100 + sudo -u www-data python moinsetup.py -f moinsetup.cfg -m install_page_package resource_pages.zip
2.101 +
2.102 +Configuration
2.103 +-------------
2.104 +
2.105 +Once the event handler has been installed, all page saving operations will be
2.106 +affected by its operation. With no further configuration, it is most likely
2.107 +that only superusers will be able to save changes to Wiki pages, and even the
2.108 +queuing of changes will not function properly.
2.109 +
2.110 +Thus, it becomes necessary to change the Wiki configuration to enable the
2.111 +successful queuing of changes by changing the acl_rights_before configuration
2.112 +setting, adding the following rule:
2.113 +
2.114 + ApprovalQueueUser:write,admin
2.115 +
2.116 +This will let the special internal Wiki user responsible for queuing changes
2.117 +(see "Pre-Installation Tasks") save and define an ACL on a page saved by an
2.118 +untrusted user. See the following page for more information on access control
2.119 +lists (ACLs):
2.120 +
2.121 + http://moinmo.in/HelpOnAccessControlLists
2.122 +
2.123 +Recommended Software
2.124 +--------------------
2.125 +
2.126 +See the "Dependencies" section below for essential software.
2.127 +
2.128 +The moinsetup tool is recommended for installation since it aims to support
2.129 +all versions of MoinMoin that are supported for use with this software.
2.130 +
2.131 +See the following page for information on moinsetup:
2.132 +
2.133 +http://moinmo.in/ScriptMarket/moinsetup
2.134 +
2.135 +Contact, Copyright and Licence Information
2.136 +------------------------------------------
2.137 +
2.138 +See the following Web page for more information about this work:
2.139 +
2.140 +http://moinmo.in/ActionMarket/ApproveChanges
2.141 +
2.142 +The author can be contacted at the following e-mail address:
2.143 +
2.144 +paul@boddie.org.uk
2.145 +
2.146 +Copyright and licence information can be found in the docs directory - see
2.147 +docs/COPYING.txt and docs/LICENCE.txt for more information.
2.148 +
2.149 +Release Procedures
2.150 +------------------
2.151 +
2.152 +Update the ApproveChanges.py __version__ attribute and the setup.py version
2.153 +details.
2.154 +Change the version number and package filename/directory in the documentation.
2.155 +Update the setup.py and PKG-INFO files.
2.156 +Update the release notes (see above).
2.157 +Tag, export.
2.158 +Archive, upload.
2.159 +Update the ActionMarket (see above for the URL).