[Products.Silva][Sylvain Viollon] Make it work on partially inst...
[email protected] Mon, 02 Sep 2013 14:52:51 +0200
| Newsgroups | gmane.comp.web.zope.silva.cvs |
|---|---|
| Message-ID | <[email protected]> |
author: Sylvain Viollon
date: Mon Sep 02 14:52:31 2013 +0200
revision: 11858:25cf922b3707 in Products.Silva
branch: 2.4
details: https://hg.infrae.com/Products.Silva?cmd=changeset;node=25cf922b3707
modified: Products/Silva/Security/changes.py
added:
removed:
log: Make it work on partially installed sites.
diffstat:
Products/Silva/Security/changes.py | 25 ++++++++++++++-----------
1 files changed, 14 insertions(+), 11 deletions(-)
diffs (51 lines):
diff -r 31f7c4e51cb7 -r 25cf922b3707 Products/Silva/Security/changes.py
--- a/Products/Silva/Security/changes.py Mon Sep 02 14:00:56 2013 +0200
+++ b/Products/Silva/Security/changes.py Mon Sep 02 14:52:31 2013 +0200
@@ -10,7 +10,7 @@
from silva.core.interfaces import IUpgradeTransaction
from silva.core.services.delayed import Task
from silva.core.services.interfaces import IMemberService, IMetadataService
-from zope.component import getUtility
+from zope.component import queryUtility
class Key(object):
@@ -59,10 +59,12 @@
# Don't do things.
pass
+ members = queryUtility(IMemberService)
+ if members is None:
+ return
now = DateTime()
login = getSecurityManager().getUser().getId()
- members = getUtility(IMemberService)
- metadata = getUtility(IMetadataService)
+ metadata = queryUtility(IMetadataService)
for change, created in self._changes.iteritems():
# Update author
@@ -70,14 +72,15 @@
user = members.get_cached_member(login, location=change.content)
change.content.set_last_author_info(user)
- # Update metadata
- binding = metadata.getMetadata(change.content)
- if binding is None or binding.read_only:
- continue
- values = {'modificationtime': now}
- if created:
- values['creationtime'] = now
- binding.setValues('silva-extra', values)
+ if metadata is not None:
+ # Update metadata
+ binding = metadata.getMetadata(change.content)
+ if binding is None or binding.read_only:
+ continue
+ values = {'modificationtime': now}
+ if created:
+ values['creationtime'] = now
+ binding.setValues('silva-extra', values)
@grok.subscribe(IUpgradeTransaction)