Don't allow rpc call on ModelStorage without ModelView

CVE-2012-0215
issue2476
review307001
This commit is contained in:
Cédric Krier
2012-03-28 19:05:40 +02:00
parent 8c48d19566
commit 08ec032a2f
3 changed files with 16 additions and 17 deletions
+2
View File
@@ -1,3 +1,5 @@
* Don't allow rpc call on ModelStorage without ModelView (CVE-2012-0215)
Version 2.2.1 - 2011-12-26
* Bug fixes (see mercurial logs for details)
+14 -12
View File
@@ -26,6 +26,7 @@ from trytond.transaction import Transaction
from trytond.pool import Pool
from trytond.cache import LRUDict
from trytond.config import CONFIG
from .modelview import ModelView
class ModelStorage(Model):
@@ -42,18 +43,19 @@ class ModelStorage(Model):
def __init__(self):
super(ModelStorage, self).__init__()
self._rpc.update({
'create': True,
'read': False,
'write': True,
'delete': True,
'copy': True,
'search': False,
'search_count': False,
'search_read': False,
'export_data': False,
'import_data': True,
})
if isinstance(self, ModelView):
self._rpc.update({
'create': True,
'read': False,
'write': True,
'delete': True,
'copy': True,
'search': False,
'search_count': False,
'search_read': False,
'export_data': False,
'import_data': True,
})
self._constraints = []
def default_create_uid(self):
-5
View File
@@ -265,11 +265,6 @@ class WorkflowTransitionInstance(ModelSQL):
inst_id = fields.Many2One('workflow.instance', 'Instance',
ondelete='CASCADE', select=1, required=True)
def __init__(self):
super(WorkflowTransitionInstance, self).__init__()
for i in ('create', 'write', 'delete', 'copy'):
del self._rpc[i]
def fields_get(self, fields_names=None):
res = super(WorkflowTransitionInstance, self).fields_get(
fields_names=fields_names)