[Checkins] SVN: z3c.layer.pagelet/branches/icemac_login_support/ - use new zope.configuration version which contains exclude directive

Michael Howitz mh at gocept.com
Tue Mar 3 14:44:39 EST 2009


Log message for revision 97451:
  - use new zope.configuration version which contains exclude directive
  - cleaned up dependencies a bit
  - snapshot of login integration
  

Changed:
  U   z3c.layer.pagelet/branches/icemac_login_support/CHANGES.txt
  U   z3c.layer.pagelet/branches/icemac_login_support/buildout.cfg
  U   z3c.layer.pagelet/branches/icemac_login_support/setup.py
  D   z3c.layer.pagelet/branches/icemac_login_support/src/z3c/layer/pagelet/SETUP.cfg
  A   z3c.layer.pagelet/branches/icemac_login_support/src/z3c/layer/pagelet/browser/auth.py
  U   z3c.layer.pagelet/branches/icemac_login_support/src/z3c/layer/pagelet/browser/configure.zcml
  A   z3c.layer.pagelet/branches/icemac_login_support/src/z3c/layer/pagelet/browser/zope.app.security.browser.zcml
  U   z3c.layer.pagelet/branches/icemac_login_support/src/z3c/layer/pagelet/tests/bugfixes.txt
  U   z3c.layer.pagelet/branches/icemac_login_support/src/z3c/layer/pagelet/tests/ftesting.zcml
  A   z3c.layer.pagelet/branches/icemac_login_support/src/z3c/layer/pagelet/tests/login-logout-template.pt

-=-
Modified: z3c.layer.pagelet/branches/icemac_login_support/CHANGES.txt
===================================================================
--- z3c.layer.pagelet/branches/icemac_login_support/CHANGES.txt	2009-03-03 19:43:21 UTC (rev 97450)
+++ z3c.layer.pagelet/branches/icemac_login_support/CHANGES.txt	2009-03-03 19:44:38 UTC (rev 97451)
@@ -5,13 +5,14 @@
 1.2.2 (unreleased)
 ------------------
 
-- Nothing changed yet.
+- Updated tests to use new ``zope.configuration``which containts the
+  exclude directive.
 
 
 1.2.1 (2009-02-21)
 ------------------
 
-- Release 1.2.0 was missing the test file for the secrity issue.
+- Release 1.2.0 was missing the test file for the security issue.
 
 
 1.2.0 (2009-02-21)

Modified: z3c.layer.pagelet/branches/icemac_login_support/buildout.cfg
===================================================================
--- z3c.layer.pagelet/branches/icemac_login_support/buildout.cfg	2009-03-03 19:43:21 UTC (rev 97450)
+++ z3c.layer.pagelet/branches/icemac_login_support/buildout.cfg	2009-03-03 19:44:38 UTC (rev 97451)
@@ -15,7 +15,6 @@
 eggs = z3c.layer.pagelet [test]
 defaults = ['--tests-pattern', '^f?tests$', '--coverage', '../../coverage']
 
-
 [coverage-report]
 recipe = zc.recipe.egg
 eggs = z3c.coverage

Modified: z3c.layer.pagelet/branches/icemac_login_support/setup.py
===================================================================
--- z3c.layer.pagelet/branches/icemac_login_support/setup.py	2009-03-03 19:43:21 UTC (rev 97450)
+++ z3c.layer.pagelet/branches/icemac_login_support/setup.py	2009-03-03 19:44:38 UTC (rev 97451)
@@ -60,9 +60,7 @@
             'zope.app.testing',
             'zope.app.zcmlfiles',
             'zope.app.twisted',
-            'zope.viewlet',
-            'z3c.pagelet',
-            'zc.configuration',
+            'zope.configuration>=3.5.0',
             'zope.component',
             'zope.app.component',
             ],
@@ -74,6 +72,8 @@
         'zope.app.publisher',
         'zope.app.security',
         'zope.app.exception',
+        'z3c.pagelet',
+        'zope.viewlet',
         ],
     zip_safe = False,
 )

Deleted: z3c.layer.pagelet/branches/icemac_login_support/src/z3c/layer/pagelet/SETUP.cfg
===================================================================
--- z3c.layer.pagelet/branches/icemac_login_support/src/z3c/layer/pagelet/SETUP.cfg	2009-03-03 19:43:21 UTC (rev 97450)
+++ z3c.layer.pagelet/branches/icemac_login_support/src/z3c/layer/pagelet/SETUP.cfg	2009-03-03 19:44:38 UTC (rev 97451)
@@ -1,3 +0,0 @@
-<data-files zopeskel/etc/package-includes>
-  z3c.layer.pagelet-*.zcml
-</data-files>

Added: z3c.layer.pagelet/branches/icemac_login_support/src/z3c/layer/pagelet/browser/auth.py
===================================================================
--- z3c.layer.pagelet/branches/icemac_login_support/src/z3c/layer/pagelet/browser/auth.py	                        (rev 0)
+++ z3c.layer.pagelet/branches/icemac_login_support/src/z3c/layer/pagelet/browser/auth.py	2009-03-03 19:44:38 UTC (rev 97451)
@@ -0,0 +1,135 @@
+##############################################################################
+#
+# Copyright (c) 2003-2009 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""Login and Logout screens
+
+$Id$
+"""
+import urllib
+import zope.app.pagetemplate
+import zope.app.publisher.interfaces.http
+import zope.app.security.interfaces
+import zope.component
+import zope.i18n
+import zope.i18nmessageid
+import zope.interface
+import zope.viewlet.interfaces
+import zope.viewlet.manager
+import zope.viewlet.viewlet
+
+_ = zope.i18nmessageid.MessageFactory("z3c")
+
+
+class ILoginLogoutViewletManager(zope.viewlet.interfaces.IViewletManager):
+    """ViewletManager for login and logout viewlets."""
+
+
+LoginLogoutViewletManager = zope.viewlet.manager.ViewletManager(
+    'login-logout', ILoginLogoutViewletManager,
+    bases=(zope.viewlet.manager.ConditionalViewletManager,))
+
+
+def authenticated(principal):
+    "Tell whether the principal is authenticated."
+    unauthenticated = zope.app.security.interfaces.IUnauthenticatedPrincipal
+    return not unauthenticated.providedBy(principal)
+
+
+def logout_supported(request):
+    "Tell whether logout is supported."
+    logout = zope.app.security.interfaces.ILogoutSupported(self.request, None)
+    return logout is not None
+
+
+class LoginViewlet(zope.viewlet.viewlet.ViewletBase):
+    """Display login link when user is not logged in."""
+
+    @property
+    def available(self):
+        return not authenticated(self.request.principal)
+
+    def render(self):
+        return u'<a href="%s?nextURL=%s">%s</a>' % (
+                self.viewName,
+                urllib.quote(self.request.getURL()),
+                zope.i18n.translate(
+                    _('[Login]', default='Login'), context=self.request))
+
+
+class LogoutViewlet(zope.viewlet.viewlet.ViewletBase):
+    """Display logout link when user is logged in and logout is supported."""
+
+    @property
+    def available(self):
+        return (
+            authenticated(self.request.principal)
+            and
+            logout_supported(self.request))
+
+    def render(self):
+        return u'<a href="%s?nextURL=%s">%s</a>' % (
+                self.viewName,
+                urllib.quote(self.request.getURL()),
+                zope.i18n.translate(
+                    _('[Logout]', default='Logout'), context=self.request))
+
+
+class HTTPAuthenticationLogin(object):
+
+    zope.interface.implements(zope.app.publisher.interfaces.http.ILogin)
+
+#     confirmation = zope.app.pagetemplate.ViewPageTemplateFile('login.pt')
+#     failed = zope.app.pagetemplate.ViewPageTemplateFile('login_failed.pt')
+
+    def login(self, nextURL=None):
+        # we don't want to keep challenging if we're authenticated
+        if zope.app.security.interfaces.IUnauthenticatedPrincipal.providedBy(
+            self.request.principal):
+            auth = zope.component.getUtility(
+                zope.app.security.interfaces.IAuthentication)
+            auth.unauthorized(self.request.principal.id, self.request)
+            return self.failed()
+        else:
+            if nextURL is None:
+                return self.confirmation()
+            else:
+                self.request.response.redirect(nextURL)
+
+
+class HTTPAuthenticationLogout(object):
+    """Since HTTP Authentication really does not know about logout, we are
+    simply challenging the client again."""
+
+    zope.interface.implements(zope.app.security.interfaces.ILogout)
+
+#     redirect = zope.app.pagetemplate.ViewPageTemplateFile('redirect.pt')
+#     confirmation = zope.app.pagetemplate.ViewPageTemplateFile('logout.pt')
+
+    def __init__(self, context, request):
+        self.context = context
+        self.request = request
+
+    def logout(self, nextURL=None):
+        if zope.app.security.interfaces.IUnauthenticatedPrincipal.providedBy(
+            self.request.principal):
+            pass
+        else:
+            auth = zope.component.getUtility(
+                zope.app.security.interfaces.IAuthentication)
+            zope.app.security.interfaces.ILogout(auth).logout(self.request)
+            if nextURL:
+                return self.redirect()
+        if nextURL is None:
+            return self.confirmation()
+        else:
+            return self.request.response.redirect(nextURL)


Property changes on: z3c.layer.pagelet/branches/icemac_login_support/src/z3c/layer/pagelet/browser/auth.py
___________________________________________________________________
Added: svn:keywords
   + Id Rev Date
Added: svn:eol-style
   + native

Modified: z3c.layer.pagelet/branches/icemac_login_support/src/z3c/layer/pagelet/browser/configure.zcml
===================================================================
--- z3c.layer.pagelet/branches/icemac_login_support/src/z3c/layer/pagelet/browser/configure.zcml	2009-03-03 19:43:21 UTC (rev 97450)
+++ z3c.layer.pagelet/branches/icemac_login_support/src/z3c/layer/pagelet/browser/configure.zcml	2009-03-03 19:44:38 UTC (rev 97451)
@@ -98,4 +98,6 @@
       layer="z3c.layer.pagelet.IPageletBrowserLayer"
       />
 
+  <include file="zope.app.security.browser.zcml" />
+
 </configure>

Added: z3c.layer.pagelet/branches/icemac_login_support/src/z3c/layer/pagelet/browser/zope.app.security.browser.zcml
===================================================================
--- z3c.layer.pagelet/branches/icemac_login_support/src/z3c/layer/pagelet/browser/zope.app.security.browser.zcml	                        (rev 0)
+++ z3c.layer.pagelet/branches/icemac_login_support/src/z3c/layer/pagelet/browser/zope.app.security.browser.zcml	2009-03-03 19:44:38 UTC (rev 97451)
@@ -0,0 +1,56 @@
+<configure
+    xmlns="http://namespaces.zope.org/zope"
+    xmlns:browser="http://namespaces.zope.org/browser"
+    i18n_domain="z3c">
+
+  <browser:viewletManager
+     name="login-logout"
+     provides=".auth.ILoginLogoutViewletManager"
+     class=".auth.LoginLogoutViewletManager"
+     layer="z3c.layer.pagelet.IPageletBrowserLayer"
+     permission="zope.Public"
+     />
+
+  <browser:viewlet
+     manager=".auth.ILoginLogoutViewletManager"
+     name="Login"
+     for="*"
+     class=".auth.LoginViewlet"
+     permission="zope.Public"
+     layer="z3c.layer.pagelet.IPageletBrowserLayer"
+     weight="1"
+     viewName="@@login.html"
+     />
+
+  <browser:viewlet
+     manager=".auth.ILoginLogoutViewletManager"
+     name="Logout"
+     for="*"
+     class=".auth.LogoutViewlet"
+     permission="zope.Public"
+     layer="z3c.layer.pagelet.IPageletBrowserLayer"
+     weight="2"
+     viewName="@@logout.html"
+     />
+
+  <browser:page
+     name="logout.html"
+     for="*"
+     class=".auth.HTTPAuthenticationLogout"
+     attribute="logout"
+     permission="zope.Public"
+     allowed_interface="zope.app.publisher.interfaces.http.ILogout"
+     layer="z3c.layer.pagelet.IPageletBrowserLayer"
+     />
+
+  <browser:page
+     name="login.html"
+     for="*"
+     class=".auth.HTTPAuthenticationLogin"
+     attribute="login"
+     permission="zope.Public"
+     allowed_interface="zope.app.publisher.interfaces.http.ILogin"
+     layer="z3c.layer.pagelet.IPageletBrowserLayer"
+     />
+
+</configure>


Property changes on: z3c.layer.pagelet/branches/icemac_login_support/src/z3c/layer/pagelet/browser/zope.app.security.browser.zcml
___________________________________________________________________
Added: svn:keywords
   + Id Rev Date
Added: svn:eol-style
   + native

Modified: z3c.layer.pagelet/branches/icemac_login_support/src/z3c/layer/pagelet/tests/bugfixes.txt
===================================================================
--- z3c.layer.pagelet/branches/icemac_login_support/src/z3c/layer/pagelet/tests/bugfixes.txt	2009-03-03 19:43:21 UTC (rev 97450)
+++ z3c.layer.pagelet/branches/icemac_login_support/src/z3c/layer/pagelet/tests/bugfixes.txt	2009-03-03 19:44:38 UTC (rev 97451)
@@ -2,8 +2,8 @@
  Bugfixes
 ==========
 
-Traversed objects where not security proxied
-============================================
+Traversed objects were not security proxied
+===========================================
 
 When an object got traversed its security proxy was removed, so its
 sub-objects could be publically accessed. To show that this behavior

Modified: z3c.layer.pagelet/branches/icemac_login_support/src/z3c/layer/pagelet/tests/ftesting.zcml
===================================================================
--- z3c.layer.pagelet/branches/icemac_login_support/src/z3c/layer/pagelet/tests/ftesting.zcml	2009-03-03 19:43:21 UTC (rev 97450)
+++ z3c.layer.pagelet/branches/icemac_login_support/src/z3c/layer/pagelet/tests/ftesting.zcml	2009-03-03 19:44:38 UTC (rev 97451)
@@ -5,9 +5,6 @@
     xmlns:z3c="http://namespaces.zope.org/z3c"
     i18n_domain="zope">
 
-  <!-- load meta configuration for exclude -->
-  <include package="zc.configuration" file="meta.zcml" />
-
   <!-- exclude will prevent from include -->
   <exclude package="zope.app.authentication" file="ftpplugins.zcml" />
   <exclude package="zope.app.authentication" file="groupfolder.zcml" />
@@ -20,7 +17,6 @@
   <exclude package="zope.app.authentication.browser" file="session.zcml" />
   <exclude package="zope.app.broken" file="browser.zcml" />
   <exclude package="zope.app.error.browser" />
-  <exclude package="zope.app.folder.browser" />
   <exclude package="zope.app.i18n.browser" />
   <exclude package="zope.dublincore.browser" />
 
@@ -33,6 +29,7 @@
   <include package="zope.app.publisher" file="meta.zcml" />
   <include package="zope.app.security" file="meta.zcml" />
   <include package="zope.securitypolicy" file="meta.zcml" />
+  <include package="zope.viewlet" file="meta.zcml" />
 
 
   <!-- 3rd party meta configure -->
@@ -127,6 +124,15 @@
         layer="z3c.layer.pagelet.IPageletBrowserLayer"
         class=".ContainerContentsPage"
         />
+
+    <!-- definitions for login-logout tests -->
+    <z3c:layout
+        for="zope.container.interfaces.IContainer"
+        layer="z3c.layer.pagelet.IPageletBrowserLayer"
+        template="login-logout-template.pt"
+        />
+
+
   </configure>
 
 

Added: z3c.layer.pagelet/branches/icemac_login_support/src/z3c/layer/pagelet/tests/login-logout-template.pt
===================================================================
--- z3c.layer.pagelet/branches/icemac_login_support/src/z3c/layer/pagelet/tests/login-logout-template.pt	                        (rev 0)
+++ z3c.layer.pagelet/branches/icemac_login_support/src/z3c/layer/pagelet/tests/login-logout-template.pt	2009-03-03 19:44:38 UTC (rev 97451)
@@ -0,0 +1,9 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <title>PageletTest</title>
+  </head>
+  <body>
+    <tal:block replace="structure provider:login-logout" />
+  </body>
+</html>


Property changes on: z3c.layer.pagelet/branches/icemac_login_support/src/z3c/layer/pagelet/tests/login-logout-template.pt
___________________________________________________________________
Added: svn:keywords
   + Id Rev Date
Added: svn:eol-style
   + native



More information about the Checkins mailing list