diff --git a/app/models.py b/app/models.py index a3ebd6ec..a88dd6dc 100644 --- a/app/models.py +++ b/app/models.py @@ -100,7 +100,12 @@ class User(db.Model, ModelMixin, UserMixin): password = db.Column(db.String(128), nullable=False) name = db.Column(db.String(128), nullable=False) is_admin = db.Column(db.Boolean, nullable=False, default=False) - alias_generator = db.Column(db.Integer, nullable=False, default=AliasGeneratorEnum.word.value) + alias_generator = db.Column( + db.Integer, + nullable=False, + default=AliasGeneratorEnum.word.value, + server_default=str(AliasGeneratorEnum.word.value), + ) activated = db.Column(db.Boolean, default=False, nullable=False) @@ -321,8 +326,8 @@ class Client(db.Model, ModelMixin): def last_user_login(self) -> "ClientUser": client_user = ( ClientUser.query.filter(ClientUser.client_id == self.id) - .order_by(ClientUser.updated_at) - .first() + .order_by(ClientUser.updated_at) + .first() ) if client_user: return client_user @@ -378,7 +383,9 @@ class OauthToken(db.Model, ModelMixin): return self.expired < arrow.now() -def generate_email(scheme: int = AliasGeneratorEnum.word.value, in_hex: bool = False) -> str: +def generate_email( + scheme: int = AliasGeneratorEnum.word.value, in_hex: bool = False +) -> str: """generate an email address that does not exist before :param scheme: int, value of AliasGeneratorEnum, indicate how the email is generated :type in_hex: bool, if the generate scheme is uuid, is hex favorable? @@ -391,7 +398,7 @@ def generate_email(scheme: int = AliasGeneratorEnum.word.value, in_hex: bool = F # check that the client does not exist yet if not GenEmail.get_by(email=random_email) and not DeletedAlias.get_by( - email=random_email + email=random_email ): LOG.debug("generate email %s", random_email) return random_email @@ -431,7 +438,9 @@ class GenEmail(db.Model, ModelMixin): return GenEmail.create(user_id=user_id, email=email) @classmethod - def create_new_random(cls, user_id, scheme: int = AliasGeneratorEnum.word.value, in_hex: bool = False): + def create_new_random( + cls, user_id, scheme: int = AliasGeneratorEnum.word.value, in_hex: bool = False + ): """create a new random alias""" random_email = generate_email(scheme=scheme, in_hex=in_hex) return GenEmail.create(user_id=user_id, email=random_email) @@ -570,8 +579,8 @@ class ForwardEmail(db.Model, ModelMixin): """return the most recent reply""" return ( ForwardEmailLog.query.filter_by(forward_id=self.id, is_reply=True) - .order_by(desc(ForwardEmailLog.created_at)) - .first() + .order_by(desc(ForwardEmailLog.created_at)) + .first() ) diff --git a/migrations/versions/2019_122521_8f53e718c79a_alias_generator_scheme.py b/migrations/versions/2019_122521_8f53e718c79a_alias_generator_scheme.py index 96bf621a..6099b453 100644 --- a/migrations/versions/2019_122521_8f53e718c79a_alias_generator_scheme.py +++ b/migrations/versions/2019_122521_8f53e718c79a_alias_generator_scheme.py @@ -9,7 +9,6 @@ import sqlalchemy_utils from alembic import op import sqlalchemy as sa - # revision identifiers, used by Alembic. revision = '8f53e718c79a' down_revision = '9e1b06b9df13' @@ -19,7 +18,7 @@ depends_on = None def upgrade(): # ### commands auto generated by Alembic - please adjust! ### - op.add_column('users', sa.Column('alias_generator', sa.Integer(), nullable=False)) + op.add_column('users', sa.Column('alias_generator', sa.Integer(), server_default="1", nullable=False)) # ### end Alembic commands ###