作弊遍历

jdi*_*zio 3 zope plone views traversal

我正在开发一个plone4网站,每个用户都有一个可排序的项目库存.ATFolder的folder_content视图非常适合这种情况.唯一的问题是,而不是像这样的URL:

/site/user/inventory
Run Code Online (Sandbox Code Playgroud)

或这个

/site/inventory/user
Run Code Online (Sandbox Code Playgroud)

网址应该是:

/site/inventory
Run Code Online (Sandbox Code Playgroud)

我想过几个解决方案,但每个人都有自己的疑虑.

  • 根据经过身份验证的用户,使库存内容动态化.我甚至不知道这是否可能在plone上.
  • 不知何故欺骗横向机制,所以/ site/inventory render/site/inventory/user.
  • 在渲染视图之前更改上下文.再说一遍,不知道是否可能.
  • 将库存作为ATCTContent的子类,将库存数据作为注释存储在用户上,并自行开发订购代码.这是我试图避免的选项.

你会怎么做?

谢谢.

Mar*_*ers 8

好吧,定义一个inventory视图然后使用Authenticated User来呈现它的内容将很容易,这可以是对存储在/ site/users/user /文件夹中的有序文件夹的简单委派.

您必须记住的一件事是在遍历之后发生用户身份验证.这意味着当实例化视图(__init__调用它的方法)时,尚未确定用户,因为在遍历期间会发生这种情况.在视图中__call__或从其模板中查找您的用户.