Files
speckle-server/packages/server/modules/shared/index.ts
T
Kristaps Fabians Geikins 820a1e2ebf feat(server): workspace roles taken into account in project queries (#4319)
* Workspace.projects fixed

* Query.project tested & fixed

* personalOnly flag added

* withProjectRoleOnly flag

* authorizeResolver implicit workspace roles

* minor cleanup

* reorg + support for throwing auth errors

* global error mapping

* undo special borkage

* CR fixes

* more CR fixes

* shared tests fix

* minor adjustment

* tests fix

* see if removing cached roles fixes it?

* more fixes

* clean up debugging garbage
2025-04-07 12:52:07 +03:00

39 lines
1.3 KiB
TypeScript

import { db } from '@/db/knex'
import { getStreamFactory } from '@/modules/core/repositories/streams'
import { adminOverrideEnabled } from '@/modules/shared/helpers/envHelper'
import {
getUserAclRoleFactory,
getUserServerRoleFactory
} from '@/modules/shared/repositories/acl'
import { getRolesFactory } from '@/modules/shared/repositories/roles'
import {
authorizeResolverFactory,
validateScopesFactory
} from '@/modules/shared/services/auth'
import { getEventBus } from '@/modules/shared/services/eventBus'
import {
pubsub,
StreamSubscriptions,
CommitSubscriptions,
BranchSubscriptions
} from '@/modules/shared/utils/subscriptions'
import { getWorkspaceRoleAndSeatFactory } from '@/modules/workspacesCore/repositories/rolesSeats'
export {
pubsub,
StreamSubscriptions as StreamPubsubEvents,
CommitSubscriptions as CommitPubsubEvents,
BranchSubscriptions as BranchPubsubEvents
}
export const validateScopes = validateScopesFactory()
export const authorizeResolver = authorizeResolverFactory({
getRoles: getRolesFactory({ db }),
adminOverrideEnabled,
getUserServerRole: getUserServerRoleFactory({ db }),
getStream: getStreamFactory({ db }),
getUserAclRole: getUserAclRoleFactory({ db }),
emitWorkspaceEvent: getEventBus().emit,
getWorkspaceRoleAndSeat: getWorkspaceRoleAndSeatFactory({ db })
})