default to UUID for api key code if the previous one is already used

This commit is contained in:
Son Nguyen Kim 2021-09-21 11:27:37 +02:00
parent 3c81f982ca
commit 0075cee1ee
1 changed files with 5 additions and 11 deletions

View File

@ -1769,18 +1769,12 @@ class ApiKey(db.Model, ModelMixin):
user = db.relationship(User) user = db.relationship(User)
@classmethod @classmethod
def create(cls, user_id, name): def create(cls, user_id, name=None, **kwargs):
# generate unique code code = random_string(60)
found = False if cls.get_by(code=code):
while not found: code = str(uuid.uuid4())
code = random_string(60)
if not cls.get_by(code=code): return super().create(user_id=user_id, name=name, code=code, **kwargs)
found = True
a = cls(user_id=user_id, code=code, name=name)
db.session.add(a)
return a
class CustomDomain(db.Model, ModelMixin): class CustomDomain(db.Model, ModelMixin):