INITIAL PROBLEM

Usually JSPWiki grants no permissions for deleting or renaming pages to any user group but the administrator due to the danger of spam or misuse of these features. But especially these users could take away a lot of work from the administrator if there was a secure way to delete and rename pages.

IDEA

The idea was to develop versioned alternatives of the delete and rename features. Pages that are deleted or renamed with the versioned operations should not be deleted, but hidden from the user. So it would easily be possible to undo these operations. While giving the users the possibility to help with wiki gardening, there would be no big issue with wiki vandals because they can't delete content permanently.

FEATURE OVERVIEW

versioned delete operation for wikipages and attachments versioned rename operation for wikipages timeline-plugin to show all changes to wikipages or attachments

The timeline plugin is similar to the recent changes plugin. This plugin for example shows a rename with an update of the referrers as ONE operation and not as multiple changes of pages. This makes the plugin much more useful, because it doesn't get cluttered that much.

It also shows pages which were deleted through the versioned delete feature and it's possible to undo the versioned operations through this plugin. The other possibility to undo these operations is directly on the according wikipage.

IMPLEMENTATION

The versioned operations mainly are implemented through several page attributes.

The conventional delete and rename features of course still exist and still can be reserved to special user groups. When using these conventional features all hidden pages according to the changed wikipage will be deleted, so there are no inaccessible leftovers due to the versioned operations.

Supported providers are by now the VersioningFileProvider and the FileSystemProvider. Due to the lack of versioning, the FileSystemProvider only supports the core functions.

JSPWiki interfaces were changed only minimal. No method signatures were changes in the WikiEngine or in any of the providers.

--B_Mock, 04-January-2007


Thanks heaps! I have a couple of comments though:

  • Indentation in the files made them rather difficult to read. Please use only spaces to indent!
  • This patch is *huge*, and as such, difficult to integrate.
  • Storing attributes starting with "_" is a kludge. Yes, I know, we have no other way to do this right now. Hopefully 3.0 will solve this.
  • I don't like making "delete" and "versioned delete" different operations. They should be one and the same: a delete is a delete, whether it gets versioned or not. I understand you wanted to minimize changes, but I don't think this is a good strategy for the future.

But don't get depressed: this is a great start! :-)

-- JanneJalkanen

Add new attachment

Only authorized users are allowed to upload new attachments.

List of attachments

Kind Attachment Name Size Version Date Modified Author Change note
 
RecentChangesPluginDiff 5.1 kB 1 10-Jan-2007 11:03 Benjamin Mock Diff of RecentChangesPlugin adapted to versioned delete/rename
 
diffs 148.6 kB 2 05-Jan-2007 09:21 Benjamin Mock replaces tabs by spaces
« This page (revision-2) was last changed on 04-Jan-2007 19:54 by JanneJalkanen