feat: more patchy patch

This commit is contained in:
=
2025-10-09 12:18:44 +05:30
parent 97135d9cfa
commit 26543b6374
4 changed files with 33 additions and 23 deletions

View File

@@ -372,14 +372,12 @@ export const githubOrgSyncServiceFactory = ({
tx
);
const memberships = await membershipGroupDAL.insertMany(
newGroups.map(
(el) => ({
actorGroupId: el.id,
scope: AccessScope.Organization,
scopeOrgId: orgId
}),
tx
)
newGroups.map((el) => ({
actorGroupId: el.id,
scope: AccessScope.Organization,
scopeOrgId: orgId
})),
tx
);
await membershipRoleDAL.insertMany(
@@ -717,14 +715,12 @@ export const githubOrgSyncServiceFactory = ({
);
const memberships = await membershipGroupDAL.insertMany(
newGroups.map(
(el) => ({
actorGroupId: el.id,
scope: AccessScope.Organization,
scopeOrgId: orgPermission.orgId
}),
tx
)
newGroups.map((el) => ({
actorGroupId: el.id,
scope: AccessScope.Organization,
scopeOrgId: orgPermission.orgId
})),
tx
);
await membershipRoleDAL.insertMany(

View File

@@ -467,7 +467,7 @@ export const ldapConfigServiceFactory = ({
const [orgMembership] = await orgDAL.findMembership(
{
[`${TableName.Membership}.actorUserId` as "actorUserId"]: userAlias.userId,
[`${TableName.Membership}.actorUserId` as "actorUserId"]: newUserAlias.userId,
[`${TableName.Membership}.scopeOrgId` as "scopeOrgId"]: orgId,
[`${TableName.Membership}.scope` as "scope"]: AccessScope.Organization
},

View File

@@ -229,7 +229,9 @@ export const OrgPermissionSchema = z.discriminatedUnion("subject", [
}),
z.object({
subject: z.literal(OrgPermissionSubjects.Billing).describe("The entity this permission pertains to."),
action: CASL_ACTION_SCHEMA_NATIVE_ENUM(OrgPermissionActions).describe("Describe what action an entity can take.")
action: CASL_ACTION_SCHEMA_NATIVE_ENUM(OrgPermissionBillingActions).describe(
"Describe what action an entity can take."
)
}),
z.object({
subject: z.literal(OrgPermissionSubjects.Identity).describe("The entity this permission pertains to."),

View File

@@ -52,10 +52,14 @@ export const newProjectAdditionalPrivilegesFactory = ({
async (dto) => {
const scope = getScopeField(dto.scopeData);
const { permission } = await $getPermission(dto.permission, scope.value);
ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionMemberActions.Edit, ProjectPermissionSub.Member);
const { actorType } = dto.data;
const { permission } = await $getPermission(dto.permission, scope.value);
const permissionSet =
actorType === ActorType.USER
? ([ProjectPermissionMemberActions.Edit, ProjectPermissionSub.Member] as const)
: ([ProjectPermissionIdentityActions.Edit, ProjectPermissionSub.Identity] as const);
ForbiddenError.from(permission).throwUnlessCan(...permissionSet);
const { shouldUseNewPrivilegeSystem } = await orgDAL.findById(dto.permission.orgId);
const { permission: targetUserPermission, memberships } = await $getPermission(
{ ...dto.permission, type: actorType, id: dto.data.actorId },
@@ -98,7 +102,11 @@ export const newProjectAdditionalPrivilegesFactory = ({
const { actorType } = dto.selector;
const { permission } = await $getPermission(dto.permission, scope.value);
ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionMemberActions.Edit, ProjectPermissionSub.Member);
const permissionSet =
actorType === ActorType.USER
? ([ProjectPermissionMemberActions.Edit, ProjectPermissionSub.Member] as const)
: ([ProjectPermissionIdentityActions.Edit, ProjectPermissionSub.Identity] as const);
ForbiddenError.from(permission).throwUnlessCan(...permissionSet);
const { shouldUseNewPrivilegeSystem } = await orgDAL.findById(dto.permission.orgId);
const { permission: targetUserPermission, memberships } = await $getPermission(
@@ -142,7 +150,11 @@ export const newProjectAdditionalPrivilegesFactory = ({
const { actorType } = dto.selector;
const { permission } = await $getPermission(dto.permission, scope.value);
ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionMemberActions.Edit, ProjectPermissionSub.Member);
const permissionSet =
actorType === ActorType.USER
? ([ProjectPermissionMemberActions.Edit, ProjectPermissionSub.Member] as const)
: ([ProjectPermissionIdentityActions.Edit, ProjectPermissionSub.Identity] as const);
ForbiddenError.from(permission).throwUnlessCan(...permissionSet);
const membership = await membershipDAL.findOne({
scopeOrgId: dto.permission.orgId,