From a0e1a1641d08d533b1919ffb60298476f21de237 Mon Sep 17 00:00:00 2001 From: Kevin Morris Date: Tue, 30 Nov 2021 20:12:06 -0800 Subject: [PATCH] fix(fastapi): support UsersID and User columns in the Session model Signed-off-by: Kevin Morris --- aurweb/models/session.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/aurweb/models/session.py b/aurweb/models/session.py index 7a06eddc..37ab4bce 100644 --- a/aurweb/models/session.py +++ b/aurweb/models/session.py @@ -18,10 +18,16 @@ class Session(Base): def __init__(self, **kwargs): super().__init__(**kwargs) - user_exists = db.query( - db.query(_User).filter(_User.ID == self.UsersID).exists() - ).scalar() - if not user_exists: + # We'll try to either use UsersID or User.ID if we can. + # If neither exist, an AttributeError is raised, in which case + # we set the uid to 0, which triggers IntegrityError below. + try: + uid = self.UsersID or self.User.ID + except AttributeError: + uid = 0 + + user_exists = db.query(_User).filter(_User.ID == uid).exists() + if not db.query(user_exists).scalar(): raise IntegrityError( statement=("Foreign key UsersID cannot be null and " "must be a valid user's ID."),