Zope 2发布者验证挂钩
plone.validatehook的Python项目详细描述
简介
这个包提供了一个到zope的zpublisher的钩子,它在 发布服务器已完成遍历和身份验证,但在 它试图发布一个对象。这对于诸如 跟踪用户活动。
钩子使用zope.event的事件机制,使用 plone.validatehook.interfaces.ipostValidationEvent。这是基于 标准的objectevent表单zope.component。
IPostValidationEvent事件有两个属性:user,这是 当前已验证的用户对象和request,这是当前 请求对象。
Keep in mind that even unauthenticated requests have a user object. If you only want to deal with ‘normal’ users make sure you ignore any instances of AccessControl.User.SpecialUser.
示例
作为一个例子,我们将编写一些代码来记录 当前用户和当前代码的路径。这是 事件处理程序:
from zope.interface import Interface from zope.component import adapter from plone.validatehook.interfaces import IPostValidationEvent import logging logger = logging.getLogger("LogRequest") @adapter(Interface, IPostValidationEvent) def LogRequest(object, event): if getattr(object, "getPhysicalPath", None) is None: path="Unknown path" else: path="/".join(object.getPhysicalPath() logger.info("Request from user '%s' for object %s" % event.user.getId(), path)
要使用此代码,您需要在zcml中注册它:
<subscriber handler=".events.LogRequest" />
更改日志
1.0-2008年10月15日
- 转到svn.zope.org并在zpl下重新授权。 [威瑟特]
1.0rc1-2008年7月15日
- 初次发行 [威瑟特]