From 066101623660f16af6939cf1fef607a4a9a32a3e Mon Sep 17 00:00:00 2001 From: Charlotte Van Petegem Date: Fri, 3 Jun 2022 19:05:33 +0200 Subject: [PATCH 1/2] Make slug eight characters --- app/migrations/versions/29ccbe077c57_add_slug.py | 2 +- app/models/order.py | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/migrations/versions/29ccbe077c57_add_slug.py b/app/migrations/versions/29ccbe077c57_add_slug.py index 31166ef..a4cf41c 100644 --- a/app/migrations/versions/29ccbe077c57_add_slug.py +++ b/app/migrations/versions/29ccbe077c57_add_slug.py @@ -17,7 +17,7 @@ from sqlalchemy.sql import text def upgrade(): op.add_column('order', sa.Column( 'slug', - sa.String(length=7), + sa.String(length=8), nullable=False, # Default: random alphanumerical string server_default=text('SUBSTRING(MD5(RAND()) FROM 1 FOR 7)') diff --git a/app/models/order.py b/app/models/order.py index 8c09cbd..7ae5de9 100644 --- a/app/models/order.py +++ b/app/models/order.py @@ -11,12 +11,12 @@ from utils import first from .database import db from .user import User -BASE58_ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz' +BASE34_ALPHABET = '123456789abcdefghijkmnopqrstuvwxyz' def generate_slug(): - secret = ''.join(secrets.choice(BASE58_ALPHABET) for i in range(7)) + secret = ''.join(secrets.choice(BASE34_ALPHABET) for i in range(8)) while Order.query.filter(Order.slug == secret).first() is not None: - secret = ''.join(secrets.choice(BASE58_ALPHABET) for i in range(7)) + secret = ''.join(secrets.choice(BASE34_ALPHABET) for i in range(8)) return secret class Order(db.Model): @@ -28,7 +28,7 @@ class Order(db.Model): starttime = db.Column(db.DateTime) stoptime = db.Column(db.DateTime) public = db.Column(db.Boolean, default=True) - slug = db.Column(db.String(7), default=generate_slug, unique=True) + slug = db.Column(db.String(8), default=generate_slug, unique=True) association = db.Column(db.String(120), nullable=False, server_default="") items = db.relationship("OrderItem", backref="order", lazy="dynamic") From 3bc2ad83eacbf18e018d6124a41d03bda33236cf Mon Sep 17 00:00:00 2001 From: Charlotte Van Petegem Date: Fri, 3 Jun 2022 19:12:00 +0200 Subject: [PATCH 2/2] Remove some more letters from the alphabet --- app/models/order.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/models/order.py b/app/models/order.py index 7ae5de9..b5cc016 100644 --- a/app/models/order.py +++ b/app/models/order.py @@ -11,12 +11,12 @@ from utils import first from .database import db from .user import User -BASE34_ALPHABET = '123456789abcdefghijkmnopqrstuvwxyz' +BASE31_ALPHABET = '23456789abcdefghjkmnpqrstuvwxyz' def generate_slug(): - secret = ''.join(secrets.choice(BASE34_ALPHABET) for i in range(8)) + secret = ''.join(secrets.choice(BASE31_ALPHABET) for i in range(8)) while Order.query.filter(Order.slug == secret).first() is not None: - secret = ''.join(secrets.choice(BASE34_ALPHABET) for i in range(8)) + secret = ''.join(secrets.choice(BASE31_ALPHABET) for i in range(8)) return secret class Order(db.Model):