本文整理汇总了Python中zope.security.management.queryInteraction函数的典型用法代码示例。如果您正苦于以下问题:Python queryInteraction函数的具体用法?Python queryInteraction怎么用?Python queryInteraction使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了queryInteraction函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: lockingSetUp
def lockingSetUp(test):
placelesssetup.setUp(test)
z3c.etree.testing.etreeSetup(test)
# create principal
participation = TestRequest(environ = {"REQUEST_METHOD": "PUT"})
participation.setPrincipal(Principal("michael"))
if queryInteraction() is not None:
queryInteraction().add(participation)
else:
newInteraction(participation)
events = test.globs["events"] = []
zope.event.subscribers.append(events.append)
gsm = zope.component.getGlobalSiteManager()
gsm.registerAdapter(DemoKeyReference,
(IDemo,),
zope.app.keyreference.interfaces.IKeyReference)
gsm.registerAdapter(PhysicallyLocatable, (Demo,))
gsm.registerAdapter(PhysicallyLocatable, (DemoFolder,))
gsm.registerAdapter(DemoKeyReference, (IDemoFolder,),
zope.app.keyreference.interfaces.IKeyReference)
gsm.registerAdapter(SiteManagerAdapter,
(zope.interface.Interface,), IComponentLookup)
gsm.registerAdapter(DemoAbsoluteURL,
(IDemo, zope.interface.Interface),
zope.traversing.browser.interfaces.IAbsoluteURL)
gsm.registerAdapter(DemoAbsoluteURL,
(IDemoFolder, zope.interface.Interface),
zope.traversing.browser.interfaces.IAbsoluteURL)
# register some IDAVWidgets so that we can render the activelock and
# supportedlock widgets.
gsm.registerAdapter(z3c.dav.widgets.ListDAVWidget,
(zope.schema.interfaces.IList,
z3c.dav.interfaces.IWebDAVRequest))
gsm.registerAdapter(z3c.dav.widgets.ObjectDAVWidget,
(zope.schema.interfaces.IObject,
z3c.dav.interfaces.IWebDAVRequest))
gsm.registerAdapter(z3c.dav.widgets.TextDAVWidget,
(zope.schema.interfaces.IText,
z3c.dav.interfaces.IWebDAVRequest))
gsm.registerAdapter(z3c.dav.properties.OpaqueWidget,
(z3c.dav.properties.DeadField,
z3c.dav.interfaces.IWebDAVRequest))
gsm.registerAdapter(z3c.dav.widgets.TextDAVWidget,
(zope.schema.interfaces.IURI,
z3c.dav.interfaces.IWebDAVRequest))
# Need connection to a database to manage locking
db = test.globs["db"] = ZODB.DB(ZODB.MappingStorage.MappingStorage())
test.globs["conn"] = db.open()
# expose these classes to the test
test.globs["Demo"] = Demo
test.globs["DemoFolder"] = DemoFolder
示例2: test_restoreInteraction_after_new
def test_restoreInteraction_after_new(self):
from zope.security.management import newInteraction
from zope.security.management import queryInteraction
from zope.security.management import restoreInteraction
newInteraction()
self.assertTrue(queryInteraction() is not None)
restoreInteraction() # restore to no interaction
self.assertTrue(queryInteraction() is None)
示例3: test_restoreInteraction_after_end
def test_restoreInteraction_after_end(self):
from zope.security.management import endInteraction
from zope.security.management import newInteraction
from zope.security.management import queryInteraction
from zope.security.management import restoreInteraction
newInteraction()
interaction = queryInteraction()
endInteraction()
restoreInteraction()
self.assertTrue(interaction is queryInteraction())
示例4: test_endInteraction_repeated
def test_endInteraction_repeated(self):
from zope.security.management import endInteraction
from zope.security.management import newInteraction
from zope.security.management import queryInteraction
newInteraction()
interaction = queryInteraction()
endInteraction()
self.assertEqual(queryInteraction(), None)
endInteraction()
self.assertEqual(queryInteraction(), None)
示例5: test_newInteraction
def test_newInteraction(self):
from zope.security.management import newInteraction
from zope.security.management import queryInteraction
newInteraction()
interaction = queryInteraction()
self.assertTrue(interaction is not None)
示例6: getRequest
def getRequest():
interaction = queryInteraction()
if interaction is not None:
for participation in interaction.participations:
if participation is not None:
return participation
示例7: check
def check(self):
interaction = queryInteraction()
if interaction is None:
return False
request = None
for participation in interaction.participations:
request = participation
if request is not None:
break
if request is None:
return False
contenttype = self.draftct
container = queryMultiAdapter(
(request.principal, contenttype), IDraftContainer)
if container is None:
return False
if contenttype.submit:
if interaction.checkPermission(contenttype.submit, self.context):
return True
if contenttype.publish:
if interaction.checkPermission(contenttype.publish, self.context):
return True
return False
示例8: invitationAcceptedHandler
def invitationAcceptedHandler(invitation, event):
owner = IOwnership(invitation).owner
if owner is None:
return
messaging = IMessageStorage(owner, None)
if messaging is None:
return
interaction = queryInteraction()
if interaction is not None:
for request in interaction.participations:
principal = invitation.principal
view = queryMultiAdapter(
(principal, request), IPagelet, 'personal.message')
if view is None:
return
view.update()
data = {'title': u'Your invitation has been accepted',
'text': view.render(),
'sender': unicode(principal.id)}
messaging.create(SERVICE_ID, **data)
示例9: test_checkPermission
def test_checkPermission(self):
from zope.security import checkPermission
from zope.security.management import setSecurityPolicy
from zope.security.management import queryInteraction
from zope.security.management import newInteraction, endInteraction
from zope.security.interfaces import NoInteraction
permission = 'zope.Test'
obj = object()
class PolicyStub(object):
def checkPermission(s, p, o,):
self.assert_(p is permission)
self.assert_(o is obj)
self.assert_(s is queryInteraction() or s is interaction)
return s is interaction
setSecurityPolicy(PolicyStub)
newInteraction()
interaction = queryInteraction()
self.assertEquals(checkPermission(permission, obj), True)
endInteraction()
self.assertRaises(NoInteraction, checkPermission, permission, obj)
示例10: testPlacefulAuth
def testPlacefulAuth(self):
self.publication.beforeTraversal(self.request)
self.assertEqual(list(queryInteraction().participations), [self.request])
self.assertEqual(self.request.principal.id, "anonymous")
root = self.publication.getApplication(self.request)
self.publication.callTraversalHooks(self.request, root)
self.assertEqual(self.request.principal.id, "anonymous")
ob = self.publication.traverseName(self.request, root, "f1")
self.publication.callTraversalHooks(self.request, ob)
self.assertEqual(self.request.principal.id, "test.anonymous")
ob = self.publication.traverseName(self.request, ob, "f2")
self.publication.afterTraversal(self.request, ob)
self.assertEqual(self.request.principal.id, "test.bob")
self.assertEqual(list(queryInteraction().participations), [self.request])
self.publication.endRequest(self.request, ob)
self.assertEqual(queryInteraction(), None)
示例11: resetingPassword
def resetingPassword(event):
email = IMailAddress(event.principal, None)
if email is None:
return
request = queryInteraction().participations[0]
template = getMultiAdapter((event, request), IMailTemplate)
template.send((formataddr((event.principal.title, email.address)),))
示例12: checkPermissionForPrincipal
def checkPermissionForPrincipal(principal, permission, object):
interaction = queryInteraction()
if IZojaxSecurityPolicy.providedBy(interaction):
return interaction.cached_decision(
removeSecurityProxy(object), principal.id,
interaction._groupsFor(principal), permission)
return False
示例13: test_usable_as_contextmanager
def test_usable_as_contextmanager(self):
from zope.security.management import getInteraction
from zope.security.management import queryInteraction
from zope.security.testing import interaction
with interaction('foo'):
ix = getInteraction()
participation = ix.participations[0]
self.assertEqual('foo', participation.principal.id)
self.assertFalse(queryInteraction())
示例14: test_contextmanager_ends_interaction_on_exception
def test_contextmanager_ends_interaction_on_exception(self):
from zope.security.management import queryInteraction
from zope.security.testing import interaction
try:
with interaction('foo'):
raise RuntimeError()
except RuntimeError:
pass
self.assertFalse(queryInteraction())
示例15: isNotSelf
def isNotSelf(group):
principal_id = None
interaction = queryInteraction()
if interaction is not None:
for participation in interaction.participations:
principal_id = participation.principal.id
break
return principal_id != group.__principal__.id