Beispiel #1
0
 def list(self, request, *args, **kwargs):
     response = super().list(request, *args, **kwargs)
     implementer_list = list(
         UserService.batch_get_user_by_accountid(
             settings.AUDIT_USERS).values())
     for item in implementer_list:
         item['email_prefix'] = UserService.get_email_prefix(item['email'])
         item['name'] = item['name']
     response.data['priority_list'] = PriorityEnum.to_seq()
     response.data['status_list'] = ProcessStatusEnum.to_seq()
     response.data['clickable_key'] = self.clickable_key
     return response
Beispiel #2
0
    def record_log(self, action, request, serializer):
        """
        记录操作日志
        """
        log_data = {
            'operator': UserService.get_email_prefix(request.user.email),
            'operate_time': datetime.datetime.now(),
            'operate_type': action
        }

        clean_content = {}
        content = serializer.data

        model_fields = serializer.Meta.model._fields
        model_meta = serializer.Meta.model._meta
        for mf in model_fields:
            clean_content[mf] = content.get(mf) or ''

        id_field = model_meta['id_field']
        log_data['table_name'] = model_meta.get(
            'verbose_name') or model_meta['collection']
        log_data['table_id'] = str(content[id_field])
        log_data['name'] = clean_content.get('name') or clean_content.get(
            'content') or log_data['table_id']
        log_data['content'] = json.dumps(clean_content, ensure_ascii=False)

        log_serializer = OperationLogSerializer(data=log_data)
        log_serializer.is_valid(raise_exception=True)
        log_serializer.save()
Beispiel #3
0
 def get(self, request, *args, **kwargs):
     email = request.GET.get('email')
     users = UserService.search_user(email)
     for user in users:
         user['email_prefix'] = user['email'].replace(
             settings.EMAIL_SUFFIX, '')
     return JsonResponse({'results': users})
 def get_user_name(self, user):
     user_name = user
     try:
         ums_info = UserService.query_accountid(user)
         other_user_name = ums_info.get('name')
         return other_user_name or user_name
     except:
         return user_name
Beispiel #5
0
 def submitter_render(self):
     if not self.submitter:
         return '-'
     user_info = UserService.batch_get_user_by_email(self.submitter)
     names = []
     for email in self.submitter:
         name = (user_info.get(email) or {}).get('name')
         if name:
             names.append(name)
     return ','.join(names) or '-'
Beispiel #6
0
 def _get_auto_data(self, request, *args, **kwargs):
     """
     填充自动变更的非表单数据, 如表单有对应字段, 以填充的为准
     """
     auto_data = {}
     _fields = self.serializer_class.Meta.model._fields
     if 'submitter' in _fields:
         auto_data['submitter'] = [
             UserService.get_email_prefix(request.user.email)
         ]
     return auto_data
Beispiel #7
0
 def validate_sys(self):
     """
     验证业务线所有人员离职情况
     """
     # 下面的所有user都是accountid
     all_users = self.get_audit_sys_users()
     not_staff_users = []
     for user in all_users:
         is_staff = UserService.is_staff(user)
         if not is_staff:
             not_staff_users.append(user)
     self.update_risk_users(not_staff_users)
Beispiel #8
0
 def convert_user_to_id(self, users: list):
     user_account_ids = []
     self.id2user = {}
     for user in users:
         user = str(user)
         accountid = user
         if not user.isdigit():
             ums_info = UserService.get_user_by_email(user) or {}
             accountid = ums_info.get('accountid') or None
             if accountid:
                 self.id2user[accountid] = user
         if accountid:
             user_account_ids.append(accountid)
     return user_account_ids
Beispiel #9
0
 def record_task_risk_users(self, task, user_ids):
     """记录风险用户"""
     if not user_ids:
         return
     step = 50
     emails = []
     for _ids in split_large_collection(user_ids, step):
         id2emails = UserService.batch_id_to_email(_ids)
         emails.extend(id2emails.values())
     clear_emails = [get_email_prefix(em) for em in emails]
     nonnormal_user_names = self.get_nonnormal_names(user_ids)
     user_ids += nonnormal_user_names
     clear_emails += nonnormal_user_names
     JobTransferRiskModel.save_risk(task, user_ids, clear_emails)
Beispiel #10
0
 def batch_send_to_persons(cls, text, to_list):
     emails = UserService.batch_id_to_email(to_list, clear_email=False)
     cls.send_mail(emails, cls.SUB, text)