File tree Expand file tree Collapse file tree
packages/features/pbac/services Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11import db from "@calcom/prisma" ;
2- import type { MembershipRole } from "@calcom/prisma/enums" ;
2+ import { MembershipRole } from "@calcom/prisma/enums" ;
33
44import { RoleType as DomainRoleType } from "../domain/models/Role" ;
55import type { CreateRoleData , UpdateRolePermissionsData } from "../domain/models/Role" ;
@@ -36,12 +36,23 @@ export class RoleService {
3636 return DEFAULT_ROLE_IDS [ role ] ;
3737 }
3838
39+ private getMembershipRoleFromRoleId ( roleId : string ) : MembershipRole | null {
40+ const entry = Object . entries ( DEFAULT_ROLE_IDS ) . find ( ( [ , id ] ) => id === roleId ) ;
41+ return entry ? ( entry [ 0 ] as MembershipRole ) : null ;
42+ }
43+
3944 async assignRoleToMember ( roleId : string , membershipId : number ) {
4045 const role = await this . repository . findById ( roleId ) ;
4146 if ( ! role ) throw new Error ( "Role not found" ) ;
47+
48+ const membershipRole = this . getMembershipRoleFromRoleId ( roleId ) ;
49+
4250 await db . membership . update ( {
4351 where : { id : membershipId } ,
44- data : { customRoleId : roleId } ,
52+ data : {
53+ customRoleId : roleId ,
54+ ...( membershipRole ? { role : membershipRole } : { } ) ,
55+ } ,
4556 } ) ;
4657 return role ;
4758 }
You can’t perform that action at this time.
0 commit comments