[CMF-checkins] CVS: CMF/CMFCalendar - permissions.py:1.1.2.1 CalendarTool.py:1.10.4.1 Event.py:1.16.4.1 EventPermissions.py:1.4.30.1 __init__.py:1.4.38.1

Tres Seaver tseaver at zope.com
Thu Apr 29 11:37:05 EDT 2004


Update of /cvs-repository/CMF/CMFCalendar
In directory cvs.zope.org:/tmp/cvs-serv17086/CMFCalendar

Modified Files:
      Tag: tseaver-permissiongeddon-branch
	CalendarTool.py Event.py EventPermissions.py __init__.py 
Added Files:
      Tag: tseaver-permissiongeddon-branch
	permissions.py 
Log Message:



 - Enforced new "local permissions" pattern:  each top-level CMF product
   should have a 'permissions.py' module which imports / declares all
   permissions used within the product;  other modules within the product
   should import from there.  Likewise for 'exceptions.py'. CMFCorePermissions
   delenda est!



=== Added File CMF/CMFCalendar/permissions.py ===
##############################################################################
#
# Copyright (c) 2001 Zope Corporation and Contributors. All Rights Reserved.
#
# This software is subject to the provisions of the Zope Public License,
# Version 2.0 (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
#
##############################################################################
""" CMFCalendar product permissions

$Id: permissions.py,v 1.1.2.1 2004/04/29 15:36:34 tseaver Exp $
"""
from AccessControl import ModuleSecurityInfo

from Products.CMFCore.permissions import setDefaultRoles

security = ModuleSecurityInfo('Products.CMFCalendar.permissions')

security.declarePublic('AddEvents')
AddEvents = 'Add portal events'
setDefaultRoles(AddEvents, ('Manager', 'Owner', 'Member'))

security.declarePublic('ChangeEvents')
ChangeEvents = 'Change portal events'
setDefaultRoles(ChangeEvents, ('Manager', 'Owner',))

security.declarePublic('AddPortalContent')
from Products.CMFCore.permissions import AddPortalContent

security.declarePublic('ManagePortal')
from Products.CMFCore.permissions import ManagePortal

security.declarePublic('View')
from Products.CMFCore.permissions import View

security.declarePublic('ModifyPortalContent')
from Products.CMFCore.permissions import ModifyPortalContent


=== CMF/CMFCalendar/CalendarTool.py 1.10 => 1.10.4.1 ===
--- CMF/CMFCalendar/CalendarTool.py:1.10	Sun Jan 11 07:45:35 2004
+++ CMF/CMFCalendar/CalendarTool.py	Thu Apr 29 11:36:34 2004
@@ -24,9 +24,9 @@
 from OFS.SimpleItem import SimpleItem
 from Products.PageTemplates.PageTemplateFile import PageTemplateFile
 
-from Products.CMFCore.CMFCorePermissions import ManagePortal
 from Products.CMFCore.utils import UniqueObject
 
+from permissions import ManagePortal
 
 class CalendarTool (UniqueObject, SimpleItem):
     """ a calendar tool for encapsualting how calendars work and are displayed """


=== CMF/CMFCalendar/Event.py 1.16 => 1.16.4.1 ===
--- CMF/CMFCalendar/Event.py:1.16	Tue Jan 13 05:17:54 2004
+++ CMF/CMFCalendar/Event.py	Thu Apr 29 11:36:34 2004
@@ -20,15 +20,20 @@
 from AccessControl import ClassSecurityInfo
 from webdav.Lockable import ResourceLockedError
 
-from Products.CMFDefault.DublinCore import DefaultDublinCoreImpl
 from Products.CMFCore.PortalContent import PortalContent
 from Products.CMFCore.WorkflowCore import WorkflowAction
-from Products.CMFCore.CMFCorePermissions import View, ModifyPortalContent
-from Products.CMFDefault.utils import formatRFC822Headers, html_headcheck
-from Products.CMFDefault.utils import SimpleHTMLParser, bodyfinder, parseHeadersBody
 from Products.CMFCore.utils import keywordsplitter
 
-import EventPermissions
+from Products.CMFDefault.DublinCore import DefaultDublinCoreImpl
+from Products.CMFDefault.utils import formatRFC822Headers
+from Products.CMFDefault.utils import html_headcheck
+from Products.CMFDefault.utils import SimpleHTMLParser
+from Products.CMFDefault.utils import bodyfinder
+from Products.CMFDefault.utils import parseHeadersBody
+
+from permissions import View
+from permissions import ModifyPortalContent
+from permissions import ChangeEvents
 
 # Factory type information -- makes Events objects play nicely
 # with the Types Tool (portal_types)
@@ -48,7 +53,7 @@
                  {'id': 'edit',
                   'name': 'Edit',
                   'action': 'string:${object_url}/event_edit_form',
-                  'permissions': (EventPermissions.ChangeEvents,)},
+                  'permissions': (ChangeEvents,)},
                  ),                     # End Actions
      },
     )
@@ -172,7 +177,7 @@
         """
         return _dateStrings(self.start())
 
-    security.declareProtected(EventPermissions.ChangeEvents, 'edit')
+    security.declareProtected(ChangeEvents, 'edit')
     def edit(self
              , title=None
              , description=None
@@ -276,14 +281,14 @@
             result.append(str(year))
         return result
 
-    security.declareProtected(EventPermissions.ChangeEvents, 'setStartDate')
+    security.declareProtected(ChangeEvents, 'setStartDate')
     def setStartDate(self, start):
         """
         Setting the event start date, when the event is scheduled to begin.
         """
         self.start_date = self._datify(start)
 
-    security.declareProtected(EventPermissions.ChangeEvents, 'setEndDate')
+    security.declareProtected(ChangeEvents, 'setEndDate')
     def setEndDate(self, end):
         """
         Setting the event end date, when the event ends.


=== CMF/CMFCalendar/EventPermissions.py 1.4 => 1.4.30.1 ===
--- CMF/CMFCalendar/EventPermissions.py:1.4	Thu Aug  1 15:05:11 2002
+++ CMF/CMFCalendar/EventPermissions.py	Thu Apr 29 11:36:34 2004
@@ -10,17 +10,15 @@
 # FOR A PARTICULAR PURPOSE
 #
 ##############################################################################
-""" EventPermissions: Permissions used in the CMF Events class
+""" Backward compatibility;  see Products.CMFCalendar.permissions
 
 $Id$
 """
 
-from Products.CMFCore.CMFCorePermissions import setDefaultRoles
+from permissions import *
 
-# Gathering Event Related Permissions into one place
-AddEvents = 'Add portal events'
-ChangeEvents = 'Change portal events'
+from warnings import warn
 
-# Set up default roles for permissions
-setDefaultRoles(AddEvents, ('Manager', 'Owner', 'Member'))
-setDefaultRoles(ChangeEvents, ('Manager', 'Owner',))
+warn( "The module, 'Products.CMFCalendar.EventPermissions' is a deprecated "
+      "compatiblity alias for 'Products.CMFalendar.permissions';  please use "
+      "the new module instead.", DeprecationWarning)


=== CMF/CMFCalendar/__init__.py 1.4 => 1.4.38.1 ===
--- CMF/CMFCalendar/__init__.py:1.4	Fri May 10 11:45:47 2002
+++ CMF/CMFCalendar/__init__.py	Thu Apr 29 11:36:34 2004
@@ -10,16 +10,16 @@
 # FOR A PARTICULAR PURPOSE
 # 
 ##############################################################################
-from Products.CMFDefault import Portal
-import Event
-import Products.CMFCore
+import sys
 
-from Products.CMFCore import utils, CMFCorePermissions
+from Products.CMFCore import utils
 from Products.CMFCore.DirectoryView import registerDirectory
-import EventPermissions
+from Products.CMFDefault import Portal
+
+import Event
 import CalendarTool
+from permissions import AddPortalContent
 
-import sys
 this_module = sys.modules[ __name__ ]
 
 contentConstructors = (Event.addEvent,)
@@ -47,7 +47,7 @@
     context.registerHelp(directory='help')
     utils.ContentInit( 'CMF Event'
                      , content_types = contentClasses
-                     , permission = CMFCorePermissions.AddPortalContent 
+                     , permission = AddPortalContent 
                      , extra_constructors = contentConstructors
                      , fti = Event.factory_type_information
                      ).initialize( context ) 




More information about the CMF-checkins mailing list