Merge pull request #3741 from Infisical/fix/inviteUsersByUsernameFix

Fix for inviteUserToOrganization for usernames with no email formats
This commit is contained in:
carlosmonastyrski
2025-06-05 21:04:15 -03:00
committed by GitHub
2 changed files with 23 additions and 11 deletions
+6
View File
@@ -835,6 +835,11 @@ export const orgServiceFactory = ({
// if the user doesn't exist we create the user with the email // if the user doesn't exist we create the user with the email
if (!inviteeUser) { if (!inviteeUser) {
// TODO(carlos): will be removed once the function receives usernames instead of emails
const usersByEmail = await userDAL.findUserByEmail(inviteeEmail, tx);
if (usersByEmail?.length === 1) {
[inviteeUser] = usersByEmail;
} else {
inviteeUser = await userDAL.create( inviteeUser = await userDAL.create(
{ {
isAccepted: false, isAccepted: false,
@@ -846,6 +851,7 @@ export const orgServiceFactory = ({
tx tx
); );
} }
}
const inviteeUserId = inviteeUser?.id; const inviteeUserId = inviteeUser?.id;
const existingEncrytionKey = await userDAL.findUserEncKeyByUserId(inviteeUserId, tx); const existingEncrytionKey = await userDAL.findUserEncKeyByUserId(inviteeUserId, tx);
+7 -1
View File
@@ -21,6 +21,11 @@ export const userDALFactory = (db: TDbClient) => {
const findUserByUsername = async (username: string, tx?: Knex) => const findUserByUsername = async (username: string, tx?: Knex) =>
(tx || db)(TableName.Users).whereRaw('lower("username") = :username', { username: username.toLowerCase() }); (tx || db)(TableName.Users).whereRaw('lower("username") = :username', { username: username.toLowerCase() });
const findUserByEmail = async (email: string, tx?: Knex) =>
(tx || db)(TableName.Users).whereRaw('lower("email") = :email', { email: email.toLowerCase() }).where({
isEmailVerified: true
});
const getUsersByFilter = async ({ const getUsersByFilter = async ({
limit, limit,
offset, offset,
@@ -234,6 +239,7 @@ export const userDALFactory = (db: TDbClient) => {
findOneUserAction, findOneUserAction,
createUserAction, createUserAction,
getUsersByFilter, getUsersByFilter,
findAllMyAccounts findAllMyAccounts,
findUserByEmail
}; };
}; };