import logging from django.db.models.signals import post_save from django.dispatch import receiver from django.contrib.auth import get_user_model from django.contrib.auth.models import Group logger = logging.getLogger(__name__) XIAOMI_USERS = [ 'qinzuoyan@xiaomi.com', 'lvjuan@xiaomi.com', 'zhenghongtao@xiaomi.com', 'wangkao@xiaomi.com', 'weipengfei@xiaomi.com', 'cuikaifeng1@xiaomi.com', 'wangshanshan7@xiaomi.com', 'yangyakun@xiaomi.com', 'qihengshan@xiaomi.com', 'pingzhiguo@xiaomi.com', 'wangbeibei3@xiaomi.com', 'zhangfeifei3@xiaomi.com', 'xujunhong@xiaomi.com', 'chenliang8@xiaomi.com', 'cuichunhua@xiaomi.com', 'hujianxin@xiaomi.com', 'zengxiangchao@xiaomi.com', 'xiewenliang@xiaomi.com', 'yangjianlin@xiaomi.com', 'zhangkeba@xiaomi.com', 'chenchen10@xiaomi.com', 'wangxiaojun1@xiaomi.com', 'wangtao16@xiaomi.com', 'hetan@xiaomi.com', 'liyingxiao1@xiaomi.com', 'zhaoliwei@xiaomi.com', 'huangwei5@xiaomi.com', 'niuyulin@xiaomi.com', 'laiyingchun@xiaomi.com', 'sunxin8@xiaomi.com', 'meiyi@xiaomi.com', 'zhuqi1@xiaomi.com', 'weizuo@xiaomi.com', 'zhangyifan8@xiaomi.com', 'yepeng1@xiaomi.com', 'chenfanqi@xiaomi.com', 'yuguocong@xiaomi.com', 'yangming6@xiaomi.com', 'guolicheng@xiaomi.com', 'liuzidong@xiaomi.com', 'xieyanjian@xiaomi.com', 'luodaiyang@xiaomi.com', 'tangyanzhao@xiaomi.com', 'wuqiong8@xiaomi.com', 'pengmengqing@xiaomi.com', 'huanghaibin@xiaomi.com', 'wangyuxuan@xiaomi.com', 'lijinglun@xiaomi.com', 'zhangguanghao1@xiaomi.com', 'jiashuo1@xiaomi.com', 'wutao1@xiaomi.com', 'caoxiao1@xiaomi.com', 'zhangxiaoxiao6@xiaomi.com', 'liuzidong@xiaomi.com', 'leiqiwang@xiaomi.com' ] WEBANK_USERS = [ 'enochhu@webank.com', 'wilanhuang@webank.com', 'juncogong@webank.com', 'rogershen@webank.com', 'lavineli@webank.com' ] # Trigger sso webhook by event: userinfo-changed @receiver( post_save, sender=get_user_model(), dispatch_uid='auto_registe_pingcap_internal_group') def auto_registe_pingcap_internal_group(sender, instance, created, **kwargs): if created and instance.email and instance.email.endswith('@pingcap.com'): try: pingcap_internal_group = Group.objects.get(name='PingCAP Internal') pingcap_internal_group.user_set.add(instance) except Group.DoesNotExist: pass if created and instance.email in XIAOMI_USERS: try: pingcap_internal_group = Group.objects.get(name='XiaoMi') pingcap_internal_group.user_set.add(instance) except Group.DoesNotExist: pass if created and instance.email in WEBANK_USERS: try: pingcap_internal_group = Group.objects.get(name='WeBank') pingcap_internal_group.user_set.add(instance) except Group.DoesNotExist: pass