Fallback to default model access if RPC request fails
(grafted from 5680160a1ab68e8e30e05265aef34eea44be0139) --HG-- branch : 7.0
This commit is contained in:
1 parent
680d515c2a
commit
4e0ddf60fa
2 files changed
+34
-10
No files matched your search
+25
-8
@@ -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];
|
||||
}
|
||||
|
||||
@@ -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]
|
||||
|
||||
|
||||
Reference in new issue
Block a user