4077-login_recover-password & account_verifyEmail #1063
No reviewers
Labels
No Milestone
No Assignees
3 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: verdnatura/salix#1063
Loading…
Reference in New Issue
No description provided.
Delete Branch "4077-login_recover-password"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Te he ficat uns canvis per al back, quant els tingues mirem front.
@ -0,0 +31,4 @@
});
if (!user)
throw new UserError(`This email does not belong to a user`);
Aixina dones pistes sobre si el correu existeix, si no trova el correu fes
return
de forma que el client es comporte de la mateixa manera. Aquest métode nomes deuria fallar en errors inesperats, que tornarien al client com a HTTP 500 Internal server error@ -0,0 +39,4 @@
});
const title = $t('Recover password');
const body = `
Gasta una plantilla ejs com ací, no fa falta afegir dependencies:
@ -0,0 +48,4 @@
${title}
</a>`;
await Self.rawSql(`CALL vn.mail_insert(?,?,?,?)`, [
No gastes la BD per enviar correus, gasta (i defineix) un model
Email
com s'ha fet ací👍@ -0,0 +55,4 @@
body
]);
return;
Aquest return no fa falta ficarlo.
@ -29,0 +46,4 @@
const $t = httpRequest.__;
const title = $t('Verify email');
const body = `
Plantilla ejs
@ -29,0 +55,4 @@
${title}
</a>`;
result = await Self.rawSql(`CALL vn.mail_insert(?,?,?,?)`, [
Cridar al métode
User.verify()
com ací:@ -16,3 +16,3 @@
get showLayout() {
let state = this.$state.current.name;
return state && state != 'login';
return state && !state.includes('login');
Açò funciona en tots els casos? Que passa si un estat conte login?
4077-login_recover-password & account_verifyEmailto WIP: 4077-login_recover-password & account_verifyEmailWIP: 4077-login_recover-password & account_verifyEmailto 4077-login_recover-password & account_verifyEmail4077-login_recover-password & account_verifyEmailto WIP: 4077-login_recover-password & account_verifyEmailWIP: 4077-login_recover-password & account_verifyEmailto 4077-login_recover-password & account_verifyEmail4077-login_recover-password & account_verifyEmailto WIP: 4077-login_recover-password & account_verifyEmail@ -0,0 +19,4 @@
const models = Self.app.models;
try {
await models.user.resetPassword({email});
He dejado esta ruta(recoverPassword) porque si se llama directamente resetPassword y el correo que se le pasa no pertenece a un usuario, devuelve un error al frontend.
Usando una ruta con try catch, hacemos que no devuelva nunca error y asi no pueden saber si ese correo es de un usuario nuestro o no.
Nomes deuria de ignorar el error de tipo "usuario no existe", tots els demes deuria de rellançarlos
@ -12,3 +12,4 @@
options.from = `${config.app.senderName} <${config.app.senderEmail}>`;
if (process.env.NODE_ENV !== 'production') {
const notProductionError = {message: 'This not production, this email not sended'};
He modificado esta parte porque como esta diseñado print. Solo inserta en mail(a modo de log) cuando realmente se envia el correo (producción). Haciendo este cambio podemos ver los logs tanto en local como en test.
Aunque al final no he usado esta funcionalidad para los test creo que es util para hacer pruebas en test
@ -7,0 +11,4 @@
</ui-view>
<ui-view
name="reset-password"
ng-if="$ctrl.isReset">
No estas fent us de les rutes anidades
@ -0,0 +1,53 @@
import ngModule from '../../module';
import './style.scss';
const axios = require('axios');
Perque gastes axios y no el servei $http?
WIP: 4077-login_recover-password & account_verifyEmailto 4077-login_recover-password & account_verifyEmail4077-login_recover-password & account_verifyEmailto WIP: 4077-login_recover-password & account_verifyEmailWIP: 4077-login_recover-password & account_verifyEmailto 4077-login_recover-password & account_verifyEmail