自分のJSでRPC経由でモデルデータをロードする必要があります。匿名ユーザーに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すぎ
の予備的な名前で、this pull requestに上で働いていますか? – Amy
質問はタイトルにありました;)とにかくテキストの最後に疑問符を付けました。 – simahawk
[this](https://www.odoo.com/page/responsible-disclosure)をお読みください。私はこれがSOに属するとは思わない。 – CZoellner