feat(admin): add edit flows for all catalogs and member authentik sync

This commit is contained in:
Chris
2026-03-30 03:25:53 +08:00
parent 58ea76f8b6
commit 2f97f45795
7 changed files with 286 additions and 0 deletions

View File

@@ -33,3 +33,12 @@ class CompaniesRepository:
self.db.commit()
self.db.refresh(item)
return item
def update(self, item: Company, *, name: str | None = None, status: str | None = None) -> Company:
if name is not None:
item.name = name
if status is not None:
item.status = status
self.db.commit()
self.db.refresh(item)
return item

View File

@@ -24,3 +24,12 @@ class ModulesRepository:
self.db.commit()
self.db.refresh(item)
return item
def update(self, item: Module, *, name: str | None = None, status: str | None = None) -> Module:
if name is not None:
item.name = name
if status is not None:
item.status = status
self.db.commit()
self.db.refresh(item)
return item

View File

@@ -28,6 +28,15 @@ class PermissionGroupsRepository:
self.db.refresh(item)
return item
def update(self, item: PermissionGroup, *, name: str | None = None, status: str | None = None) -> PermissionGroup:
if name is not None:
item.name = name
if status is not None:
item.status = status
self.db.commit()
self.db.refresh(item)
return item
def add_member_if_not_exists(self, group_id: str, authentik_sub: str) -> PermissionGroupMember:
existing = self.db.scalar(
select(PermissionGroupMember).where(

View File

@@ -38,3 +38,21 @@ class SitesRepository:
self.db.commit()
self.db.refresh(item)
return item
def update(
self,
item: Site,
*,
company_id: str | None = None,
name: str | None = None,
status: str | None = None,
) -> Site:
if company_id is not None:
item.company_id = company_id
if name is not None:
item.name = name
if status is not None:
item.status = status
self.db.commit()
self.db.refresh(item)
return item

View File

@@ -31,3 +31,12 @@ class SystemsRepository:
self.db.commit()
self.db.refresh(item)
return item
def update(self, item: System, *, name: str | None = None, status: str | None = None) -> System:
if name is not None:
item.name = name
if status is not None:
item.status = status
self.db.commit()
self.db.refresh(item)
return item