mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-08 07:27:43 +00:00
Small improvement on custom roles for groups memerships migration
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
import { Knex } from "knex";
|
import { Knex } from "knex";
|
||||||
|
|
||||||
import { AccessScope, OrgMembershipRole, TableName } from "../schemas";
|
import { AccessScope, TableName } from "../schemas";
|
||||||
|
|
||||||
export async function up(knex: Knex): Promise<void> {
|
export async function up(knex: Knex): Promise<void> {
|
||||||
const hasGroupsTable = await knex.schema.hasTable(TableName.Groups);
|
const hasGroupsTable = await knex.schema.hasTable(TableName.Groups);
|
||||||
@@ -12,7 +12,12 @@ export async function up(knex: Knex): Promise<void> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const groupsWithoutMembership = await knex
|
const groupsWithoutMembership = await knex
|
||||||
.select(`${TableName.Groups}.id`, `${TableName.Groups}.orgId`)
|
.select(
|
||||||
|
`${TableName.Groups}.id`,
|
||||||
|
`${TableName.Groups}.orgId`,
|
||||||
|
`${TableName.Groups}.role`,
|
||||||
|
`${TableName.Groups}.roleId`
|
||||||
|
)
|
||||||
.from(TableName.Groups)
|
.from(TableName.Groups)
|
||||||
.leftJoin(TableName.Membership, `${TableName.Groups}.id`, `${TableName.Membership}.actorGroupId`)
|
.leftJoin(TableName.Membership, `${TableName.Groups}.id`, `${TableName.Membership}.actorGroupId`)
|
||||||
.whereNull(`${TableName.Membership}.actorGroupId`);
|
.whereNull(`${TableName.Membership}.actorGroupId`);
|
||||||
@@ -27,11 +32,14 @@ export async function up(knex: Knex): Promise<void> {
|
|||||||
|
|
||||||
const insertedMemberships = await knex(TableName.Membership).insert(membershipInserts).returning("*");
|
const insertedMemberships = await knex(TableName.Membership).insert(membershipInserts).returning("*");
|
||||||
|
|
||||||
const membershipRoleInserts = insertedMemberships.map((membership) => ({
|
const membershipRoleInserts = insertedMemberships.map((membership, index) => {
|
||||||
|
const group = groupsWithoutMembership[index];
|
||||||
|
return {
|
||||||
membershipId: membership.id,
|
membershipId: membership.id,
|
||||||
role: OrgMembershipRole.NoAccess,
|
role: group.role,
|
||||||
customRoleId: null
|
customRoleId: group.roleId
|
||||||
}));
|
};
|
||||||
|
});
|
||||||
|
|
||||||
await knex(TableName.MembershipRole).insert(membershipRoleInserts);
|
await knex(TableName.MembershipRole).insert(membershipRoleInserts);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user