Author: jmorliaguet Date: Fri May 5 22:36:54 2006 New Revision: 3049 Modified: cpsskins/branches/paris-sprint-2006/setup/adapters.py cpsskins/branches/paris-sprint-2006/setup/configure.zcml cpsskins/branches/paris-sprint-2006/setup/interfaces.py cpsskins/branches/paris-sprint-2006/setup/setting.py
Log: - updated the settings interfaces - registered LocalSetting and GlobalSetting classes (fixes security) Modified: cpsskins/branches/paris-sprint-2006/setup/adapters.py ============================================================================== --- cpsskins/branches/paris-sprint-2006/setup/adapters.py (original) +++ cpsskins/branches/paris-sprint-2006/setup/adapters.py Fri May 5 22:36:54 2006 @@ -42,7 +42,7 @@ self.context = context def getResource(self): - return self.context.resource + return self.context() class Relatable(object): """This adapter makes settings relatable. Modified: cpsskins/branches/paris-sprint-2006/setup/configure.zcml ============================================================================== --- cpsskins/branches/paris-sprint-2006/setup/configure.zcml (original) +++ cpsskins/branches/paris-sprint-2006/setup/configure.zcml Fri May 5 22:36:54 2006 @@ -52,7 +52,24 @@ zcml:condition="have devmode" /> + <class class="cpsskins.setup.setting.GlobalSetting"> + <require + permission="zope.View" + interface="cpsskins.setup.setting.IGlobalSetting" + /> + + </class> + + <class class="cpsskins.setup.setting.LocalSetting"> + + <require + permission="zope.View" + interface="cpsskins.setup.setting.ILocalSetting" + /> + + </class> + <!-- snapshot storage --> <cpsskins:storage id="snapshots" Modified: cpsskins/branches/paris-sprint-2006/setup/interfaces.py ============================================================================== --- cpsskins/branches/paris-sprint-2006/setup/interfaces.py (original) +++ cpsskins/branches/paris-sprint-2006/setup/interfaces.py Fri May 5 22:36:54 2006 @@ -77,6 +77,15 @@ resource = Attribute("The resource.") + def __call__(): + """Return the resource""" + + def isGlobal(): + """Returns true if the setting is global""" + + def isLocal(): + """Returns true if the setting is local""" + class IGlobalSetting(ISetting): """ """ @@ -131,9 +140,6 @@ ##### IO ############################################################# -class IDOMFragment(Interface): - """Marker interface for DOM fragments""" - class IDOMAdapter(Interface): """A DOM adapter for loading and saving objects as DOM fragments.""" @@ -147,8 +153,8 @@ ignored_fields = Attribute(u"The list of ignored fields.") - fields_as_attributes = Attribute( - u"The list of fields written as DOM attributes.") + fields_as_attributes = Attribute(u"The list of fields written as DOM " + "attributes.") reserved_fields = Attribute(u"Reserved fields.") Modified: cpsskins/branches/paris-sprint-2006/setup/setting.py ============================================================================== --- cpsskins/branches/paris-sprint-2006/setup/setting.py (original) +++ cpsskins/branches/paris-sprint-2006/setup/setting.py Fri May 5 22:36:54 2006 @@ -20,11 +20,15 @@ from persistent import Persistent from zope.app.container.contained import Contained from zope.interface import implements +from zope.security.proxy import removeSecurityProxy from cpsskins.setup.interfaces import IIdentifiable -from cpsskins.setup.interfaces import IGlobalSetting, ILocalSetting +from cpsskins.setup.interfaces import IGlobalSetting, ILocalSetting, ISetting class Setting(object): + """A generic setting + """ + implements(ISetting) def __init__(self, name=u'', title=u'', resource=None): self.name = name -- http://lists.nuxeo.com/mailman/listinfo/z3lab-checkins