Description

I am unable to delete any ACL protected page on http://master.moinmo.in. I have ACL rights to do so, but the deletion ends with error: "SaveError has occured in PageEditor.deletePage. We need locking there."

Steps to reproduce

  1. Create page with ACL, for example http://master.moinmo.in/TestingPageWithACL. Let's say #acl MoinPagesEditorGroup:read,write,delete,revert All:read

  2. Say to user without admin rights who can edit this page (somebody in EditorGroup) do delete it

  3. He/she get this error

Example

I personaly want to delete http://master.moinmo.in/HelpZacatecnici and I can't.

Component selection

I think it's in PageEditor.py

Details

I don't know if I have current source code, but:

Probably in function saveText, which is called by deletePage(). There is a ACL control in form:

    acl = self.getACL(request)
    if (not request.user.may.admin(self.page_name) and
      parseACL(request, newtext) != acl and
      action != "SAVE/REVERT"):
        msg = _("You can't change ACLs on this page since you have no admin rights on it!")
        raise self.NoAdmin, msg

And because the newtext is set to u"deleted\n", there isn't any ACL declaration so there is an ACL change which I, as standard user, can't do.

Workaround

IMHO: Change code to skip ACL control when action is DELETE, probably the same way how it's done in case of revert.

Discussion

I just had it at http://master19.moinmo.in/DlaczegoWikiDziaƂa?action=DeletePage

Plan


CategoryMoinMoinBug

MoinMoin: MoinMoinBugs/CanNotDeleteAPage-SaveError (last edited 2009-04-19 11:53:02 by RadomirDopieralski)