diff --git a/core/admin/mailu/models.py b/core/admin/mailu/models.py index 18e995bf..a1c54b49 100644 --- a/core/admin/mailu/models.py +++ b/core/admin/mailu/models.py @@ -24,10 +24,10 @@ class IdnaDomain(db.TypeDecorator): """ Stores a Unicode string in it's IDNA representation (ASCII only) """ - impl = db.String(80) + impl = db.String(80, collation="NOCASE") def process_bind_param(self, value, dialect): - return idna.encode(value).decode("ascii") + return idna.encode(value).decode("ascii").lower() def process_result_value(self, value, dialect): return idna.decode(value) @@ -45,7 +45,7 @@ class IdnaEmail(db.TypeDecorator): return "{0}@{1}".format( localpart, idna.encode(domain_name).decode('ascii'), - ) + ).lower() except ValueError: pass diff --git a/core/admin/migrations/versions/049fed905da7_.py b/core/admin/migrations/versions/049fed905da7_.py index ce410844..5398ad20 100644 --- a/core/admin/migrations/versions/049fed905da7_.py +++ b/core/admin/migrations/versions/049fed905da7_.py @@ -16,7 +16,7 @@ import sqlalchemy as sa def upgrade(): with op.batch_alter_table('user') as batch: - batch.alter_column('email', type_=sa.String(length=255, collation="NOCASE")) + batch.alter_column('email', type_=sa.String(length=255)) def downgrade(): diff --git a/core/admin/migrations/versions/27ae2f102682_.py b/core/admin/migrations/versions/27ae2f102682_.py index f821aff2..8902a17e 100644 --- a/core/admin/migrations/versions/27ae2f102682_.py +++ b/core/admin/migrations/versions/27ae2f102682_.py @@ -35,7 +35,7 @@ def upgrade(): ) # set default to 80% with op.batch_alter_table('user') as batch: - batch.alter_column('spam_threshold', default=80.) + batch.alter_column('spam_threshold', server_default="80.") def downgrade(): connection = op.get_bind() @@ -50,4 +50,4 @@ def downgrade(): ) # set default to 10/15 with op.batch_alter_table('user') as batch: - batch.alter_column('spam_threshold', default=10.) + batch.alter_column('spam_threshold', server_default="10.") diff --git a/core/admin/migrations/versions/9c28df23f77e_.py b/core/admin/migrations/versions/9c28df23f77e_.py index edf8d8ef..ce712761 100644 --- a/core/admin/migrations/versions/9c28df23f77e_.py +++ b/core/admin/migrations/versions/9c28df23f77e_.py @@ -16,9 +16,9 @@ import sqlalchemy as sa def upgrade(): with op.batch_alter_table('user') as batch: - batch.alter_column('email', type_=sa.String(length=255, collation="NOCASE")) + batch.alter_column('email', type_=sa.String(length=255)) with op.batch_alter_table('alias') as batch: - batch.alter_column('email', type_=sa.String(length=255, collation="NOCASE")) + batch.alter_column('email', type_=sa.String(length=255)) def downgrade(): diff --git a/core/admin/migrations/versions/ff0417f4318f_.py b/core/admin/migrations/versions/ff0417f4318f_.py index ca3b6d5a..a24289b4 100644 --- a/core/admin/migrations/versions/ff0417f4318f_.py +++ b/core/admin/migrations/versions/ff0417f4318f_.py @@ -29,7 +29,7 @@ def upgrade(): sa.Column('updated_at', sa.Date(), nullable=True), sa.Column('comment', sa.String(length=255), nullable=True), sa.Column('localpart', sa.String(length=80), nullable=False), - sa.Column('destination', sa.String(), nullable=False), + sa.Column('destination', sa.String(length=1023), nullable=False), sa.Column('domain_name', sa.String(length=80), nullable=False), sa.Column('email', sa.String(length=255), nullable=False), sa.ForeignKeyConstraint(['domain_name'], ['domain.name'], ), @@ -64,7 +64,7 @@ def upgrade(): sa.Column('comment', sa.String(length=255), nullable=True), sa.Column('id', sa.Integer(), nullable=False), sa.Column('user_email', sa.String(length=255), nullable=False), - sa.Column('protocol', sa.Enum('imap', 'pop3'), nullable=False), + sa.Column('protocol', sa.Enum('imap', 'pop3', name='enum_protocol'), nullable=False), sa.Column('host', sa.String(length=255), nullable=False), sa.Column('port', sa.Integer(), nullable=False), sa.Column('tls', sa.Boolean(), nullable=False), diff --git a/core/admin/requirements.txt b/core/admin/requirements.txt index 70372dee..0e37baf6 100644 --- a/core/admin/requirements.txt +++ b/core/admin/requirements.txt @@ -18,3 +18,5 @@ PyOpenSSL dnspython bcrypt tenacity +mysqlclient +psycopg2