Skip to content

Commit f3d0475

Browse files
authored
fix: role isn't updating properly (calcom#25415)
1 parent 061283b commit f3d0475

1 file changed

Lines changed: 13 additions & 2 deletions

File tree

packages/features/pbac/services/role.service.ts

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import db from "@calcom/prisma";
2-
import type { MembershipRole } from "@calcom/prisma/enums";
2+
import { MembershipRole } from "@calcom/prisma/enums";
33

44
import { RoleType as DomainRoleType } from "../domain/models/Role";
55
import 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
}

0 commit comments

Comments
 (0)