feat: org id in get user/self/db

This commit is contained in:
Chris Milne 2026-06-08 10:26:17 +01:00
parent 6aad2e560f
commit bb4965ab07
2 changed files with 22 additions and 26 deletions

View file

@ -18,33 +18,29 @@ from src.database import Base
class User(Base): class User(Base):
__tablename__ = "user" __tablename__ = "user"
id = Column(Integer, primary_key=True) id = Column(Integer, primary_key=True)
email = Column(String) email = Column(String)
first_name = Column(String) first_name = Column(String)
last_name = Column(String) last_name = Column(String)
oidc_id = Column(String, index=True, unique=True) oidc_id = Column(String, index=True, unique=True)
organisation_rel = relationship( organisation_rel = relationship(
"Organisation", "Organisation", secondary="orgusers", back_populates="user_rel"
secondary="orgusers", )
back_populates="user_rel"
)
@property @property
def organisations(self): def organisations(self):
return [org.name for org in self.organisation_rel] return [{"name": org.name, "id": org.id} for org in self.organisation_rel]
group_rel = relationship( group_rel = relationship(
"Group", "Group", secondary="user_groups", back_populates="user_rel"
secondary="user_groups", )
back_populates="user_rel"
)
@property @property
def groups(self): def groups(self):
result = defaultdict(list) result = defaultdict(list)
for group in self.group_rel: for group in self.group_rel:
result[group.org_rel.name].append(group.name) result[group.org_rel.name].append(group.name)
return dict(result) return dict(result)

View file

@ -47,7 +47,7 @@ class UserResponse(CustomBaseModel):
first_name: str first_name: str
last_name: str last_name: str
email: str email: str
organisations: list[Optional[str]] organisations: list[Optional[dict[str, str|int]]]
groups: Optional[dict[str, list[str]]] = None groups: Optional[dict[str, list[str]]] = None