35 lines
		
	
	
		
			866 B
		
	
	
	
		
			Python
		
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			866 B
		
	
	
	
		
			Python
		
	
	
# -*- coding: utf-8 -*-
 | 
						|
from odoo import models, api
 | 
						|
 | 
						|
 | 
						|
class ResUsers(models.Model):
 | 
						|
    _inherit = 'res.users'
 | 
						|
 | 
						|
    @api.multi
 | 
						|
    def switch_multi_company(self, company):
 | 
						|
        """
 | 
						|
        :returns: Is company set to new value
 | 
						|
        """
 | 
						|
        self.ensure_one()
 | 
						|
 | 
						|
        user = self
 | 
						|
        if user.company_id == company:
 | 
						|
            return True
 | 
						|
 | 
						|
        update_company = True
 | 
						|
        if company in user.company_ids:
 | 
						|
            pass
 | 
						|
        elif user.has_group('base.group_user'):
 | 
						|
            # User is internal and doesn't have access to that company
 | 
						|
            update_company = False
 | 
						|
        else:
 | 
						|
            # User is a portal user -- update his allowed companies
 | 
						|
            user.write({
 | 
						|
                'company_ids': [(4, company.id, 0)]
 | 
						|
            })
 | 
						|
 | 
						|
        if update_company:
 | 
						|
            user.company_id = company
 | 
						|
 | 
						|
        return update_company
 |