From 42337f0d00b2a8d45ef063eb5b7deeef81597da5 Mon Sep 17 00:00:00 2001 From: ibuler Date: Tue, 19 Sep 2023 18:17:38 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BF=AE=E5=A4=8D=E9=9A=8F=E6=9C=BA=20?= =?UTF-8?q?error?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/common/utils/random.py | 4 ++-- apps/users/models/user.py | 22 +++++++++------------- 2 files changed, 11 insertions(+), 15 deletions(-) diff --git a/apps/common/utils/random.py b/apps/common/utils/random.py index f75e7001b..6f5595ee5 100644 --- a/apps/common/utils/random.py +++ b/apps/common/utils/random.py @@ -1,10 +1,9 @@ # -*- coding: utf-8 -*- # -import struct import random import socket import string - +import struct string_punctuation = '!#$%&()*+,-.:;<=>?@[]^_~' @@ -19,6 +18,7 @@ def random_ip(): def random_string(length: int, lower=True, upper=True, digit=True, special_char=False): + random.seed() args_names = ['lower', 'upper', 'digit', 'special_char'] args_values = [lower, upper, digit, special_char] args_string = [string.ascii_lowercase, string.ascii_uppercase, string.digits, string_punctuation] diff --git a/apps/users/models/user.py b/apps/users/models/user.py index f08a487c2..b852e0be1 100644 --- a/apps/users/models/user.py +++ b/apps/users/models/user.py @@ -1,30 +1,27 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- # -import uuid import base64 -import string -import random import datetime +import uuid from typing import Callable -from django.db import models from django.conf import settings -from django.utils import timezone -from django.core.cache import cache -from django.contrib.auth.models import AbstractUser from django.contrib.auth.hashers import check_password -from django.utils.translation import ugettext_lazy as _ +from django.contrib.auth.models import AbstractUser +from django.core.cache import cache +from django.db import models from django.shortcuts import reverse +from django.utils import timezone from django.utils.module_loading import import_string +from django.utils.translation import ugettext_lazy as _ -from orgs.utils import current_org -from orgs.models import Organization -from rbac.const import Scope from common.db import fields, models as jms_models from common.utils import ( date_expired_default, get_logger, lazyproperty, random_string, bulk_create_with_signal ) +from orgs.utils import current_org +from rbac.const import Scope from ..signals import post_user_change_password, post_user_leave_org, pre_user_leave_org __all__ = ['User', 'UserPasswordHistory'] @@ -518,8 +515,7 @@ class TokenMixin: return self.access_keys.first() def generate_reset_token(self): - letter = string.ascii_letters + string.digits - token = ''.join([random.choice(letter) for _ in range(50)]) + token = random_string(50) self.set_cache(token) return token