From 8dc0d4997207bfada28bceb63597d466abeb6db8 Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Thu, 29 Sep 2011 19:21:12 +0200 Subject: [PATCH 1/4] work in progress: make loops package work with BlueBream 1.0 --- README.txt | 2 +- browser/concept.py | 4 ++-- browser/manager.py | 3 +-- browser/node.py | 17 +++++++++-------- browser/util.py | 6 +++--- expert/concept.py | 4 ++-- expert/query.py | 2 +- external/browser.py | 1 - knowledge/knowledge.py | 1 - organize/README.txt | 2 +- organize/interfaces.py | 4 ++-- organize/process/README.txt | 1 - organize/process/definition.py | 1 - organize/tests.py | 4 ++-- organize/util.py | 4 ++-- query.py | 2 +- security/browser/admin.py | 10 +++++----- security/browser/audit.py | 6 +++--- security/common.py | 4 ++-- security/policy.py | 10 +++++----- security/setter.py | 6 +++--- tests/setup.py | 6 +++--- tests/test_loops.py | 8 +++----- util.py | 4 ++-- view.py | 2 +- 25 files changed, 54 insertions(+), 60 deletions(-) diff --git a/README.txt b/README.txt index 3d37044..7f4b13d 100755 --- a/README.txt +++ b/README.txt @@ -552,7 +552,7 @@ view for rendering.) False >>> view.renderTarget() - u'

Test data

\n

Another paragraph

\n' + u'

Test data

\n

Another paragraph

\n' u'

Test data

\n

Another ?paragraph

\n' diff --git a/browser/concept.py b/browser/concept.py index 8c693cb..e38fb1c 100644 --- a/browser/concept.py +++ b/browser/concept.py @@ -24,7 +24,6 @@ $Id$ from itertools import groupby from zope import interface, component, schema -from zope.app import zapi from zope.app.catalog.interfaces import ICatalog from zope.lifecycleevent import ObjectCreatedEvent, ObjectModifiedEvent from zope.app.container.contained import ObjectRemovedEvent @@ -43,6 +42,7 @@ from zope.publisher.interfaces.browser import IBrowserRequest from zope.schema.interfaces import IIterableSource from zope.security.proxy import removeSecurityProxy from zope.traversing.api import getName +from zope.traversing.browser import absoluteURL from cybertools.browser.action import actions from cybertools.composer.interfaces import IInstance @@ -182,7 +182,7 @@ class BaseRelationView(BaseView): @Lazy def predicateUrl(self): - return zapi.absoluteURL(self.predicate, self.request) + return absoluteURL(self.predicate, self.request) @Lazy def relevance(self): diff --git a/browser/manager.py b/browser/manager.py index 99ce71c..a629843 100644 --- a/browser/manager.py +++ b/browser/manager.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2006 Helmut Merz helmutm@cy55.de +# Copyright (c) 2011 Helmut Merz helmutm@cy55.de # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -22,7 +22,6 @@ Definition of view classes for the top-level loops container. $Id$ """ -from zope.app import zapi from zope import component from zope.lifecycleevent import ObjectCreatedEvent, ObjectModifiedEvent from zope.event import notify diff --git a/browser/node.py b/browser/node.py index 5b295fd..5636d5c 100644 --- a/browser/node.py +++ b/browser/node.py @@ -25,7 +25,6 @@ $Id$ from urlparse import urlparse, urlunparse from zope import component, interface, schema from zope.cachedescriptors.property import Lazy -from zope.app import zapi from zope.annotation.interfaces import IAnnotations from zope.app.catalog.interfaces import ICatalog from zope.app.container.browser.contents import JustContents @@ -39,8 +38,10 @@ from zope.lifecycleevent import ObjectCreatedEvent, ObjectModifiedEvent from zope.lifecycleevent import Attributes from zope.formlib.form import Form, FormFields from zope.proxy import removeAllProxies +from zope.publisher.defaultview import getDefaultViewName from zope.security import canAccess, canWrite, checkPermission from zope.security.proxy import removeSecurityProxy +from zope.traversing.api import getParent, getParents, getPath from cybertools.ajax import innerHtml from cybertools.browser import configurator @@ -243,7 +244,7 @@ class NodeView(BaseView): return u'' if text.startswith('<'): # seems to be HTML return text - source = zapi.createObject(self.context.contentType, text) + source = component.createObject(self.context.contentType, text) view = component.getMultiAdapter((removeAllProxies(source), self.request)) return view.render() @@ -316,7 +317,7 @@ class NodeView(BaseView): menu = self.menuObject parentMenu = None while menu is not None: - parent = zapi.getParent(menu) + parent = getParent(menu) if INode.providedBy(parent): parentMenu = parent.getMenu() if parentMenu is None or parentMenu is menu: @@ -348,7 +349,7 @@ class NodeView(BaseView): @Lazy def parents(self): - return zapi.getParents(self.context) + return getParents(self.context) @Lazy def nearestMenuItem(self): @@ -413,7 +414,7 @@ class NodeView(BaseView): target = self.virtualTargetObject if target is not None: # zope.app.publisher.browser - name = zapi.getDefaultViewName(target, self.request) + name = getDefaultViewName(target, self.request) return self.targetView(name) return u'' @@ -718,8 +719,8 @@ class ConfigureView(NodeView): container = type.defaultContainer name = form.get('create.name', '') if not name: - viewManagerPath = zapi.getPath(root.getViewManager()) - name = zapi.getPath(self.context)[len(viewManagerPath)+1:] + viewManagerPath = getPath(root.getViewManager()) + name = getPath(self.context)[len(viewManagerPath)+1:] name = name.replace('/', '.') # check for duplicates: num = 1 @@ -836,7 +837,7 @@ class NodeViewConfigurator(configurator.AnnotationViewConfigurator): @property def viewProperties(self): result = [] - for p in list(reversed(zapi.getParents(self.context))) + [self.context]: + for p in list(reversed(getParents(self.context))) + [self.context]: if not INode.providedBy(p) or p.nodeType != 'menu': continue ann = IAnnotations(p) diff --git a/browser/util.py b/browser/util.py index 5e1d818..5cd9a15 100644 --- a/browser/util.py +++ b/browser/util.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2006 Helmut Merz helmutm@cy55.de +# Copyright (c) 2011 Helmut Merz helmutm@cy55.de # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -22,10 +22,10 @@ Utilities. $Id$ """ -from zope.app import zapi from zope.app.pagetemplate import ViewPageTemplateFile from zope.app.publisher.browser.menu import BrowserMenu from zope.app.publisher.interfaces.browser import IBrowserSubMenuItem +from zope import component from zope.formlib.namedtemplate import NamedTemplateImplementation @@ -45,7 +45,7 @@ class LoopsMenu(BrowserMenu): def getMenuItems(self, object, request): """Return menu item entries in a TAL-friendly form.""" result = sorted([(item.order, item.action.lower(), item) - for name, item in zapi.getAdapters( + for name, item in component.getAdapters( (object, request), self.getMenuItemType()) if item.available()]) return [ diff --git a/expert/concept.py b/expert/concept.py index abd0b6f..df0363c 100644 --- a/expert/concept.py +++ b/expert/concept.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2008 Helmut Merz helmutm@cy55.de +# Copyright (c) 2011 Helmut Merz helmutm@cy55.de # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -27,8 +27,8 @@ from BTrees.IFBTree import weightedIntersection, weightedUnion, IFBucket from zope import schema, component from zope.interface import Interface, Attribute, implements from zope.app.catalog.interfaces import ICatalog -from zope.app.intid.interfaces import IIntIds from zope.cachedescriptors.property import Lazy +from zope.intid.interfaces import IIntIds from cybertools.typology.interfaces import IType from loops.common import AdapterBase diff --git a/expert/query.py b/expert/query.py index e2cdb86..63e91ab 100644 --- a/expert/query.py +++ b/expert/query.py @@ -26,10 +26,10 @@ from BTrees.IIBTree import IITreeSet from BTrees.IFBTree import IFBucket, IFBTree, IFTreeSet from BTrees.IOBTree import IOBucket, IOBTree from zope import interface, component -from zope.app.intid.interfaces import IIntIds from zope.component import adapts from zope.interface import implements, implementer from zope.cachedescriptors.property import Lazy +from zope.intid.interfaces import IIntIds from cybertools.catalog.query import Term, Eq, Between, And, Or from cybertools.catalog.query import Text as BaseText diff --git a/external/browser.py b/external/browser.py index 00ace6e..2427baf 100644 --- a/external/browser.py +++ b/external/browser.py @@ -27,7 +27,6 @@ import os import time from zope import component from zope.interface import Interface, implements -from zope.app import zapi from zope.app.pagetemplate.viewpagetemplatefile import ViewPageTemplateFile from zope.cachedescriptors.property import Lazy from zope.security.proxy import removeSecurityProxy diff --git a/knowledge/knowledge.py b/knowledge/knowledge.py index 38db3fd..c77223b 100644 --- a/knowledge/knowledge.py +++ b/knowledge/knowledge.py @@ -24,7 +24,6 @@ $Id$ """ from zope import interface, component -from zope.app import zapi from zope.component import adapts from zope.interface import implements from zope.cachedescriptors.property import Lazy diff --git a/organize/README.txt b/organize/README.txt index cbd7bd7..b108dc6 100644 --- a/organize/README.txt +++ b/organize/README.txt @@ -265,7 +265,7 @@ Automatic security settings on persons Person objects that have a user assigned to them receive this user (principal) as their owner. - >>> from zope.app.securitypolicy.interfaces import IPrincipalRoleMap + >>> from zope.securitypolicy.interfaces import IPrincipalRoleMap >>> IPrincipalRoleMap(concepts['john']).getPrincipalsAndRoles() [('loops.Owner', 'users.john', PermissionSetting: Allow)] >>> IPrincipalRoleMap(concepts['person.newuser']).getPrincipalsAndRoles() diff --git a/organize/interfaces.py b/organize/interfaces.py index c60fdc8..01a580b 100644 --- a/organize/interfaces.py +++ b/organize/interfaces.py @@ -24,10 +24,10 @@ $Id$ from zope.interface import Interface, Attribute from zope import interface, component, schema -from zope.app import zapi from zope.app.principalannotation import annotations from zope.app.security.interfaces import IAuthentication, PrincipalLookupError from zope.security.proxy import removeSecurityProxy +from zope.traversing.api import getName from cybertools.organize.interfaces import IAddress as IBaseAddress from cybertools.organize.interfaces import IPerson as IBasePerson @@ -70,7 +70,7 @@ class UserId(schema.TextLine): if person is not None and person != context: raiseValidationError( _(u'There is alread a person ($person) assigned to user $userId.', - mapping=dict(person=zapi.getName(person), + mapping=dict(person=getName(person), userId=userId))) diff --git a/organize/process/README.txt b/organize/process/README.txt index 340912f..ee9c2ac 100644 --- a/organize/process/README.txt +++ b/organize/process/README.txt @@ -12,7 +12,6 @@ Let's do some basic set up >>> site = placefulSetUp(True) >>> from zope import component, interface - >>> from zope.app import zapi and setup a simple loops site with a concept manager and some concepts (with all the type machinery, what in real life is done via standard diff --git a/organize/process/definition.py b/organize/process/definition.py index 04677ae..b287110 100644 --- a/organize/process/definition.py +++ b/organize/process/definition.py @@ -24,7 +24,6 @@ $Id$ """ from zope import interface, component -from zope.app import zapi from zope.component import adapts from zope.interface import implements from zope.cachedescriptors.property import Lazy diff --git a/organize/tests.py b/organize/tests.py index 7222b18..981b6e0 100755 --- a/organize/tests.py +++ b/organize/tests.py @@ -17,8 +17,8 @@ from zope.app.principalannotation import annotations from zope.app.principalannotation.interfaces import IPrincipalAnnotationUtility from zope.app.security.interfaces import IAuthentication from zope.app.security.principalregistry import PrincipalRegistry -from zope.app.securitypolicy.interfaces import IRolePermissionManager -from zope.app.securitypolicy.interfaces import IPrincipalRoleManager +from zope.securitypolicy.interfaces import IRolePermissionManager +from zope.securitypolicy.interfaces import IPrincipalRoleManager from cybertools.util.jeep import Jeep from loops.common import adapted diff --git a/organize/util.py b/organize/util.py index 0587200..b8a35e9 100644 --- a/organize/util.py +++ b/organize/util.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2009 Helmut Merz helmutm@cy55.de +# Copyright (c) 2011 Helmut Merz helmutm@cy55.de # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -28,7 +28,7 @@ from zope.app.authentication.interfaces import IAuthenticatorPlugin from zope.app.authentication.groupfolder import GroupFolder from zope.app.security.interfaces import IAuthentication, PrincipalLookupError from zope.app.security.settings import Allow, Deny, Unset -from zope.app.securitypolicy.interfaces import IPrincipalRoleManager +from zope.securitypolicy.interfaces import IPrincipalRoleManager from zope.traversing.api import getParents from loops.common import adapted from loops.type import getOptionsDict diff --git a/query.py b/query.py index 1c0ddce..d7a0a93 100644 --- a/query.py +++ b/query.py @@ -27,8 +27,8 @@ from BTrees.IFBTree import weightedIntersection, weightedUnion, IFBucket from zope import schema, component from zope.interface import Interface, Attribute, implements from zope.app.catalog.interfaces import ICatalog -from zope.app.intid.interfaces import IIntIds from zope.cachedescriptors.property import Lazy +from zope.intid.interfaces import IIntIds from cybertools.typology.interfaces import IType from loops.common import AdapterBase diff --git a/security/browser/admin.py b/security/browser/admin.py index 1ef9e7b..0679ec1 100644 --- a/security/browser/admin.py +++ b/security/browser/admin.py @@ -28,17 +28,17 @@ from zope.app.security.interfaces import IPermission from zope.app.security.settings import Allow, Deny, Unset from zope.app.securitypolicy.browser import granting from zope.app.securitypolicy.browser.rolepermissionview import RolePermissionView -from zope.app.securitypolicy.interfaces import IPrincipalRoleManager, \ - IRolePermissionMap -from zope.app.securitypolicy.interfaces import IPrincipalPermissionManager, \ - IPrincipalPermissionMap -from zope.app.securitypolicy.zopepolicy import SettingAsBoolean from zope import component from zope.event import notify from zope.interface import implements from zope.cachedescriptors.property import Lazy from zope.lifecycleevent import ObjectCreatedEvent, ObjectModifiedEvent from zope.security.proxy import removeSecurityProxy +from zope.securitypolicy.interfaces import IPrincipalRoleManager, \ + IRolePermissionMap +from zope.securitypolicy.interfaces import IPrincipalPermissionManager, \ + IPrincipalPermissionMap +from zope.securitypolicy.zopepolicy import SettingAsBoolean from zope.traversing.api import getName, getParent, getParents from loops.common import adapted diff --git a/security/browser/audit.py b/security/browser/audit.py index 5030aa9..366edaf 100644 --- a/security/browser/audit.py +++ b/security/browser/audit.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2010 Helmut Merz helmutm@cy55.de +# Copyright (c) 2011 Helmut Merz helmutm@cy55.de # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -24,9 +24,9 @@ $Id$ from zope import interface, component from zope.app.pagetemplate import ViewPageTemplateFile -from zope.app.securitypolicy.interfaces import IRolePermissionMap -from zope.app.securitypolicy.zopepolicy import SettingAsBoolean from zope.cachedescriptors.property import Lazy +from zope.securitypolicy.interfaces import IRolePermissionMap +from zope.securitypolicy.zopepolicy import SettingAsBoolean from zope.traversing.api import getName, getParent from loops.browser.concept import ConceptView diff --git a/security/common.py b/security/common.py index 31ac6f2..e280aed 100644 --- a/security/common.py +++ b/security/common.py @@ -27,14 +27,14 @@ from zope import component from zope.annotation.interfaces import IAttributeAnnotatable from zope.app.container.interfaces import IObjectAddedEvent from zope.app.security.settings import Allow, Deny, Unset -from zope.app.securitypolicy.interfaces import IPrincipalRoleManager -from zope.app.securitypolicy.interfaces import IRolePermissionManager from zope.cachedescriptors.property import Lazy from zope.interface import implements from zope.lifecycleevent import IObjectCreatedEvent, IObjectModifiedEvent from zope.security import canAccess, canWrite from zope.security import checkPermission as baseCheckPermission from zope.security.management import getInteraction +from zope.securitypolicy.interfaces import IPrincipalRoleManager +from zope.securitypolicy.interfaces import IRolePermissionManager from zope.traversing.api import getName from zope.traversing.interfaces import IPhysicallyLocatable diff --git a/security/policy.py b/security/policy.py index 17c0df0..011af29 100644 --- a/security/policy.py +++ b/security/policy.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2008 Helmut Merz helmutm@cy55.de +# Copyright (c) 2011 Helmut Merz helmutm@cy55.de # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -24,16 +24,16 @@ $Id$ """ from zope.app.security.settings import Allow, Deny, Unset -from zope.app.securitypolicy.interfaces import IPrincipalRoleMap, IRolePermissionMap -from zope.app.securitypolicy.zopepolicy import ZopeSecurityPolicy -from zope.app.securitypolicy.zopepolicy import SettingAsBoolean, \ - globalRolesForPrincipal, globalRolesForPermission from zope import component from zope.component import adapts from zope.cachedescriptors.property import Lazy from zope.interface import classProvides from zope.security.interfaces import ISecurityPolicy from zope.security.proxy import removeSecurityProxy +from zope.securitypolicy.interfaces import IPrincipalRoleMap, IRolePermissionMap +from zope.securitypolicy.zopepolicy import ZopeSecurityPolicy +from zope.securitypolicy.zopepolicy import SettingAsBoolean, \ + globalRolesForPrincipal, globalRolesForPermission from loops.interfaces import IConcept, IResource diff --git a/security/setter.py b/security/setter.py index 5c9e0c0..373e41e 100644 --- a/security/setter.py +++ b/security/setter.py @@ -24,14 +24,14 @@ $Id$ """ from zope.app.security.settings import Allow, Deny, Unset -from zope.app.securitypolicy.interfaces import \ - IRolePermissionMap, IRolePermissionManager, \ - IPrincipalRoleMap, IPrincipalRoleManager from zope import component from zope.component import adapts from zope.cachedescriptors.property import Lazy from zope.interface import implements, Interface from zope.security.proxy import isinstance +from zope.securitypolicy.interfaces import \ + IRolePermissionMap, IRolePermissionManager, \ + IPrincipalRoleMap, IPrincipalRoleManager from loops.common import adapted, AdapterBase, baseObject from loops.interfaces import IConceptSchema, IBaseResourceSchema, ILoopsAdapter diff --git a/tests/setup.py b/tests/setup.py index dcc1197..b23acf7 100644 --- a/tests/setup.py +++ b/tests/setup.py @@ -16,9 +16,6 @@ from zope.app.principalannotation import PrincipalAnnotationUtility from zope.app.principalannotation.interfaces import IPrincipalAnnotationUtility from zope.app.security.principalregistry import principalRegistry from zope.app.security.interfaces import IAuthentication -from zope.app.securitypolicy.zopepolicy import ZopeSecurityPolicy -from zope.app.securitypolicy.principalrole import AnnotationPrincipalRoleManager -from zope.app.securitypolicy.rolepermission import AnnotationRolePermissionManager from zope.app.session.interfaces import IClientIdManager, ISessionDataContainer from zope.app.session import session from zope.dublincore.annotatableadapter import ZDCAnnotatableAdapter @@ -27,6 +24,9 @@ from zope.interface import Interface, implements from zope.publisher.interfaces.browser import IBrowserRequest, IBrowserView from zope.security.checker import Checker, defineChecker from zope.security.management import setSecurityPolicy +from zope.securitypolicy.zopepolicy import ZopeSecurityPolicy +from zope.securitypolicy.principalrole import AnnotationPrincipalRoleManager +from zope.securitypolicy.rolepermission import AnnotationRolePermissionManager from cybertools.browser.controller import Controller from cybertools.catalog.keyword import KeywordIndex diff --git a/tests/test_loops.py b/tests/test_loops.py index 8c41a97..a14f188 100755 --- a/tests/test_loops.py +++ b/tests/test_loops.py @@ -1,11 +1,9 @@ # $Id$ import unittest, doctest -from zope.testing.doctestunit import DocFileSuite from zope.interface.verify import verifyClass from zope.interface import implements -from zope.app import zapi -from zope.app.intid.interfaces import IIntIds +from zope.intid.interfaces import IIntIds from loops.interfaces import ILoops from loops.base import Loops @@ -48,8 +46,8 @@ def test_suite(): flags = doctest.NORMALIZE_WHITESPACE | doctest.ELLIPSIS return unittest.TestSuite(( unittest.makeSuite(Test), - DocFileSuite('../README.txt', optionflags=flags), - DocFileSuite('../helpers.txt', optionflags=flags), + doctest.DocFileSuite('../README.txt', optionflags=flags), + doctest.DocFileSuite('../helpers.txt', optionflags=flags), )) if __name__ == '__main__': diff --git a/util.py b/util.py index b02bce9..0206bfc 100644 --- a/util.py +++ b/util.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2006 Helmut Merz helmutm@cy55.de +# Copyright (c) 2011 Helmut Merz helmutm@cy55.de # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -24,8 +24,8 @@ $Id$ import os from zope import component -from zope.app.intid.interfaces import IIntIds from zope.interface import directlyProvides, directlyProvidedBy +from zope.intid.interfaces import IIntIds from zope.i18nmessageid import MessageFactory from zope.schema import vocabulary diff --git a/view.py b/view.py index 5d36991..5430413 100644 --- a/view.py +++ b/view.py @@ -26,11 +26,11 @@ from zope import component from zope.app.container.btree import BTreeContainer from zope.app.container.contained import Contained from zope.app.container.ordered import OrderedContainer -from zope.app.intid.interfaces import IIntIds from zope.cachedescriptors.property import Lazy, readproperty from zope.component import adapts from zope.interface import implements from zope.interface import alsoProvides, directlyProvides, directlyProvidedBy +from zope.intid.interfaces import IIntIds from zope.publisher.browser import applySkin from zope import schema from zope.security import canAccess From 8dced7ecfad3b206413f0813dacadf1da95b4a7a Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Thu, 29 Sep 2011 19:22:51 +0200 Subject: [PATCH 2/4] work in progress: make loops package work with BlueBream 1.0 --- setup.cfg | 3 +++ setup_egg.py | 28 ++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 setup.cfg create mode 100644 setup_egg.py diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 0000000..01bb954 --- /dev/null +++ b/setup.cfg @@ -0,0 +1,3 @@ +[egg_info] +tag_build = dev +tag_svn_revision = true diff --git a/setup_egg.py b/setup_egg.py new file mode 100644 index 0000000..eeab4ba --- /dev/null +++ b/setup_egg.py @@ -0,0 +1,28 @@ +from setuptools import setup, find_packages +import sys, os + +version = '2.0' + +setup(name='loops', + version=version, + description="loops", + long_description="""\ +linked objects for organizational process services""", + classifiers=[], # Get strings from http://pypi.python.org/pypi?%3Aaction=list_classifiers + keywords='', + author='Helmut Merz', + author_email='helmutm@cy55.de', + url='', + license='GPL', + packages=find_packages(exclude=['ez_setup', 'examples', 'tests']), + include_package_data=True, + zip_safe=False, + install_requires=[ + # -*- Extra requirements: -*- + 'zope.app.securitypolicy', + 'cybertools', + ], + entry_points=""" + # -*- Entry points: -*- + """, + ) From 2f74a6dc81e43f3d76becc165ac7ddbf1ea56d92 Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Thu, 29 Sep 2011 22:27:06 +0200 Subject: [PATCH 3/4] make loops package work with BlueBream 1.0: system running --- browser/configure.zcml | 4 ++-- configure.zcml | 2 ++ organize/README.txt | 2 +- organize/configure.zcml | 4 ++-- organize/tests.py | 2 +- security/configure.zcml | 6 +++--- target.py | 1 - 7 files changed, 11 insertions(+), 10 deletions(-) diff --git a/browser/configure.zcml b/browser/configure.zcml index 92746a0..931a0ce 100644 --- a/browser/configure.zcml +++ b/browser/configure.zcml @@ -105,7 +105,7 @@ name="AddLoopsContainer.html" for="zope.app.container.interfaces.IAdding" class="loops.browser.manager.LoopsAddForm" - permission="zope.ManageApplication" + permission="zope.ManageSite" /> diff --git a/configure.zcml b/configure.zcml index 4400bed..37c76c0 100644 --- a/configure.zcml +++ b/configure.zcml @@ -432,10 +432,12 @@ diff --git a/organize/README.txt b/organize/README.txt index b108dc6..9be3fe0 100644 --- a/organize/README.txt +++ b/organize/README.txt @@ -155,7 +155,7 @@ with a principal folder: >>> from zope.app.authentication.authentication import PluggableAuthentication >>> from zope.app.security.interfaces import IAuthentication >>> ensureUtility(site, IAuthentication, '', PluggableAuthentication, - ... copy_to_zlog=False, asObject=True) + ... copy_to_zlog=False) <...PluggableAuthentication...> >>> pau = component.getUtility(IAuthentication, context=site) diff --git a/organize/configure.zcml b/organize/configure.zcml index e760a03..c746607 100644 --- a/organize/configure.zcml +++ b/organize/configure.zcml @@ -65,11 +65,11 @@ provides="zope.app.authentication.interfaces.ICredentialsPlugin" factory="loops.organize.auth.LoopsSessionCredentialsPlugin" /> - + - + diff --git a/organize/tests.py b/organize/tests.py index 981b6e0..4e9e339 100755 --- a/organize/tests.py +++ b/organize/tests.py @@ -50,7 +50,7 @@ def setupObjectsForTesting(site, concepts): loopsRoot = concepts.getLoopsRoot() setupData = setupUtilitiesAndAdapters(loopsRoot) ensureUtility(site, IAuthentication, '', PluggableAuthentication, - copy_to_zlog=False, asObject=True) + copy_to_zlog=False) pau = component.getUtility(IAuthentication, context=site) # create principal folder and user(s) pFolder = PrincipalFolder('users.') diff --git a/security/configure.zcml b/security/configure.zcml index dba17bf..7fe3f1a 100644 --- a/security/configure.zcml +++ b/security/configure.zcml @@ -16,15 +16,15 @@ diff --git a/target.py b/target.py index 43220ab..a1c7cee 100644 --- a/target.py +++ b/target.py @@ -23,7 +23,6 @@ resources e.g. from forms that are called on view/node objects. $Id$ """ -from zope.app import zapi from zope.cachedescriptors.property import Lazy from zope.component import adapts from zope.i18nmessageid import MessageFactory From 0186b331464232405e3bbfe02e8623f51f8e204b Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Tue, 4 Oct 2011 17:00:38 +0200 Subject: [PATCH 4/4] add zope.app.session to requirements: allow configuration of session storage --- setup_egg.py | 1 + 1 file changed, 1 insertion(+) diff --git a/setup_egg.py b/setup_egg.py index eeab4ba..13c45a5 100644 --- a/setup_egg.py +++ b/setup_egg.py @@ -20,6 +20,7 @@ linked objects for organizational process services""", install_requires=[ # -*- Extra requirements: -*- 'zope.app.securitypolicy', + 'zope.app.session', 'cybertools', ], entry_points="""