mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-03 14:26:02 +00:00
Delete unaccepted users upon merge user op
This commit is contained in:
@@ -94,14 +94,6 @@ export const userDALFactory = (db: TDbClient) => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const findMergeableUsers = async (email: string, tx?: Knex) => {
|
|
||||||
const users = await (tx || db)(TableName.Users).where((builder) => {
|
|
||||||
void builder.where({ email, isEmailVerified: true }).orWhere({ email, isAccepted: false });
|
|
||||||
});
|
|
||||||
|
|
||||||
return users;
|
|
||||||
};
|
|
||||||
|
|
||||||
const updateUserEncryptionByUserId = async (userId: string, data: TUserEncryptionKeysUpdate, tx?: Knex) => {
|
const updateUserEncryptionByUserId = async (userId: string, data: TUserEncryptionKeysUpdate, tx?: Knex) => {
|
||||||
try {
|
try {
|
||||||
const [userEnc] = await (tx || db)(TableName.UserEncryptionKey)
|
const [userEnc] = await (tx || db)(TableName.UserEncryptionKey)
|
||||||
@@ -162,7 +154,6 @@ export const userDALFactory = (db: TDbClient) => {
|
|||||||
findUsersByProjectMembershipIds,
|
findUsersByProjectMembershipIds,
|
||||||
upsertUserEncryptionKey,
|
upsertUserEncryptionKey,
|
||||||
createUserEncryption,
|
createUserEncryption,
|
||||||
findMergeableUsers,
|
|
||||||
findOneUserAction,
|
findOneUserAction,
|
||||||
createUserAction
|
createUserAction
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -12,7 +12,6 @@ type TUserServiceFactoryDep = {
|
|||||||
userDAL: Pick<
|
userDAL: Pick<
|
||||||
TUserDALFactory,
|
TUserDALFactory,
|
||||||
| "find"
|
| "find"
|
||||||
| "findMergeableUsers"
|
|
||||||
| "findOne"
|
| "findOne"
|
||||||
| "findById"
|
| "findById"
|
||||||
| "transaction"
|
| "transaction"
|
||||||
@@ -22,6 +21,7 @@ type TUserServiceFactoryDep = {
|
|||||||
| "findOneUserAction"
|
| "findOneUserAction"
|
||||||
| "createUserAction"
|
| "createUserAction"
|
||||||
| "findUserEncKeyByUserId"
|
| "findUserEncKeyByUserId"
|
||||||
|
| "delete"
|
||||||
>;
|
>;
|
||||||
userAliasDAL: Pick<TUserAliasDALFactory, "find" | "insertMany">;
|
userAliasDAL: Pick<TUserAliasDALFactory, "find" | "insertMany">;
|
||||||
orgMembershipDAL: Pick<TOrgMembershipDALFactory, "find" | "insertMany">;
|
orgMembershipDAL: Pick<TOrgMembershipDALFactory, "find" | "insertMany">;
|
||||||
@@ -86,8 +86,14 @@ export const userServiceFactory = ({
|
|||||||
tx
|
tx
|
||||||
);
|
);
|
||||||
|
|
||||||
// check if there are users with the same email.
|
// check if there are verified users with the same email.
|
||||||
const users = await userDAL.findMergeableUsers(email, tx);
|
const users = await userDAL.find(
|
||||||
|
{
|
||||||
|
email,
|
||||||
|
isEmailVerified: true
|
||||||
|
},
|
||||||
|
{ tx }
|
||||||
|
);
|
||||||
|
|
||||||
if (users.length > 1) {
|
if (users.length > 1) {
|
||||||
// merge users
|
// merge users
|
||||||
@@ -129,6 +135,15 @@ export const userServiceFactory = ({
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
await userDAL.delete(
|
||||||
|
{
|
||||||
|
email,
|
||||||
|
isAccepted: false,
|
||||||
|
isEmailVerified: false
|
||||||
|
},
|
||||||
|
tx
|
||||||
|
);
|
||||||
|
|
||||||
// update current user's username to [email]
|
// update current user's username to [email]
|
||||||
await userDAL.updateById(
|
await userDAL.updateById(
|
||||||
user.id,
|
user.id,
|
||||||
|
|||||||
Reference in New Issue
Block a user