* feat: Pbac decorator and guard * feat: v2 roles endpoints * fix: test * fix: starting v2 * fix: test error * fix: test api keys * fix fixture * test permission creation * feat: permissions endpoints * refactors * refactor: project structure * test: role permissions crud * test: permissions endpoint negative tests * docs: org, team permissions swagger * unit tests for validator * Update roles.guard.ts * fix type * test: error messages * refactor: dont throw error in pbac * delete redundant test file * feedback: logging error * fix: persist role.permissions when updating role.otherProperty * refactor: use output service to return permissions * refactor: service functions return current permissions * refactor: remove OrganizationsRepository from providers * refactor: try catch possibly duplicate create * refactor: require min length name if provided * refactor: org role has orgId and team role teamId * fix: pbac guard caching * fix: e2e tests in parallel * refactor: use IsTeamInOrg guard for orgs teams roles and permissions endpoints * refactor: use redis service getter and setter * refactor: invalidate team permissions cache when permissions change * refactor: delete keys instead of versioning when caching
40 lines
1.5 KiB
TypeScript
40 lines
1.5 KiB
TypeScript
import { MembershipsModule } from "@/modules/memberships/memberships.module";
|
|
import { OrganizationsRolesOutputService } from "@/modules/organizations/roles/services/organizations-roles-output.service";
|
|
import { PrismaModule } from "@/modules/prisma/prisma.module";
|
|
import { RedisModule } from "@/modules/redis/redis.module";
|
|
import { StripeModule } from "@/modules/stripe/stripe.module";
|
|
import { Module } from "@nestjs/common";
|
|
|
|
import { RoleService } from "@calcom/platform-libraries/pbac";
|
|
|
|
import { TeamRolesOutputService } from "../organizations/teams/roles/services/team-roles-output.service";
|
|
import { RolesPermissionsCacheService } from "./permissions/services/roles-permissions-cache.service";
|
|
import { RolesPermissionsOutputService } from "./permissions/services/roles-permissions-output.service";
|
|
import { RolesPermissionsService } from "./permissions/services/roles-permissions.service";
|
|
import { RolesService } from "./services/roles.service";
|
|
|
|
@Module({
|
|
imports: [StripeModule, PrismaModule, RedisModule, MembershipsModule],
|
|
providers: [
|
|
{
|
|
provide: RoleService,
|
|
useFactory: () => new RoleService(),
|
|
},
|
|
RolesService,
|
|
TeamRolesOutputService,
|
|
OrganizationsRolesOutputService,
|
|
RolesPermissionsService,
|
|
RolesPermissionsOutputService,
|
|
RolesPermissionsCacheService,
|
|
],
|
|
exports: [
|
|
RolesService,
|
|
TeamRolesOutputService,
|
|
OrganizationsRolesOutputService,
|
|
RolesPermissionsService,
|
|
RolesPermissionsOutputService,
|
|
RolesPermissionsCacheService,
|
|
],
|
|
})
|
|
export class RolesModule {}
|