Permissions Odoo11-未登录用户从网站在模型后端使用方法
我使用Odoo11,我需要调用一些方法,这些方法由未登录的用户从网站声明到后端模型中 在控制器中,我在写入和搜索中使用了参数auth=“public”和一些.sudo(),这一切都很好,但我有一些javascript在后端调用的方法,当未登录的用户触发这些方法时,我会收到以下错误:Permissions Odoo11-未登录用户从网站在模型后端使用方法,permissions,odoo,odoo-11,Permissions,Odoo,Odoo 11,我使用Odoo11,我需要调用一些方法,这些方法由未登录的用户从网站声明到后端模型中 在控制器中,我在写入和搜索中使用了参数auth=“public”和一些.sudo(),这一切都很好,但我有一些javascript在后端调用的方法,当未登录的用户触发这些方法时,我会收到以下错误: /11.0/OCB/odoo/addons/base/ir/ir_http.py(90)_auth_method_user() raise http.SessionExpiredException("Session
/11.0/OCB/odoo/addons/base/ir/ir_http.py(90)_auth_method_user()
raise http.SessionExpiredException("Session expired")
我能做点什么吗?
后端也有sudo().write()或sudo().search(),但仍然得到错误。。。。对于登录的Porta用户没有问题,但我需要让未登录的用户使用
这是从model ir.http向我发送错误消息的方法
@classmethod
def _auth_method_user(cls):
request.uid = request.session.uid
if not request.uid:
raise http.SessionExpiredException("Session expired")
我通过将所有后端方法移动到带有parameter auth=“public”的控制器中解决了这个问题,这使我可以在没有auth权限的情况下执行操作
@http.route("/save_values",
type="json",
auth="public",
website=True)
def save_values(self, value_from_js):
checklist_line_obj = request.env['worksheet.checklist.line']
for line_id in value_from_js:
line = checklist_line_obj.browse(int(line_id))
vals = value_from_js[line_id]
line.sudo().write(vals)
这里是调用控制器的Javascript:
ajax.jsonRpc("/save_values", "call", {"value_from_js": dataToSendWorksheet})
.then(function () {
//DO something
});