[Zope] Security Assertions

Godefroid Chapelle gotcha@swing.be
Wed, 16 Jan 2002 17:54:08 +0100


 > Casey Duncan wrote:
 >
 > > So the following things don't work:
 > >
 > > from Products.Formulator.Form import FormValidationError
 >
 > Either Martijn or you need to add the following lines to a Product
 > __init__.py somewhere:
 >
 > from AccessControl import ModuleSecurityInfo
 > ModuleSecurityInfo('Products').declarePublic('Formulator')
 > ModuleSecurityInfo('Products.Formulator').declarePublic('Form')
 > 
ModuleSecurityInfo('Products.Formulator.Form').declarePublic('FormValidationError')
 >
 > Cheers,
 >
 > Evan @ Zope


I added the above code in the corresponding  __init__.py on my machine.

Which works almost perfectly...:

Further, I needed to be able to import :

from Products.gvibDA.gvib.gvibExceptions import IntegrityError


So I added the following code in gvibDA's __init__.py

from Products.PythonScripts.Utility import allow_module, allow_class
from AccessControl import ModuleSecurityInfo, ClassSecurityInfo
from Globals import InitializeClass

ModuleSecurityInfo('Products').declarePublic('gvibDA')
ModuleSecurityInfo('Products.gvibDA').declarePublic('gvib')
ModuleSecurityInfo('Products.gvibDA.gvib').declarePublic('gvibExceptions')
ModuleSecurityInfo('Products.gvibDA.gvib.gvibExceptions').declarePublic('IntegrityError')

from gvib.gvibExceptions import IntegrityError

allow_class(IntegrityError)


I get an 'Unauthorized: Formulator' error when accessing a script beginning 
with

from Products.Formulator.Form import FormValidationError

from Products.gvibDA.gvib.gvibExceptions import IntegrityError



I suppose it has something to do with the creation of two instances of 
ModuleSecurityInfo('Products') but have no idea how to correct the problem.

Any help would be appreciated.


--


Godefroid Chapelle

BubbleNet sprl
rue Victor Horta, 18 / 202
1348 Louvain-la-Neuve
Belgium

Tel + 32 (10) 459901
Mob + 32 (477) 363942

TVA 467 093 008
RC Niv 49849