diff --git a/canaille/backends/sql/models.py b/canaille/backends/sql/models.py index 8fd627a6..42d98192 100644 --- a/canaille/backends/sql/models.py +++ b/canaille/backends/sql/models.py @@ -20,6 +20,7 @@ from sqlalchemy_utils import force_auto_coercion import canaille.core.models import canaille.oidc.models +from canaille.backends import Backend from canaille.backends.models import BackendModel from .backend import Base @@ -63,6 +64,13 @@ membership_association_table = Table( class User(canaille.core.models.User, Base, SqlAlchemyModel): __tablename__ = "user" + @staticmethod + def default_password_arguments(**kwargs): + return dict( + schemes=Backend.instance.config["CANAILLE_SQL"]["PASSWORD_SCHEMES"], + **kwargs, + ) + id: Mapped[str] = mapped_column( String, primary_key=True, default=lambda: str(uuid.uuid4()) ) @@ -75,9 +83,7 @@ class User(canaille.core.models.User, Base, SqlAlchemyModel): user_name: Mapped[str] = mapped_column(String, unique=True, nullable=False) password: Mapped[str] = mapped_column( PasswordType( - onload=lambda **kwargs: dict( - schemes=current_app.config["CANAILLE_SQL"]["PASSWORD_SCHEMES"], **kwargs - ), + onload=default_password_arguments, ), nullable=True, )