From 6cf2bc4baf54e3c7105252d52ae595697f4344d2 Mon Sep 17 00:00:00 2001 From: ibuler Date: Thu, 28 Oct 2021 12:07:34 +0800 Subject: [PATCH] =?UTF-8?q?pref:=20=E4=BC=98=E5=8C=96=E5=B7=A5=E5=8D=95?= =?UTF-8?q?=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/acls/models/login_acl.py | 13 ++++++++----- .../ticket/meta/ticket_type/apply_asset.py | 15 +++++++-------- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/apps/acls/models/login_acl.py b/apps/acls/models/login_acl.py index bdc1c8d9e..6e1fbff73 100644 --- a/apps/acls/models/login_acl.py +++ b/apps/acls/models/login_acl.py @@ -1,11 +1,10 @@ from django.db import models -from django.db.models import Q -from django.utils import timezone from django.utils.translation import ugettext_lazy as _ from .base import BaseACL, BaseACLQuerySet from common.utils import get_request_ip, get_ip_city from common.utils.ip import contains_ip from common.utils.time_period import contains_time_period +from common.utils.timezone import local_now_display class ACLManager(models.Manager): @@ -59,7 +58,9 @@ class LoginACL(BaseACL): @staticmethod def allow_user_confirm_if_need(user, ip): - acl = LoginACL.filter_acl(user).filter(action=LoginACL.ActionChoices.confirm).first() + acl = LoginACL.filter_acl(user).filter( + action=LoginACL.ActionChoices.confirm + ).first() acl = acl if acl and acl.reviewers.exists() else None if not acl: return False, acl @@ -71,7 +72,9 @@ class LoginACL(BaseACL): @staticmethod def allow_user_to_login(user, ip): - acl = LoginACL.filter_acl(user).exclude(action=LoginACL.ActionChoices.confirm).first() + acl = LoginACL.filter_acl(user).exclude( + action=LoginACL.ActionChoices.confirm + ).first() if not acl: return True, '' ip_group = acl.rules.get('ip_group') @@ -99,7 +102,7 @@ class LoginACL(BaseACL): login_ip = get_request_ip(request) if request else '' login_ip = login_ip or '0.0.0.0' login_city = get_ip_city(login_ip) - login_datetime = timezone.now().strftime('%Y-%m-%d %H:%M:%S') + login_datetime = local_now_display() ticket_meta = { 'apply_login_ip': login_ip, 'apply_login_city': login_city, diff --git a/apps/tickets/serializers/ticket/meta/ticket_type/apply_asset.py b/apps/tickets/serializers/ticket/meta/ticket_type/apply_asset.py index 2be6da2a7..a4b78e7d5 100644 --- a/apps/tickets/serializers/ticket/meta/ticket_type/apply_asset.py +++ b/apps/tickets/serializers/ticket/meta/ticket_type/apply_asset.py @@ -63,12 +63,11 @@ class ApplySerializer(serializers.Serializer): 'Permission named `{}` already exists'.format(permission_name) )) - def validate_apply_date_expired(self, value): - date_start = self.root.initial_data['meta'].get('apply_date_start') - date_start = datetime.strptime(date_start, '%Y-%m-%dT%H:%M:%S.%fZ') - date_expired = self.root.initial_data['meta'].get('apply_date_expired') - date_expired = datetime.strptime(date_expired, '%Y-%m-%dT%H:%M:%S.%fZ') - if date_expired <= date_start: + def validate(self, attrs): + apply_date_start = attrs['apply_date_start'] + apply_date_expired = attrs['apply_date_expired'] + + if apply_date_expired <= apply_date_start: error = _('The expiration date should be greater than the start date') - raise serializers.ValidationError(error) - return value + raise serializers.ValidationError({'apply_date_expired': error}) + return attrs