[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