feat: org id in get user/self/db
This commit is contained in:
parent
6aad2e560f
commit
bb4965ab07
2 changed files with 22 additions and 26 deletions
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue