Files
gzth/yuthon_base/models/res_users.py
T
2026-05-07 17:58:08 +08:00

34 lines
1.3 KiB
Python

# -*- 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