mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-09-22 13:39:35 +00:00
feat: more testing fix
This commit is contained in:
@@ -1061,16 +1061,16 @@ const rollbackMembershipData = async (knex: Knex) => {
|
||||
};
|
||||
|
||||
export async function down(knex: Knex): Promise<void> {
|
||||
const hasMembershipTable = await knex.schema.hasTable(TableName.Membership);
|
||||
if (hasMembershipTable) {
|
||||
await rollbackMembershipData(knex);
|
||||
}
|
||||
|
||||
const hasRoleTable = await knex.schema.hasTable(TableName.Role);
|
||||
if (hasRoleTable) {
|
||||
await rollbackRoleData(knex);
|
||||
}
|
||||
|
||||
const hasMembershipTable = await knex.schema.hasTable(TableName.Membership);
|
||||
if (hasMembershipTable) {
|
||||
await rollbackMembershipData(knex);
|
||||
}
|
||||
|
||||
const hasMembershipRoleTable = await knex.schema.hasTable(TableName.MembershipRole);
|
||||
if (hasMembershipRoleTable) {
|
||||
await rollbackMembershipRoleData(knex);
|
||||
|
||||
@@ -126,7 +126,7 @@ export const groupServiceFactory = ({
|
||||
slug: slug || slugify(`${name}-${alphaNumericNanoId(4)}`),
|
||||
orgId: actorOrgId,
|
||||
role: isCustomRole ? OrgMembershipRole.Custom : role,
|
||||
roleId: rolePermissionDetails?.role?.id
|
||||
roleId: null
|
||||
},
|
||||
tx
|
||||
);
|
||||
|
||||
@@ -195,6 +195,7 @@ export const membershipGroupDALFactory = (db: TDbClient) => {
|
||||
db.ref("id").withSchema(TableName.Groups).as("groupId"),
|
||||
|
||||
db.ref("slug").withSchema(TableName.Role).as("roleSlug"),
|
||||
db.ref("name").withSchema(TableName.Role).as("roleName"),
|
||||
db.ref("id").withSchema(TableName.MembershipRole).as("membershipRoleId"),
|
||||
db.ref("role").withSchema(TableName.MembershipRole).as("membershipRole"),
|
||||
db.ref("temporaryMode").withSchema(TableName.MembershipRole).as("membershipRoleTemporaryMode"),
|
||||
@@ -237,6 +238,7 @@ export const membershipGroupDALFactory = (db: TDbClient) => {
|
||||
label: "roles" as const,
|
||||
mapper: ({
|
||||
roleSlug,
|
||||
roleName,
|
||||
membershipRoleId,
|
||||
membershipRole,
|
||||
membershipRoleIsTemporary,
|
||||
@@ -250,6 +252,7 @@ export const membershipGroupDALFactory = (db: TDbClient) => {
|
||||
id: membershipRoleId,
|
||||
role: membershipRole,
|
||||
customRoleSlug: roleSlug,
|
||||
customRoleName: roleName,
|
||||
temporaryRange: membershipRoleTemporaryRange,
|
||||
temporaryMode: membershipRoleTemporaryMode,
|
||||
temporaryAccessStartTime: membershipRoleTemporaryAccessStartTime,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { ForbiddenError } from "@casl/ability";
|
||||
|
||||
import { AccessScope, ActionProjectType, ProjectMembershipRole } from "@app/db/schemas";
|
||||
import { AccessScope, ActionProjectType, OrgMembershipStatus, ProjectMembershipRole } from "@app/db/schemas";
|
||||
import {
|
||||
constructPermissionErrorMessage,
|
||||
validatePrivilegeChangeOperation
|
||||
@@ -112,19 +112,36 @@ export const newProjectMembershipUserFactory = ({
|
||||
dto,
|
||||
newMembers
|
||||
) => {
|
||||
const orgMembershipAccepted = await membershipUserDAL.find({
|
||||
scope: AccessScope.Organization,
|
||||
scopeOrgId: dto.permission.orgId,
|
||||
status: OrgMembershipStatus.Accepted,
|
||||
$in: {
|
||||
actorUserId: newMembers.map((el) => el.id)
|
||||
}
|
||||
});
|
||||
|
||||
if (!orgMembershipAccepted.length) return { signUpTokens: [] };
|
||||
|
||||
const appCfg = getConfig();
|
||||
const scope = getScopeField(dto.scopeData);
|
||||
const project = await projectDAL.findById(scope.value);
|
||||
const emails = newMembers.filter((el) => Boolean(el?.email)).map((el) => el?.email as string);
|
||||
await smtpService.sendMail({
|
||||
template: SmtpTemplates.WorkspaceInvite,
|
||||
subjectLine: "Infisical project invitation",
|
||||
recipients: emails,
|
||||
substitutions: {
|
||||
workspaceName: project.name,
|
||||
callback_url: `${appCfg.SITE_URL}/login`
|
||||
}
|
||||
});
|
||||
|
||||
const orgMembershipAcceptedUserIds = orgMembershipAccepted.map((el) => el.actorUserId as string);
|
||||
const emails = newMembers
|
||||
.filter((el) => Boolean(el?.email) && orgMembershipAcceptedUserIds.includes(el.id))
|
||||
.map((el) => el?.email as string);
|
||||
if (emails.length) {
|
||||
await smtpService.sendMail({
|
||||
template: SmtpTemplates.WorkspaceInvite,
|
||||
subjectLine: "Infisical project invitation",
|
||||
recipients: emails,
|
||||
substitutions: {
|
||||
workspaceName: project.name,
|
||||
callback_url: `${appCfg.SITE_URL}/login`
|
||||
}
|
||||
});
|
||||
}
|
||||
return { signUpTokens: [] };
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user