diff --git a/examples/resources.py b/examples/resources.py index 8a213b3..ff71a59 100644 --- a/examples/resources.py +++ b/examples/resources.py @@ -56,6 +56,7 @@ class AdminResource(Model): ), "created_at", ] + async def get_toolbar_actions(self, request: Request) -> List[ToolbarAction]: return [] diff --git a/fastapi_admin/providers/login.py b/fastapi_admin/providers/login.py index 5ad37b8..71754a7 100644 --- a/fastapi_admin/providers/login.py +++ b/fastapi_admin/providers/login.py @@ -70,8 +70,11 @@ class UsernamePasswordProvider(Provider): signals.pre_save(self.admin_model)(self.pre_save_admin) async def pre_save_admin(self, _, instance: AbstractAdmin, using_db, update_fields): - db_obj = await instance.get(pk=instance.pk) - if db_obj.password != instance.password: + if instance.pk: + db_obj = await instance.get(pk=instance.pk) + if db_obj.password != instance.password: + instance.password = hash_password(instance.password) + else: instance.password = hash_password(instance.password) async def login(self, request: Request, redis: Redis = Depends(get_redis)):