Verschieden Settings hinzugefügt (inkomplett)
This commit is contained in:
@@ -12,7 +12,6 @@ const saltRounds = 10;
|
||||
export const registerUser = async ({ email, username, password, language }) => {
|
||||
const iv = generateIv();
|
||||
const encryptedEmail = encrypt(email, iv);
|
||||
console.log(email, iv, process.env.SECRET_KEY);
|
||||
const results = await sequelize.query(
|
||||
`SELECT * FROM "community"."user" WHERE "email" = :email`,
|
||||
{
|
||||
@@ -20,14 +19,11 @@ export const registerUser = async ({ email, username, password, language }) => {
|
||||
type: sequelize.QueryTypes.SELECT
|
||||
}
|
||||
);
|
||||
console.log(results);
|
||||
if (results.length && results.length > 0) {
|
||||
throw new Error('Email already in use');
|
||||
}
|
||||
|
||||
const hashedPassword = await bcrypt.hash(password, saltRounds);
|
||||
const resetToken = uuidv4();
|
||||
|
||||
const user = await User.create({
|
||||
email: encryptedEmail,
|
||||
iv: iv.toString('hex'),
|
||||
@@ -37,18 +33,15 @@ export const registerUser = async ({ email, username, password, language }) => {
|
||||
active: false,
|
||||
registration_date: new Date()
|
||||
});
|
||||
|
||||
const languageType = await UserParamType.findOne({ where: { description: 'language' } });
|
||||
if (!languageType) {
|
||||
throw new Error('Language type not found');
|
||||
}
|
||||
|
||||
await UserParam.create({
|
||||
userId: user.id,
|
||||
paramTypeId: languageType.id,
|
||||
value: language
|
||||
});
|
||||
|
||||
const activationLink = `${process.env.FRONTEND_URL}/activate?token=${resetToken}`;
|
||||
await sendAccountActivationEmail(email, activationLink, username, resetToken, language);
|
||||
|
||||
@@ -56,7 +49,6 @@ export const registerUser = async ({ email, username, password, language }) => {
|
||||
};
|
||||
|
||||
export const loginUser = async ({ username, password }) => {
|
||||
console.log('check login');
|
||||
const user = await User.findOne({ where: { username } });
|
||||
if (!user) {
|
||||
throw new Error('credentialsinvalid');
|
||||
@@ -65,7 +57,7 @@ export const loginUser = async ({ username, password }) => {
|
||||
if (!match) {
|
||||
throw new Error('credentialsinvalid');
|
||||
}
|
||||
const neededParams = await UserParam.findAll({
|
||||
const params = await UserParam.findAll({
|
||||
where: {
|
||||
userId: user.id
|
||||
},
|
||||
@@ -73,23 +65,13 @@ export const loginUser = async ({ username, password }) => {
|
||||
model: UserParamType,
|
||||
as: 'paramType',
|
||||
where: {
|
||||
description: ['birthdate', 'gender']
|
||||
description: ['birthdate', 'gender', 'language']
|
||||
}
|
||||
}
|
||||
});
|
||||
const language = await UserParam.findOne({
|
||||
where: {
|
||||
userId: user.id
|
||||
},
|
||||
include: {
|
||||
model: UserParamType,
|
||||
as: 'paramType',
|
||||
where: {
|
||||
description: 'language'
|
||||
}
|
||||
}
|
||||
});
|
||||
return { id: user.hashedId, username: user.username, active: user.active, forwardDataInput: neededParams.length < 2, language: language.value };
|
||||
const mappedParams = params.map(param => {
|
||||
return { 'name': param.paramType.description, 'value': param.value }; });
|
||||
return { id: user.hashedId, username: user.username, active: user.active, param: mappedParams };
|
||||
};
|
||||
|
||||
export const handleForgotPassword = async ({ email }) => {
|
||||
@@ -97,16 +79,12 @@ export const handleForgotPassword = async ({ email }) => {
|
||||
if (!user) {
|
||||
throw new Error('Email not found');
|
||||
}
|
||||
|
||||
const resetToken = uuidv4();
|
||||
const resetLink = `${process.env.FRONTEND_URL}/reset-password?token=${resetToken}`;
|
||||
await user.update({ reset_token: resetToken });
|
||||
|
||||
const languageParam = await UserParam.findOne({ where: { user_id: user.id, param_type_id: languageType.id } });
|
||||
const userLanguage = languageParam ? languageParam.value : 'en';
|
||||
|
||||
await sendPasswordResetEmail(email, resetLink, userLanguage);
|
||||
|
||||
return { message: 'Password reset email sent' };
|
||||
};
|
||||
|
||||
@@ -115,7 +93,6 @@ export const activateUserAccount = async ({ token }) => {
|
||||
if (!user) {
|
||||
throw new Error('Invalid token');
|
||||
}
|
||||
|
||||
await user.update({ active: true, reset_token: null });
|
||||
return { message: 'Account activated' };
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user