feat(server): support editor -> viewer seat downgrades (#4181)
* new seat based project role checks implemented * everything done * minor bugfix
This commit is contained in:
committed by
GitHub
parent
50fd05afe8
commit
d903e8ffc4
@@ -7,6 +7,7 @@ import {
|
||||
import { GetUser } from '@/modules/core/domain/users/operations'
|
||||
import { NotFoundError } from '@/modules/shared/errors'
|
||||
import {
|
||||
ApproveWorkspaceJoinRequest,
|
||||
CreateWorkspaceJoinRequest,
|
||||
DenyWorkspaceJoinRequest,
|
||||
EnsureValidWorkspaceRoleSeat,
|
||||
@@ -119,8 +120,8 @@ export const approveWorkspaceJoinRequestFactory =
|
||||
upsertWorkspaceRole: UpsertWorkspaceRole
|
||||
emit: EventBus['emit']
|
||||
ensureValidWorkspaceRoleSeat: EnsureValidWorkspaceRoleSeat
|
||||
}) =>
|
||||
async ({ userId, workspaceId }: { userId: string; workspaceId: string }) => {
|
||||
}): ApproveWorkspaceJoinRequest =>
|
||||
async ({ userId, workspaceId, approvedByUserId }) => {
|
||||
const requester = await getUserById(userId)
|
||||
if (!requester) {
|
||||
throw new NotFoundError('User not found')
|
||||
@@ -153,7 +154,11 @@ export const approveWorkspaceJoinRequestFactory =
|
||||
await emit({ eventName: WorkspaceEvents.Updated, payload: { workspace } })
|
||||
await emit({
|
||||
eventName: WorkspaceEvents.RoleUpdated,
|
||||
payload: { acl: { workspaceId, userId, role }, seatType: type }
|
||||
payload: {
|
||||
acl: { workspaceId, userId, role },
|
||||
seatType: type,
|
||||
updatedByUserId: approvedByUserId
|
||||
}
|
||||
})
|
||||
|
||||
await sendWorkspaceJoinRequestApprovedEmail({
|
||||
|
||||
Reference in New Issue
Block a user