Skip to content

Commit 4c56e69

Browse files
authored
docs: add comments to org membersRouter (langfuse#2939)
1 parent 857cf12 commit 4c56e69

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

web/src/features/rbac/server/membersRouter.ts

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,34 @@ export const membersRouter = createTRPCRouter({
9393
}),
9494
)
9595
.mutation(async ({ input, ctx }) => {
96+
/**
97+
* Create a new organization membership
98+
* - Checks for:
99+
* - scope: organizationMembers:CUD if not only project-role is set, then projectMembers:CUD
100+
* - orgRole is not higher than own role
101+
* - if project role
102+
* - projectRole is not higher than own role
103+
* - entitlement for project roles if projectRole is set
104+
* - project is in org
105+
* - if user exists
106+
* - if org membership exists
107+
* - if only project role is set (orgRole === Role.NONE)
108+
* - create project role
109+
* - audit log
110+
* - return
111+
* - else throw error
112+
* - create org membership
113+
* - audit log
114+
* - if project role is set
115+
* - create project role
116+
* - audit log
117+
* - send email
118+
* - else
119+
* - create membership invitation
120+
* - audit log
121+
* - send email
122+
*/
123+
96124
if (
97125
// Require only project-level access rights if no orgRole is set but a projectId is
98126
input.projectId &&
@@ -292,6 +320,9 @@ export const membersRouter = createTRPCRouter({
292320
}),
293321
)
294322
.mutation(async ({ input, ctx }) => {
323+
/**
324+
* Delete an organization membership, used in membership table
325+
*/
295326
const orgMembership = await ctx.prisma.organizationMembership.findFirst({
296327
where: {
297328
orgId: input.orgId,
@@ -357,6 +388,9 @@ export const membersRouter = createTRPCRouter({
357388
}),
358389
)
359390
.mutation(async ({ input, ctx }) => {
391+
/**
392+
* Delete a membership invitation, used in membership_invitation table
393+
*/
360394
const invitation = await ctx.prisma.membershipInvitation.findFirst({
361395
where: {
362396
orgId: input.orgId,
@@ -411,6 +445,10 @@ export const membersRouter = createTRPCRouter({
411445
}),
412446
)
413447
.mutation(async ({ input, ctx }) => {
448+
/**
449+
* Used by dropdown in membership table to update the organization role of a user
450+
*/
451+
414452
throwIfNoOrganizationAccess({
415453
session: ctx.session,
416454
organizationId: input.orgId,
@@ -481,6 +519,9 @@ export const membersRouter = createTRPCRouter({
481519
}),
482520
)
483521
.mutation(async ({ input, ctx }) => {
522+
/**
523+
* Used by dropdown in membership table to update the project role of a user
524+
*/
484525
const hasAccess =
485526
hasOrganizationAccess({
486527
session: ctx.session,

0 commit comments

Comments
 (0)