# -*- coding: utf-8 -*- import logging from odoo import api, models _logger = logging.getLogger(__name__) class ResUsers(models.Model): _inherit = 'res.users' @api.model_create_multi def create(self, vals_list): _logger.info("====== [yuthon_base] res.users.create 被调用,准备创建 %d 个用户 ======", len(vals_list)) users = super().create(vals_list) # 新建用户后确保移除财务和薪资管理员权限组 groups_to_remove = [] group_refs = [ 'account.group_account_manager', 'account.group_account_invoice', 'hr_payroll.group_hr_payroll_manager', ] for ref in group_refs: group = self.env.ref(ref, raise_if_not_found=False) if group: groups_to_remove.append((3, group.id)) _logger.info("====== [yuthon_base] 找到组 %s (id=%d),将移除 ======", ref, group.id) else: _logger.warning("====== [yuthon_base] 未找到组 %s ======", ref) if groups_to_remove: _logger.info("====== [yuthon_base] 对用户 %s 移除 %d 个组 ======", users.mapped('login'), len(groups_to_remove)) users.sudo().write({'groups_id': groups_to_remove}) _logger.info("====== [yuthon_base] res.users.create 完成 ======") return users