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
@@ -127,7 +127,7 @@ export default FF_WORKSPACES_MODULE_ENABLED
|
||||
workspaceJoinRequestMutations: () => ({})
|
||||
},
|
||||
WorkspaceJoinRequestMutations: {
|
||||
approve: async (_parent, args) => {
|
||||
approve: async (_parent, args, ctx) => {
|
||||
const approveWorkspaceJoinRequest =
|
||||
commandFactory<ApproveWorkspaceJoinRequest>({
|
||||
db,
|
||||
@@ -163,7 +163,8 @@ export default FF_WORKSPACES_MODULE_ENABLED
|
||||
})
|
||||
return await approveWorkspaceJoinRequest({
|
||||
userId: args.input.userId,
|
||||
workspaceId: args.input.workspaceId
|
||||
workspaceId: args.input.workspaceId,
|
||||
approvedByUserId: ctx.userId!
|
||||
})
|
||||
},
|
||||
deny: async (_parent, args) => {
|
||||
|
||||
@@ -98,7 +98,7 @@ import {
|
||||
import {
|
||||
createWorkspaceProjectFactory,
|
||||
getWorkspaceProjectsFactory,
|
||||
getWorkspaceRoleToDefaultProjectRoleMappingFactory,
|
||||
getWorkspaceRolesAllowedProjectRolesFactory,
|
||||
moveProjectToWorkspaceFactory,
|
||||
queryAllWorkspaceProjectsFactory
|
||||
} from '@/modules/workspaces/services/projects'
|
||||
@@ -177,6 +177,7 @@ import { getDefaultRegionFactory } from '@/modules/workspaces/repositories/regio
|
||||
import { convertFunctionToGraphQLReturn } from '@/modules/automate/services/functionManagement'
|
||||
import {
|
||||
getWorkspacePlanFactory,
|
||||
getWorkspaceWithPlanFactory,
|
||||
upsertWorkspacePlanFactory
|
||||
} from '@/modules/gatekeeper/repositories/billing'
|
||||
import { Knex } from 'knex'
|
||||
@@ -206,6 +207,7 @@ import {
|
||||
import { ensureValidWorkspaceRoleSeatFactory } from '@/modules/workspaces/services/workspaceSeat'
|
||||
import {
|
||||
createWorkspaceSeatFactory,
|
||||
getWorkspaceRolesAndSeatsFactory,
|
||||
getWorkspaceUserSeatFactory
|
||||
} from '@/modules/gatekeeper/repositories/workspaceSeat'
|
||||
|
||||
@@ -606,7 +608,12 @@ export = FF_WORKSPACES_MODULE_ENABLED
|
||||
})
|
||||
})
|
||||
})
|
||||
await updateWorkspaceRole({ userId, workspaceId, role })
|
||||
await updateWorkspaceRole({
|
||||
userId,
|
||||
workspaceId,
|
||||
role,
|
||||
updatedByUserId: context.userId!
|
||||
})
|
||||
}
|
||||
|
||||
return await getWorkspaceFactory({ db })({
|
||||
@@ -1004,10 +1011,10 @@ export = FF_WORKSPACES_MODULE_ENABLED
|
||||
updateProject: updateProjectFactory({ db }),
|
||||
upsertProjectRole: upsertProjectRoleFactory({ db }),
|
||||
getProjectCollaborators: getProjectCollaboratorsFactory({ db }),
|
||||
getWorkspaceRoles: getWorkspaceRolesFactory({ db }),
|
||||
getWorkspaceRoleToDefaultProjectRoleMapping:
|
||||
getWorkspaceRoleToDefaultProjectRoleMappingFactory({
|
||||
getWorkspace: getWorkspaceFactory({ db })
|
||||
getWorkspaceRolesAndSeats: getWorkspaceRolesAndSeatsFactory({ db }),
|
||||
getWorkspaceRolesAllowedProjectRoles:
|
||||
getWorkspaceRolesAllowedProjectRolesFactory({
|
||||
getWorkspaceWithPlan: getWorkspaceWithPlanFactory({ db })
|
||||
}),
|
||||
updateWorkspaceRole: updateWorkspaceRoleFactory({
|
||||
getWorkspaceRoles: getWorkspaceRolesFactory({ db }),
|
||||
@@ -1025,7 +1032,11 @@ export = FF_WORKSPACES_MODULE_ENABLED
|
||||
})
|
||||
})
|
||||
|
||||
return await moveProjectToWorkspace({ projectId, workspaceId })
|
||||
return await moveProjectToWorkspace({
|
||||
projectId,
|
||||
workspaceId,
|
||||
movedByUserId: context.userId!
|
||||
})
|
||||
}
|
||||
},
|
||||
Workspace: {
|
||||
|
||||
Reference in New Issue
Block a user