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日

  • 初次发行 [威瑟特]

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java异常无法从资源中找到可绘制的图标   Android 6.0.0上应用程序崩溃后java Android VM重新启动   当我将java项目导出到runnable jar中时,log4j不会记录日志   java在Jtable netbeans中显示MS访问数据   为什么不呢。Java中的NETstyle委托而不是闭包?   java如何正确使用如此多的CPU停止命令队列循环?   java使用==   java如何将scriptlet转换为JSTL?   java mvn测试失败,但通过IntelliJ IDEA运行测试   java为什么文件在使用另一个按钮后不会被删除   java JDBC MySQL不读取最新插入   java如何在安卓中绘制从Firebase数据库检索到的数据   java HTML解析getElementByClass方法   java Arraylist hashmap 安卓