[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