Fallback to default model access if RPC request fails

(grafted from 5680160a1ab68e8e30e05265aef34eea44be0139)

--HG--
branch : 7.0
This commit is contained in:
Cédric Krier committed 2024-04-18 19:22:07 +02:00
1 parent 680d515c2a
commit 4e0ddf60fa
2 files changed
+34 -10

No files matched your search

+25 -8
View File
@@ -484,10 +484,14 @@
if (!refresh) {
this._access = {};
}
this._models = Sao.rpc({
'method': 'model.ir.model.list_models',
'params': [{}]
}, Sao.Session.current_session, false);
try {
this._models = Sao.rpc({
'method': 'model.ir.model.list_models',
'params': [{}]
}, Sao.Session.current_session, false);
} catch(e) {
Sao.Logger.error("Unable to get model list.");
}
},
get: function(model) {
if (this._access[model] !== undefined) {
@@ -501,10 +505,23 @@
var to_load = this._models.slice(
Math.max(0, idx - Math.floor(this.batchnum / 2)),
idx + Math.floor(this.batchnum / 2));
var access = Sao.rpc({
'method': 'model.ir.model.access.get_access',
'params': [to_load, {}]
}, Sao.Session.current_session, false);
var access;
try {
access = Sao.rpc({
'method': 'model.ir.model.access.get_access',
'params': [to_load, {}]
}, Sao.Session.current_session, false);
} catch(e) {
Sao.Logger.error(`Unable to get access for ${model}.`);
access = {
model: {
'read': true,
'write': false,
'create': false,
'delete': false,
},
};
}
this._access = jQuery.extend(this._access, access);
return this._access[model];
}
+9 -2
View File
@@ -229,7 +229,7 @@ class ModelAccess(object):
self._models = rpc.execute('model', 'ir.model', 'list_models',
rpc.CONTEXT)
except TrytonServerError:
pass
logger.error("Unable to get model list.")
def __getitem__(self, model):
if model in self._access:
@@ -243,7 +243,14 @@ class ModelAccess(object):
access = rpc.execute('model', 'ir.model.access', 'get_access',
self._models[to_load], rpc.CONTEXT)
except TrytonServerError:
access = {}
logger.error("Unable to get access for %s.", model)
access = {
model: {
'read': True,
'write': False,
'create': False,
'delete': False},
}
self._access.update(access)
return self._access[model]