How To Hide User Group From Users Form View in Odoo

Abid Patel
23-Oct-2024 Updated : 23-Oct-2024

Learn how to hide user groups from users form view in Odoo by overriding the get_application_groups method. Enhance security and user management.

How To Hide User Group From Users Form View in Odoo

In Odoo, managing user groups effectively is crucial for maintaining a secure and streamlined user experience. Sometimes, you may want to hide certain user groups from being displayed in the user form view, especially for non-admin users. This can be achieved by customizing the logic within Odoo’s model layer and applying the necessary filters to control what groups are displayed to specific users.

Customizing User Group Visibility in Odoo

One of the common methods used to hide user groups is to override the method that fetches groups. In Odoo, this can be done by modifying the get_application_groups method to filter out the groups you don’t want to display in the form view.

Overriding the get_application_groups Method

The get_application_groups method is responsible for retrieving the list of groups in Odoo. You can override this method and customize the domain filter to hide specific groups from non-admin users. Here's an example:

python

from odoo import models

class ResUsers(models.Model):
    _inherit = 'res.users'

    def get_application_groups(self, domain):
        # Custom logic to hide specific groups based on conditions
        if not self.env.user.has_group('base.group_system'):
            domain += [('id', 'not in', [self.env.ref('your_module.group_hidden').id])]
        return super(ResUsers, self).get_application_groups(domain)

In this example, we are checking if the logged-in user is not part of the base.group_system (the admin group). If the user is not an admin, we modify the domain by adding a condition to exclude the group we want to hide (in this case, your_module.group_hidden).

Why Use This Approach?

This method of hiding user groups ensures that groups are not visible to unauthorized users without having to modify the form view XML directly. By controlling the logic in the backend, it becomes easier to apply complex rules based on user roles and permissions.

Conclusion

Hiding user groups from the user form view in Odoo can be essential for ensuring that non-admin users don’t have access to sensitive permissions. By overriding the get_application_groups method and applying custom domain filters, you can easily manage what groups are displayed based on the user’s role. This helps to improve both security and the overall user experience.

Make a Comment

Your email address will not be published. Required fields are marked *