Description
The dict_groups on disk cache is not invalidated appropriately impacting the use of ACL groups.
Steps to reproduce
- Modify a Group.
- Note that the dict_groups is not updated in a timely manner.
Example
Details
MoinMoin Version |
moin 1.3.1 |
OS and Version |
Linux 2.4.21-27 |
Python Version |
Python 2.4 |
Server Setup |
Apache 2.0.52 |
Server Details |
|
Workaround
*** wikidicts.py 2005-01-19 10:00:10.000000000 -0800 --- wikidicts.py.orig 2004-12-08 02:28:32.000000000 -0800 *************** *** 325,331 **** dump = 1 # everything is ok and nothing changed ! if (lastchange < self.namespace_timestamp and dump==0): return # FIXME: Should be compiled only once, and cached in cfg --- 325,332 ---- dump = 1 # everything is ok and nothing changed ! if (lastchange < wikiutil.timestamp2version(self.namespace_timestamp) ! and dump==0): return # FIXME: Should be compiled only once, and cached in cfg *************** *** 333,339 **** group_re = re.compile(self.cfg.page_group_regex) # check for new groups / dicts from time to time... ! if now - self.namespace_timestamp >= wikiutil.timestamp2version(60): # Get all pages in the wiki - without user filtering pagelist = self.request.rootpage.getPageList(user='') --- 334,340 ---- group_re = re.compile(self.cfg.page_group_regex) # check for new groups / dicts from time to time... ! if now - self.namespace_timestamp >= 60: # Get all pages in the wiki - without user filtering pagelist = self.request.rootpage.getPageList(user='') *************** *** 369,375 **** # check if groups / dicts have been modified on disk for pagename in self.dictdict: ! if Page.Page(self.request, pagename).mtime_usecs() >= self.pageupd ate_timestamp: if dict_re.search(pagename): self.adddict(self.request, pagename) elif group_re.search(pagename): --- 370,376 ---- # check if groups / dicts have been modified on disk for pagename in self.dictdict: ! if Page.Page(self.request, pagename).mtime_usecs() >= wikiutil.tim estamp2version(self.pageupdate_timestamp): if dict_re.search(pagename): self.adddict(self.request, pagename) elif group_re.search(pagename):
Plan
- Priority:
- Assigned to:
Status: Duplicate of MoinMoinBugs/AclChangesNotAlwaysAccepted