Menu

Помощь

0

How to restrict user access to a field but allow exporting other fields from the same view?

One way to limit users from accessing cost prices is to simply hide the fields by limiting visibility to specific groups. But this does not take away the possibility to export the field from a list view. How do we still allow the user to export the other fields from the view without the restricted field?

Аватар
Отменить
2Ответы
3
Avatar
Kiran K
Best Answer

Hi  Toon van der Ploeg ,

Try,

@api.model
def fields_get(self, fields=None):
fields_to_hide = ['field1','field2'] //Fields to Hide
res = super(ClassName, self).fields_get()
for field in fields_to_hide:
if self.env.user.has_group('group_which_the_field_to_be_hide'): 
res[field]['exportable'] = False
return res

Hope It Helps,
Kiran K

Аватар
Отменить
0
Avatar
K Ch Kumar Jagabattula
Best Answer

In .py file you can add the groups to a specific field so that it will not be visible while exporting also.

                                                    groups="base.group_no_one"

Adding this will make the field accessible only to "base.group_no_one" group users.

3Комментарии
Аватар
Отменить
Avatar
Anthony Nelson
-

Hi K Ch Kumar Jagabattula, thanks for your suggestion. Do you mean updating the 'odoo/addons/product/models/product.py' file or is there are more appropriate way to inherit it and update the groups?

Avatar
K Ch Kumar Jagabattula
-

Hi Anthony Nelson, Updating the default modules is not a good practice. Inherit the model in a custom addon and add groups for the field.

Avatar
K Ch Kumar Jagabattula
-

Something like this should work.

class ProductTemplate(models.Model):
_inherit = "product.template"
field_name = fields.Float(default_content, groups="base.group_user)

default_content - entire code in field definition of default addon.