You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
# Copyright (C) 2021 Open Source Integrators # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import _, api, fields, models from odoo.exceptions import ValidationError
class ResUsersRoleLine(models.Model): _inherit = "res.users.role.line"
allowed_company_ids = fields.Many2many(related="user_id.company_ids") company_id = fields.Many2one( "res.company", "Company", domain="[('id', 'in', allowed_company_ids)]", help="If set, this role only applies when this is the main company selected." " Otherwise it applies to all companies.", )
@api.constrains("user_id", "company_id") def _check_company(self): for record in self: if ( record.company_id and record.company_id != record.user_id.company_id and record.company_id not in record.user_id.company_ids ): raise ValidationError( _('User "{}" does not have access to the company "{}"').format( record.user_id.name, record.company_id.name ) )
_sql_constraints = [ ( "user_role_uniq", "unique (user_id,role_id,company_id)", "Roles can be assigned to a user only once at a time", ) ]
|