Мне нужны данные модели нагрузки через RPC в моем JS.Как предоставить анонимный доступ пользователю к rpc api
Если вы сделаете это
ajax.jsonRpc("/web/dataset/call_kw", 'call', {
model: 'res.partner.category',
method: 'search_read',
[...]
вы получите SessionExpiredError, потому что этот контроллер допускается только для авторизованных пользователей. Чтобы обойти это, вы должны определить свой пользовательский контроллер каждый раз, когда вам нужно что-то подобное, что очень жаль, так как api уже есть.
У меня есть следующий обходной путь на данный момент:
JS:
ajax.jsonRpc("/web/dataset/call_kw_pub", 'call', {
model: 'res.partner.category',
method: 'search_read',
[...]
PY: права доступа
from openerp.addons.web.controllers.main import DataSet as DataSetBase
class DataSet(DataSetBase):
@http.route([
'/web/dataset/call_kw_pub',
'/web/dataset/call_kw_pub/<path:path>'
], type='json', auth="public")
def call_kw_pub(self, model, method, args, kwargs, path=None):
if model not in ('partner.project.expertise', 'res.partner.category'):
return http.request.not_found()
return self._call_kw(model, method, args, kwargs)
оборудование модели кажется хорошо обрабатывается ACL, но остаться безопасный Я просто включив это только для некоторых моделей.
Если это не проблема на уровне безопасности, мы могли бы подумать о том, чтобы разрешить публичный доступ к стандартным контроллерам. Любые указатели?
Это может быть связано с https://github.com/OCA/web/pull/402 слишком
Что ваш вопрос? – Amy
вопрос был в заголовке;) Я добавил знак вопроса в конце текста в любом случае. – simahawk
Вы должны прочитать [это] (https://www.odoo.com/page/responsible-disclosure). Я не думаю, что это принадлежит SO. – CZoellner