feat: add organization settings and invitations
This commit is contained in:
@@ -9,6 +9,7 @@ import {
|
||||
elders,
|
||||
joinRequests,
|
||||
memberships,
|
||||
organizationInvitations,
|
||||
organizations,
|
||||
roles,
|
||||
rooms,
|
||||
@@ -23,6 +24,7 @@ import type {
|
||||
JoinRequest,
|
||||
Membership,
|
||||
Organization,
|
||||
OrganizationInvitation,
|
||||
Room,
|
||||
Session,
|
||||
SystemIncident,
|
||||
@@ -40,6 +42,7 @@ export async function readData(): Promise<AppData> {
|
||||
accountRows,
|
||||
membershipRows,
|
||||
joinRequestRows,
|
||||
invitationRows,
|
||||
sessionRows,
|
||||
elderRows,
|
||||
roomRows,
|
||||
@@ -62,6 +65,16 @@ export async function readData(): Promise<AppData> {
|
||||
.innerJoin(accounts, eq(accounts.id, joinRequests.accountId))
|
||||
.innerJoin(organizations, eq(organizations.id, joinRequests.organizationId))
|
||||
.orderBy(desc(joinRequests.createdAt)),
|
||||
database
|
||||
.select({
|
||||
invitation: organizationInvitations,
|
||||
organizationName: organizations.name,
|
||||
roleLabel: roles.label,
|
||||
})
|
||||
.from(organizationInvitations)
|
||||
.innerJoin(organizations, eq(organizations.id, organizationInvitations.organizationId))
|
||||
.innerJoin(roles, eq(roles.id, organizationInvitations.roleId))
|
||||
.orderBy(desc(organizationInvitations.createdAt)),
|
||||
database.select().from(sessions).orderBy(desc(sessions.createdAt)),
|
||||
database.select().from(elders).orderBy(desc(elders.createdAt)),
|
||||
database.select().from(rooms).orderBy(desc(rooms.createdAt)),
|
||||
@@ -112,6 +125,14 @@ export async function readData(): Promise<AppData> {
|
||||
name: row.name,
|
||||
slug: row.slug,
|
||||
status: row.status,
|
||||
registrationEnabled: row.registrationEnabled,
|
||||
oidcEnabled: row.oidcEnabled,
|
||||
oidcIssuerUrl: row.oidcIssuerUrl,
|
||||
oidcClientId: row.oidcClientId,
|
||||
oidcHasClientSecret: row.oidcClientSecret.length > 0,
|
||||
oidcScopes: row.oidcScopes,
|
||||
oidcRedirectUri: row.oidcRedirectUri,
|
||||
oidcAutoProvision: row.oidcAutoProvision,
|
||||
createdAt: iso(row.createdAt),
|
||||
updatedAt: iso(row.updatedAt),
|
||||
}));
|
||||
@@ -158,6 +179,23 @@ export async function readData(): Promise<AppData> {
|
||||
createdAt: iso(row.request.createdAt),
|
||||
}));
|
||||
|
||||
const organizationInvitationsData: OrganizationInvitation[] = invitationRows.map((row) => ({
|
||||
id: row.invitation.id,
|
||||
organizationId: row.invitation.organizationId,
|
||||
organizationName: row.organizationName,
|
||||
roleId: row.invitation.roleId,
|
||||
roleLabel: row.roleLabel,
|
||||
email: row.invitation.email,
|
||||
token: row.invitation.token,
|
||||
status: row.invitation.status as OrganizationInvitation["status"],
|
||||
createdByAccountId: row.invitation.createdByAccountId ?? undefined,
|
||||
acceptedByAccountId: row.invitation.acceptedByAccountId ?? undefined,
|
||||
acceptedAt: row.invitation.acceptedAt ? iso(row.invitation.acceptedAt) : undefined,
|
||||
expiresAt: iso(row.invitation.expiresAt),
|
||||
createdAt: iso(row.invitation.createdAt),
|
||||
updatedAt: iso(row.invitation.updatedAt),
|
||||
}));
|
||||
|
||||
const sessionsData: Session[] = sessionRows.map((row) => ({
|
||||
id: row.id,
|
||||
accountId: row.accountId,
|
||||
@@ -243,6 +281,7 @@ export async function readData(): Promise<AppData> {
|
||||
accounts: accountsData,
|
||||
memberships: membershipsData,
|
||||
joinRequests: joinRequestsData,
|
||||
organizationInvitations: organizationInvitationsData,
|
||||
sessions: sessionsData,
|
||||
elders: eldersData,
|
||||
rooms: roomsData,
|
||||
|
||||
Reference in New Issue
Block a user