(session: {
userId: string;
activeOrganizationId: string;
})
| 134 | }; |
| 135 | |
| 136 | export const getAccessibleServerIds = async (session: { |
| 137 | userId: string; |
| 138 | activeOrganizationId: string; |
| 139 | }): Promise<Set<string>> => { |
| 140 | const { userId, activeOrganizationId } = session; |
| 141 | |
| 142 | const allOrgServers = await db.query.server.findMany({ |
| 143 | where: eq(server.organizationId, activeOrganizationId), |
| 144 | columns: { |
| 145 | serverId: true, |
| 146 | }, |
| 147 | }); |
| 148 | |
| 149 | const memberRecord = await db.query.member.findFirst({ |
| 150 | where: and( |
| 151 | eq(member.userId, userId), |
| 152 | eq(member.organizationId, activeOrganizationId), |
| 153 | ), |
| 154 | columns: { accessedServers: true, role: true }, |
| 155 | }); |
| 156 | |
| 157 | if (memberRecord?.role === "owner" || memberRecord?.role === "admin") { |
| 158 | return new Set(allOrgServers.map((s) => s.serverId)); |
| 159 | } |
| 160 | |
| 161 | const licensed = await hasValidLicense(activeOrganizationId); |
| 162 | |
| 163 | if (!licensed) { |
| 164 | return new Set(allOrgServers.map((s) => s.serverId)); |
| 165 | } |
| 166 | |
| 167 | return new Set(memberRecord?.accessedServers ?? []); |
| 168 | }; |
no test coverage detected