diff --git a/CHANGELOG b/CHANGELOG index 2df5ab9b90..d2a9d15b1d 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,4 @@ +* Add create/delete field access * Add dynamic size limit on the One2Many, Many2Many and Char * Replace __tryton__.py by tryton.cfg * Allow to use Reference field in One2Many & Many2Many diff --git a/trytond/ir/model.py b/trytond/ir/model.py index 99000a9940..cfff099a6c 100644 --- a/trytond/ir/model.py +++ b/trytond/ir/model.py @@ -391,6 +391,8 @@ class ModelFieldAccess(ModelSQL, ModelView): group = fields.Many2One('res.group', 'Group', ondelete='CASCADE') perm_read = fields.Boolean('Read Access') perm_write = fields.Boolean('Write Access') + perm_create = fields.Boolean('Create Access') + perm_delete = fields.Boolean('Delete Access') description = fields.Text('Description') def __init__(self): @@ -413,6 +415,12 @@ class ModelFieldAccess(ModelSQL, ModelView): def default_perm_write(self): return False + def default_perm_create(self): + return True + + def default_perm_delete(self): + return True + @Cache('ir_model_field_access.check') def check(self, model_name, fields, mode='read', raise_exception=True, access=False): @@ -421,13 +429,14 @@ class ModelFieldAccess(ModelSQL, ModelView): :param model_name: the model name :param fields: a list of fields - :param mode: 'read' or 'write' + :param mode: 'read', 'write', 'create' or 'delete' :param raise_exception: raise an exception if the test failed :param access: return a dictionary with access right instead of boolean :return: a boolean ''' - assert mode in ('read', 'write'), 'Invalid access mode' + assert mode in ('read', 'write', 'create', 'delete'), \ + 'Invalid access mode' if Transaction().user == 0: if access: return dict((x, True) for x in fields) diff --git a/trytond/ir/model.xml b/trytond/ir/model.xml index 06fd61cdad..ae170d68c7 100644 --- a/trytond/ir/model.xml +++ b/trytond/ir/model.xml @@ -181,6 +181,8 @@ this repository contains the full copyright notices and license terms. --> + + @@ -203,6 +205,10 @@ this repository contains the full copyright notices and license terms. -->