コード例 #1
0
 def test__checkId_PortalRoot(self):
     acl_users = self.site._setObject('acl_users', DummyUserFolder())
     newSecurityManager(None, acl_users.all_powerful_Oz)
     test = self._makeOne('test')
     acl_users = self.site._setObject('acl_users', DummyUserFolder())
     test._checkId('acl_users')
     newSecurityManager(None, acl_users.user_foo)
     self.assertRaises(BadRequest, test._checkId, 'acl_users')
コード例 #2
0
 def test__checkId_MethodAlias(self):
     acl_users = self.site._setObject('acl_users', DummyUserFolder())
     newSecurityManager(None, acl_users.all_powerful_Oz)
     test = self._makeOne('test')
     test._setPortalTypeName('Dummy Content 15')
     ttool = TypesTool()
     ttool._setObject('Dummy Content 15', FTI(**FTIDATA_CMF[0]))
     getSiteManager().registerUtility(ttool, ITypesTool)
     acl_users = self.site._setObject('acl_users', DummyUserFolder())
     test._checkId('view')
     newSecurityManager(None, acl_users.user_foo)
     self.assertRaises(BadRequest, test._checkId, 'view')
コード例 #3
0
    def test_catalogUnindexAndIndex(self):
        #
        # Test is a new object does get cataloged upon _setObject
        # and uncataloged upon manage_deleteObjects
        #
        acl_users = self.site._setObject('acl_users', DummyUserFolder())
        newSecurityManager(None, acl_users.all_powerful_Oz)
        test = self._makeOne('test')
        ctool = DummyCatalogTool()
        self.assertEqual(len(ctool), 0)
        sm = getSiteManager()
        sm.registerUtility(ctool, ICatalogTool)
        sm.registerUtility(TypesTool(), ITypesTool)

        test._setObject('foo', DummyContent('foo', catalog=1))
        foo = test.foo
        self.assertTrue(foo.after_add_called)
        self.assertFalse(foo.before_delete_called)
        self.assertEqual(len(ctool), 1)

        foo.reset()
        test._delObject('foo')
        self.assertFalse(foo.after_add_called)
        self.assertTrue(foo.before_delete_called)
        self.assertEqual(len(ctool), 0)
コード例 #4
0
    def test_tracker261(self):
        #
        #   Tracker issue #261 says that content in a deleted folder
        #   is not being uncatalogued.  Try creating a subfolder with
        #   content object, and test.
        #
        from Products.CMFCore.PortalFolder import PortalFolder

        acl_users = self.site._setObject('acl_users', DummyUserFolder())
        newSecurityManager(None, acl_users.all_powerful_Oz)
        test = self._makeOne('test')
        ctool = DummyCatalogTool()
        getSiteManager().registerUtility(ctool, ICatalogTool)
        self.assertEqual(len(ctool), 0)

        test._setObject('sub', PortalFolder('sub', ''))
        sub = test.sub

        sub._setObject('foo', DummyContent('foo', catalog=1))
        foo = sub.foo

        self.assertTrue(foo.after_add_called)
        self.assertFalse(foo.before_delete_called)
        self.assertEqual(len(ctool), 1)

        foo.reset()
        test._delObject('sub')
        self.assertFalse(foo.after_add_called)
        self.assertTrue(foo.before_delete_called)
        self.assertEqual(len(ctool), 0)
コード例 #5
0
    def test_createMemberAreaCMFBTreeFolder(self):
        # Test member area creation if the toplevel "Members" folder is
        # a CMFBTreeFolder (http://www.zope.org/Collectors/CMF/441
        site = self._makeSite()
        mtool = site.portal_membership
        members = site._setObject( 'Members', CMFBTreeFolder('Members') )
        acl_users = site._setObject( 'acl_users', DummyUserFolder() )
        wtool = site._setObject( 'portal_workflow', DummyTool() )

        # permission
        mtool.createMemberArea('user_foo')
        self.assertFalse( hasattr(members.aq_self, 'user_foo') )
        newSecurityManager(None, acl_users.user_bar)
        mtool.createMemberArea('user_foo')
        self.assertFalse( hasattr(members.aq_self, 'user_foo') )
        newSecurityManager(None, acl_users.user_foo)
        mtool.setMemberareaCreationFlag()
        mtool.createMemberArea('user_foo')
        self.assertFalse( hasattr(members.aq_self, 'user_foo') )
        newSecurityManager(None, acl_users.all_powerful_Oz)
        mtool.setMemberareaCreationFlag()
        mtool.createMemberArea('user_foo')
        self.assertTrue( hasattr(members.aq_self, 'user_foo') )

        # default content
        f = members.user_foo
        ownership = acl_users.user_foo
        localroles = ( ( 'user_foo', ('Owner',) ), )
        self.assertEqual( f.getOwner(), ownership )
        self.assertEqual( f.get_local_roles(), localroles,
                          'CMF Collector issue #162 (LocalRoles broken): %s'
                          % str( f.get_local_roles() ) )
コード例 #6
0
ファイル: test_PortalContent.py プロジェクト: bendavis78/zope
    def setUp(self):
        SecurityRequestTest.setUp(self)
        setUpEvents()

        self.root._setObject('site', DummySite('site'))
        self.site = self.root.site
        self.acl_users = self.site._setObject('acl_users', DummyUserFolder())
コード例 #7
0
ファイル: test_TypesTool.py プロジェクト: bendavis78/zope
 def setUp(self):
     SecurityTest.setUp(self)
     self.site = DummySite('site').__of__(self.root)
     self.acl_users = self.site._setObject('acl_users', DummyUserFolder())
     self.ttool = self.site._setObject('portal_types', TypesTool())
     fti = FTIDATA_DUMMY[0].copy()
     self.ttool._setObject('Dummy Content', FTI(**fti))
コード例 #8
0
    def test_getCandidateLocalRoles(self):
        mtool = self.mtool
        acl_users = self.site._setObject( 'acl_users', DummyUserFolder() )

        newSecurityManager(None, acl_users.user_foo)
        rval = mtool.getCandidateLocalRoles(mtool)
        self.assertEqual( rval, ('Dummy',) )
コード例 #9
0
    def test_deleteMembers(self):
        site = self._makeSite()
        sm = getSiteManager()
        mtool = site.portal_membership
        members = site._setObject('Members', PortalFolder('Members'))
        acl_users = site._setObject('acl_users', DummyUserFolder())
        utool = site._setObject('portal_url', DummyTool())
        sm.registerUtility(utool, IURLTool)
        wtool = site._setObject('portal_workflow', DummyTool())
        mdtool = site._setObject('portal_memberdata', MemberDataTool())
        sm.registerUtility(mdtool, IMemberDataTool)
        newSecurityManager(None, acl_users.all_powerful_Oz)

        self.assertEqual(acl_users.getUserById('user_foo'), acl_users.user_foo)
        mtool.createMemberArea('user_foo')
        self.failUnless(hasattr(members.aq_self, 'user_foo'))
        mdtool.registerMemberData('Dummy', 'user_foo')
        self.failUnless(mdtool._members.has_key('user_foo'))

        rval = mtool.deleteMembers(('user_foo', 'user_baz'))
        self.assertEqual(rval, ('user_foo', ))
        self.failIf(acl_users.getUserById('user_foo', None))
        self.failIf(mdtool._members.has_key('user_foo'))
        self.failIf(hasattr(members.aq_self, 'user_foo'))

        cleanUp()
コード例 #10
0
    def test_createMemberArea(self):
        site = self._makeSite()
        mtool = site.portal_membership
        members = site._setObject('Members', PortalFolder('Members'))
        acl_users = site._setObject('acl_users', DummyUserFolder())
        wtool = site._setObject('portal_workflow', DummyTool())

        # permission
        mtool.createMemberArea('user_foo')
        self.failIf(hasattr(members.aq_self, 'user_foo'))
        newSecurityManager(None, acl_users.user_bar)
        mtool.createMemberArea('user_foo')
        self.failIf(hasattr(members.aq_self, 'user_foo'))
        newSecurityManager(None, acl_users.user_foo)
        mtool.setMemberareaCreationFlag()
        mtool.createMemberArea('user_foo')
        self.failIf(hasattr(members.aq_self, 'user_foo'))
        newSecurityManager(None, acl_users.all_powerful_Oz)
        mtool.setMemberareaCreationFlag()
        mtool.createMemberArea('user_foo')
        self.failUnless(hasattr(members.aq_self, 'user_foo'))

        # default content
        f = members.user_foo
        ownership = acl_users.user_foo
        localroles = (('user_foo', ('Owner', )), )
        self.assertEqual(f.getOwner(), ownership)
        self.assertEqual(
            f.get_local_roles(), localroles,
            'CMF Collector issue #162 (LocalRoles broken): %s' %
            str(f.get_local_roles()))
コード例 #11
0
ファイル: test_TypesTool.py プロジェクト: bendavis78/zope
    def setUp(self):
        from Products.CMFCore.TypesTool import FactoryTypeInformation as FTI
        from Products.CMFCore.tests.base.dummy import DummySite
        from Products.CMFCore.tests.base.dummy import DummyUserFolder
        from Products.CMFCore.tests.base.tidata import FTIDATA_DUMMY
        SecurityTest.setUp(self)
        self.site = DummySite('site').__of__(self.root)
        self.acl_users = self.site._setObject('acl_users', DummyUserFolder())
        self.ttool = self.site._setObject('portal_types', self._makeOne())
        fti = FTIDATA_DUMMY[0].copy()
        self.ttool._setObject('Dummy Content', FTI(**fti))

        # setup workflow tool
        # to test 'Instance creation conditions' of workflows
        from Products.CMFCore.WorkflowTool import WorkflowTool
        self.site._setObject('portal_workflow', WorkflowTool())
        wftool = self.site.portal_workflow

        from Products.DCWorkflow.DCWorkflow import DCWorkflowDefinition
        wftool._setObject('wf', DCWorkflowDefinition('wf'))
        wftool.setDefaultChain('wf')
        wf = wftool.wf
        wf.states.addState('initial')
        wf.states.setInitialState('initial')

        from Products.DCWorkflow.Guard import Guard
        g = Guard()
        wf.creation_guard = g
コード例 #12
0
    def test_deleteMembersUnsupported(self):
        # Quite a few user folders do not support the deletion API
        # http://www.zope.org/Collectors/CMF/481
        # Make sure we get the right exception
        site = self._makeSite()
        sm = getSiteManager()
        sm.registerUtility(site, ISiteRoot)
        mtool = site.portal_membership
        members = site._setObject('Members', PortalFolder('Members'))
        acl_users = site._setObject('acl_users', DummyUserFolder())
        mdtool = MemberDataTool()
        sm.registerUtility(mdtool, IMemberDataTool)
        newSecurityManager(None, acl_users.all_powerful_Oz)

        self.assertEqual(acl_users.getUserById('user_foo'), acl_users.user_foo)
        mtool.createMemberArea('user_foo')
        self.assertTrue(hasattr(members.aq_self, 'user_foo'))
        mdtool.registerMemberData('Dummy', 'user_foo')
        self.assertTrue('user_foo' in mdtool._members)

        # Fake an incompatible user folder by deleting the class method
        deletion_method = DummyUserFolder.userFolderDelUsers
        del DummyUserFolder.userFolderDelUsers
        self.assertRaises(NotImplementedError, mtool.deleteMembers,
                          ('user_foo', ))
        self.assertTrue(acl_users.getUserById('user_foo', None))
        self.assertTrue('user_foo' in mdtool._members)
        self.assertTrue(hasattr(members.aq_self, 'user_foo'))

        # Cleanup
        DummyUserFolder.userFolderDelUsers = deletion_method
コード例 #13
0
    def test_getMemberById_nonesuch(self):
        INVALID_USER_ID = 'nonesuch'

        self.root._setObject('folder', Folder('folder'))
        site = self._makeSite(self.root.folder)
        tool = site.portal_membership
        site.acl_users = DummyUserFolder()
        self.assertEqual(None, tool.getMemberById(INVALID_USER_ID))
コード例 #14
0
    def test_manageAddFolder(self):
        #
        #   Does MKDIR/MKCOL intercept work?
        #
        from Products.CMFCore.PortalFolder import PortalFolder
        from Products.CMFCore.PortalFolder import PortalFolderFactory

        acl_users = self.site._setObject('acl_users', DummyUserFolder())
        newSecurityManager(None, acl_users.all_powerful_Oz)
        test = self._makeOne('test')

        ttool = TypesTool()
        ttool._setObject(
            'Folder',
            FTI(id='Folder',
                title='Folder or Directory',
                meta_type=PortalFolder.meta_type,
                factory='cmf.folder',
                filter_content_types=0))
        ttool._setObject(
            'Grabbed',
            FTI('Grabbed',
                title='Grabbed Content',
                meta_type=PortalFolder.meta_type,
                factory='cmf.folder'))
        sm = getSiteManager()
        sm.registerUtility(ttool, ITypesTool)
        sm.registerUtility(PortalFolderFactory, IFactory, 'cmf.folder')

        # First, test default behavior
        test.manage_addFolder(id='simple', title='Simple')
        self.assertEqual(test.simple.getPortalTypeName(), 'Folder')
        self.assertEqual(test.simple.Type(), 'Folder or Directory')
        self.assertEqual(test.simple.getId(), 'simple')
        self.assertEqual(test.simple.Title(), 'Simple')

        # Now, test overridden behavior
        ttool.Folder.setMethodAliases({'mkdir': 'grabbed'})

        class Grabbed:

            _grabbed_with = None

            def __init__(self, context):
                self._context = context

            def __call__(self, id):
                self._grabbed_with = id
                self._context._setOb(id, PortalFolder(id))
                self._context._getOb(id)._setPortalTypeName('Grabbed')

        self.app.grabbed = Grabbed(test)

        test.manage_addFolder(id='indirect', title='Indirect')
        self.assertEqual(test.indirect.getPortalTypeName(), 'Grabbed')
        self.assertEqual(test.indirect.Type(), 'Grabbed Content')
        self.assertEqual(test.indirect.getId(), 'indirect')
        self.assertEqual(test.indirect.Title(), 'Indirect')
コード例 #15
0
ファイル: test_TypesTool.py プロジェクト: bendavis78/zope
    def setUp( self ):
        SecurityTest.setUp(self)

        filterwarnings('ignore', category=DeprecationWarning)
        self.site = DummySite('site').__of__(self.root)
        self.acl_users = self.site._setObject( 'acl_users', DummyUserFolder() )
        self.ttool = self.site._setObject( 'portal_types', TypesTool() )
        fti = FTIDATA_DUMMY[0].copy()
        self.ttool._setObject( 'Dummy Content', FTI(**fti) )
コード例 #16
0
    def test_getMemberById_nonlocal(self):
        NONLOCAL_USER_ID = 'user_bar'

        self.root._setObject('folder', Folder('folder'))
        site = self._makeSite(self.root.folder)
        self.root.folder._setObject('acl_users', DummyUserFolder())
        tool = site.portal_membership
        member = tool.getMemberById(NONLOCAL_USER_ID)
        self.assertEqual(member.getId(), NONLOCAL_USER_ID)
コード例 #17
0
 def test_checkIdAvailableCatchesBadRequest(self):
     #
     #   checkIdAvailable() should catch BadRequest
     #
     acl_users = self.site._setObject('acl_users', DummyUserFolder())
     newSecurityManager(None, acl_users.all_powerful_Oz)
     test = self._makeOne('test')
     test._setObject('foo', DummyContent('foo'))
     self.assertFalse(test.checkIdAvailable('foo'))
コード例 #18
0
ファイル: test_PortalFolder.py プロジェクト: bendavis78/zope
 def test__checkId_MethodAlias(self):
     test = self._makeOne('test')
     test._setPortalTypeName('Dummy Content 15')
     ttool = self.site._setObject('portal_types', TypesTool())
     ttool._setObject('Dummy Content 15', FTI(**FTIDATA_CMF[0]))
     acl_users = self.site._setObject('acl_users', DummyUserFolder())
     test._checkId('view.html')
     newSecurityManager(None, acl_users.user_foo)
     self.assertRaises(BadRequest, test._checkId, 'view.html')
コード例 #19
0
    def setUp(self):
        from Products.CMFCore.TypesTool import FactoryTypeInformation as FTI

        SecurityTest.setUp(self)
        self.site = DummySite('site').__of__(self.root)
        self.acl_users = self.site._setObject( 'acl_users', DummyUserFolder() )
        self.ttool = self.site._setObject( 'portal_types', self._makeOne() )
        fti = FTIDATA_DUMMY[0].copy()
        self.ttool._setObject( 'Dummy Content', FTI(**fti) )
コード例 #20
0
 def test__checkId_Duplicate(self):
     #
     #   _checkId() should raise BadRequest on duplicate id
     #
     acl_users = self.site._setObject('acl_users', DummyUserFolder())
     newSecurityManager(None, acl_users.all_powerful_Oz)
     test = self._makeOne('test')
     test._setObject('foo', DummyContent('foo'))
     self.assertRaises(BadRequest, test._checkId, 'foo')
コード例 #21
0
    def test_getMemberById_local(self):
        LOCAL_USER_ID = 'user_foo'

        self.app._setObject('folder', Folder('folder'))
        site = self._makeSite(self.app.folder)
        site._setObject('acl_users', DummyUserFolder())
        tool = site.portal_membership
        member = tool.getMemberById(LOCAL_USER_ID)
        self.assertEqual(member.getId(), LOCAL_USER_ID)
コード例 #22
0
    def test_getCandidateLocalRoles(self):
        mtool = self.mtool
        acl_users = self.site._setObject( 'acl_users', DummyUserFolder() )

        newSecurityManager(None, acl_users.user_foo)
        rval = mtool.getCandidateLocalRoles(mtool)
        self.assertEqual( rval, ('Dummy',) )
        newSecurityManager(None, acl_users.all_powerful_Oz)
        rval = mtool.getCandidateLocalRoles(mtool)
        self.assertEqual( rval, ('Manager', 'Member', 'Owner', 'Reviewer') )
コード例 #23
0
    def test_manageDelObjects(self):
        acl_users = self.site._setObject('acl_users', DummyUserFolder())
        newSecurityManager(None, acl_users.all_powerful_Oz)
        test = self._makeOne('test')
        foo = DummyContent('foo')

        test._setObject('foo', foo)
        foo.reset()
        test.manage_delObjects(ids=['foo'])
        self.assertFalse(foo.after_add_called)
        self.assertTrue(foo.before_delete_called)
コード例 #24
0
 def test_createMemberarea(self):
     mtool = self.mtool
     self.site._setObject('Members', DummyFolder())
     self.site._setObject('acl_users', DummyUserFolder())
     self.site._setObject('portal_workflow', DummyTool())
     self.site.user_bar = 'test attribute'
     mtool.createMemberarea('user_foo')
     self.failUnless(hasattr(self.site.Members.aq_self, 'user_foo'))
     mtool.createMemberarea('user_bar')
     self.failUnless(hasattr(self.site.Members.aq_self, 'user_bar'),
                     'CMF Collector issue #102 (acquisition bug)')
コード例 #25
0
ファイル: test_DublinCore.py プロジェクト: bendavis78/zope
    def test_notifyModified(self):
        acl_users = self.site._setObject( 'acl_users', DummyUserFolder() )
        newSecurityManager(None, acl_users.user_foo)
        item = self._makeDummyContent('item')
        self.assertEqual( item.listCreators(), () )
        item.setModificationDate(0)
        initial_date = item.ModificationDate()

        item.notifyModified()
        self.assertEqual( item.listCreators(), ('user_foo',) )
        self.assertNotEqual( item.ModificationDate(), initial_date )
コード例 #26
0
    def test_getMemberById_chained(self):
        LOCAL_USER_ID = 'user_foo'
        NONLOCAL_USER_ID = 'user_bar'

        self.root._setObject('folder', Folder('folder'))
        site = self._makeSite(self.root.folder)
        tool = site.portal_membership

        local_uf = DummyUserFolder()
        delattr(local_uf, NONLOCAL_USER_ID)
        site._setObject('acl_users', local_uf)

        nonlocal_uf = DummyUserFolder()
        delattr(nonlocal_uf, LOCAL_USER_ID)
        self.root.folder._setObject('acl_users', nonlocal_uf)

        local_member = tool.getMemberById(LOCAL_USER_ID)
        self.assertEqual(local_member.getId(), LOCAL_USER_ID)

        nonlocal_member = tool.getMemberById(NONLOCAL_USER_ID)
        self.assertEqual(nonlocal_member.getId(), NONLOCAL_USER_ID)
コード例 #27
0
    def setUp(self):

        self.site = DummySite('site')
        self.site._setObject('portal_types', DummyTool())
        self.site._setObject('portal_workflow', WorkflowTool())
        self.site._setObject('portal_membership', MembershipTool())
        self.site._setObject('acl_users', DummyUserFolder())

        addWorkflowFactory(DefaultWorkflowDefinition,
                           id='default_workflow', title='default_workflow')

        self._constructDummyWorkflow()
コード例 #28
0
    def setUp(self):
        from Products.CMFDefault.DefaultWorkflow \
                import DefaultWorkflowDefinition
        self.site = DummySite('site')
        self.site._setObject('portal_types', DummyTool())
        self.site._setObject('portal_workflow', WorkflowTool())
        self.site._setObject('portal_membership', DummyTool())
        self.site._setObject('acl_users', DummyUserFolder())

        wftool = self.site.portal_workflow
        wftool._setObject('wf', DefaultWorkflowDefinition('wf'))
        wftool.setDefaultChain('wf')
コード例 #29
0
    def test_notifyModified(self):
        site = DummySite('site').__of__(self.root)
        acl_users = site._setObject('acl_users', DummyUserFolder())
        site._setObject('portal_membership', MembershipTool())
        newSecurityManager(None, acl_users.user_foo)
        item = self._makeDummyContent('item').__of__(site)
        self.assertEqual(item.listCreators(), ())
        item.setModificationDate(0)
        initial_date = item.ModificationDate()

        item.notifyModified()
        self.assertEqual(item.listCreators(), ('user_foo', ))
        self.assertNotEqual(item.ModificationDate(), initial_date)
コード例 #30
0
    def setUp(self):
        from Products.CMFDefault.DefaultWorkflow \
                import DefaultWorkflowDefinition
        self.site = DummySite('site')
        self.site._setObject('acl_users', DummyUserFolder())

        self.wtool = WorkflowTool()
        self.wtool._setObject('wf', DefaultWorkflowDefinition('wf'))
        self.wtool.setDefaultChain('wf')
        sm = getSiteManager()
        sm.registerUtility(self.wtool, IWorkflowTool)
        sm.registerUtility(DummyTool(), IMembershipTool)
        sm.registerUtility(DummyTool(), ITypesTool)