覆盖默认用户plone.app.async运行其作业

时间:2013-11-12 15:23:02

标签: security asynchronous plone

我正在使用plone.app.async将任务卸载给特定的工作人员,而前端工作人员正在尽快为页面提供服务。

plone.app.async使用创建任务的同一用户运行异步任务,因此我正在执行以下操作以覆盖它:

from AccessControl.SecurityManagement import newSecurityManager
from plone.app.async import Job
from plone.app.async import queue
from zope.component.hooks import getSite

site = getSite()
root = site.getPhysicalRoot()
admin_user = root.acl_users.getUserById('admin')

newSecurityManager(None, admin_user)
job = Job(
    some_random_task,
    parameter1,
    parameter2,
)
queue(job)

但感觉 hacky ......

问题是外部脚本(不幸无法控制它)正在向我们的网站发送数据以在其上创建对象,因此需要相当多的权限才能创建,移动,更改工作流状态等等

是否有更好的方式来覆盖plone.app.async使用的用户?

0 个答案:

没有答案