[Checkins] SVN: grokui.admin/branches/ulif-securitynotifications/src/grokui/admin/security.py Add viewlet for security notifications.
Uli Fouquet
uli at gnufix.de
Sun Dec 21 19:12:41 EST 2008
Log message for revision 94234:
Add viewlet for security notifications.
Changed:
U grokui.admin/branches/ulif-securitynotifications/src/grokui/admin/security.py
-=-
Modified: grokui.admin/branches/ulif-securitynotifications/src/grokui/admin/security.py
===================================================================
--- grokui.admin/branches/ulif-securitynotifications/src/grokui/admin/security.py 2008-12-21 23:38:01 UTC (rev 94233)
+++ grokui.admin/branches/ulif-securitynotifications/src/grokui/admin/security.py 2008-12-22 00:12:41 UTC (rev 94234)
@@ -21,10 +21,36 @@
import urllib2
import urlparse
from zope.app.appsetup.interfaces import IDatabaseOpenedWithRootEvent
+from zope.app.folder.interfaces import IRootFolder
from zope.component import adapter, provideHandler
from persistent import Persistent
from grokui.admin.interfaces import ISecurityNotifier
+class SecurityScreen(grok.ViewletManager):
+ """A viewlet manager that keeps security related notifications.
+ """
+ grok.name('grokadmin_security')
+ grok.context(IRootFolder)
+
+class SecurityNotificationViewlet(grok.Viewlet):
+ """Viewlet displaying notifications from a local `SecurityNotifier`.
+ """
+ grok.context(IRootFolder)
+
+ @property
+ def security_notifier(self):
+ """Get a local security notifier.
+
+ The security notifier is installed as a local utility by an
+ event handler in the security module.
+ """
+ site = grok.getSite()
+ site_manager = site.getSiteManager()
+ return site_manager.queryUtility(ISecurityNotifier, default=None)
+
+ def render(self):
+ return self.security_notifier.getNotification()
+
class SecurityNotifier(Persistent):
"""A security notifier.
More information about the Checkins
mailing list