#6744 fix worker setPassword #2027

Merged
jorgep merged 18 commits from 6744-fixWorkerSetPassword into dev 2024-03-15 09:48:14 +00:00
Member
No description provided.
jorgep added 1 commit 2024-02-12 15:15:20 +00:00
gitea/salix/pipeline/pr-dev There was a failure building this commit Details
7b862c5c30
fix: refs #6744 fix setPassword
jorgep added 1 commit 2024-02-13 08:49:19 +00:00
jorgep added 1 commit 2024-02-13 09:15:12 +00:00
gitea/salix/pipeline/pr-dev There was a failure building this commit Details
47bfb34507
fix: refs #6744 remove params
jgallego requested changes 2024-02-16 11:35:45 +00:00
@ -39,2 +35,2 @@
await models.VnUser.setPassword(args.workerFk, args.newPass, myOptions);
await models.VnUser.updateAll({id: args.workerFk}, {emailVerified: true}, myOptions);
try {
const ishimself = userId === workerId;
Owner

isHimself

isHimself
jorgep marked this conversation as resolved
jorgep added 1 commit 2024-02-16 13:23:28 +00:00
jorgep changed title from WIP: 6744 fix worker setPassword to 6744 fix worker setPassword 2024-02-16 14:27:59 +00:00
jorgep added 1 commit 2024-02-16 14:56:51 +00:00
gitea/salix/pipeline/pr-dev This commit looks good Details
9f2768c131
fix: refs #6776 tests
jorgep requested review from jgallego 2024-02-16 14:58:57 +00:00
jorgep requested review from juan 2024-02-16 14:59:06 +00:00
jorgep added the
CR / Tests passed
label 2024-02-16 14:59:13 +00:00
jgallego approved these changes 2024-02-17 07:33:11 +00:00
juan requested changes 2024-02-20 16:13:19 +00:00
Dismissed
@ -39,2 +35,2 @@
await models.VnUser.setPassword(args.workerFk, args.newPass, myOptions);
await models.VnUser.updateAll({id: args.workerFk}, {emailVerified: true}, myOptions);
try {
const isHimself = userId === workerId;
Owner

No pondría aquí isHimself, para cambiarse la contraseña uno mismo que se utilice el método tradicional que yahace las comprobaciones de seguridad correspondientes

No pondría aquí `isHimself`, para cambiarse la contraseña uno mismo que se utilice el método tradicional que yahace las comprobaciones de seguridad correspondientes
jorgep marked this conversation as resolved
jorgep added 1 commit 2024-02-21 09:34:30 +00:00
jorgep added 1 commit 2024-02-22 12:26:31 +00:00
jorgep added 2 commits 2024-02-22 14:47:33 +00:00
jorgep requested review from juan 2024-02-22 14:47:50 +00:00
jorgep requested review from jgallego 2024-02-22 14:47:51 +00:00
jgallego requested changes 2024-02-23 06:20:45 +00:00
@ -10,0 +13,4 @@
Self.setUnverifiedPassword = async(id, pass, options) => {
const user = await models.VnUser.findById(id, null, options);
if (user.emailVerified) throw new ForbiddenError('The email has been already verified');
Owner

Si alguien intenta cambiar un password y le mostramos este mensaje de error, no va a saber relacionarlo..
Pensando en Norman yo mostraria algo así como "Esta contraseña solo puede ser modificada por el propio usuario"

Y asegurate que VnUser.setPassword tiene los permisos correctos y nadie lo puede llamar.

Si alguien intenta cambiar un password y le mostramos este mensaje de error, no va a saber relacionarlo.. Pensando en Norman yo mostraria algo así como "Esta contraseña solo puede ser modificada por el propio usuario" Y asegurate que VnUser.setPassword tiene los permisos correctos y nadie lo puede llamar.
Author
Member

En principio lo reviso con isSubordinate en worker->setPassword y dentro de account->setUnverifiedPassword compruebo si el email está verificado. Hay que cambiar el enfoque? @juan @jgallego . setUnverifiedPassword no se puede llamar desde el exterior(http request), solo internamente.

En principio lo reviso con isSubordinate en worker->setPassword y dentro de account->setUnverifiedPassword compruebo si el email está verificado. Hay que cambiar el enfoque? @juan @jgallego . setUnverifiedPassword no se puede llamar desde el exterior(http request), solo internamente.
Author
Member

Traducción cambiada

Traducción cambiada
@ -13,3 +13,2 @@
</vn-item>
<vn-item ng-if="!$ctrl.worker.user.emailVerified" ng-click="setPassword.show()" translate>
Change password
<vn-item ng-if="!$ctrl.worker.user.emailVerified && $ctrl.vnConfig.storage.currentUserWorkerId !=$ctrl.worker.id" ng-click="setPassword.show()" translate>
Owner

creo que esta mal esta comprobación, en que casos quieres que se muestre?

creo que esta mal esta comprobación, en que casos quieres que se muestre?
Author
Member

Solo si el email no está verificado y no es el mismo. Tras lo hablado con Juan, si eres tú mismo, te cambiarás la contraseña desde otro lado. @jgallego

Solo si el email no está verificado y no es el mismo. Tras lo hablado con Juan, si eres tú mismo, te cambiarás la contraseña desde otro lado. @jgallego
jorgep added 1 commit 2024-02-23 08:23:32 +00:00
jorgep added 1 commit 2024-02-23 08:28:57 +00:00
jorgep added 1 commit 2024-02-23 08:35:40 +00:00
gitea/salix/pipeline/pr-dev This commit looks good Details
3bf25e5759
fix: refs #6744 locale
jorgep requested review from jgallego 2024-02-23 08:36:17 +00:00
jgallego requested changes 2024-02-24 07:06:28 +00:00
@ -10,0 +16,4 @@
if (user.emailVerified) throw new ForbiddenError('This password can only be changed by the user themselves');
await models.VnUser.setPassword(id, pass, options);
await user.updateAttribute('emailVerified', true, options);
Owner

porque activas el correo aqui? si el usuario no consigue entrar por cualquier razón no debería verificarse el mail

porque activas el correo aqui? si el usuario no consigue entrar por cualquier razón no debería verificarse el mail
Author
Member

me lo pidio expresamente @juan . A que te refieres con que no consigue entrar?

me lo pidio expresamente @juan . A que te refieres con que no consigue entrar?
Owner

Considero que és un mal enfoque.
El hecho de cambiar la contraseña no es lo mismo que hacer un login satisfactorio.
Bajo mi punto de vista poner el email verificado a true sólo se debería hacer cuando el usuario ha conseguido hacer un login satisfactorio

Considero que és un mal enfoque. El hecho de cambiar la contraseña no es lo mismo que hacer un login satisfactorio. Bajo mi punto de vista poner el email verificado a true sólo se debería hacer cuando el usuario ha conseguido hacer un login satisfactorio
Author
Member

Paso la tarea a feedback pues

Paso la tarea a feedback pues
Owner

después de hablar con Juan quitar await user.updateAttribute('emailVerified', true, options);
poner el email verificado a true sólo se debería hacer cuando el usuario ha conseguido hacer un login satisfactorio

después de hablar con Juan quitar await user.updateAttribute('emailVerified', true, options); poner el email verificado a true sólo se debería hacer cuando el usuario ha conseguido hacer un login satisfactorio
jorgep marked this conversation as resolved
@ -38,3 +36,2 @@
await models.VnUser.setPassword(args.workerFk, args.newPass, myOptions);
await models.VnUser.updateAll({id: args.workerFk}, {emailVerified: true}, myOptions);
await models.Account.setUnverifiedPassword(id, newPass, myOptions);
Owner

no podemos poner aquí el contenido de setUnverifiedPassword?
es necesario crear ese método?

no podemos poner aquí el contenido de setUnverifiedPassword? es necesario crear ese método?
Author
Member

me lo pidio exprasemente @juan

me lo pidio exprasemente @juan
jorgep marked this conversation as resolved
jorgep added 1 commit 2024-02-26 07:23:24 +00:00
jorgep requested review from jgallego 2024-02-26 07:26:47 +00:00
jgallego requested changes 2024-02-28 08:16:08 +00:00
jgallego left a comment
Owner

poner el email verificado a true sólo se debería hacer cuando el usuario ha conseguido hacer un login satisfactorio

poner el email verificado a true sólo se debería hacer cuando el usuario ha conseguido hacer un login satisfactorio
jorgep added 1 commit 2024-02-29 11:46:13 +00:00
jorgep added 1 commit 2024-02-29 12:46:16 +00:00
gitea/salix/pipeline/pr-dev This commit looks good Details
c79bdeb3f4
fix: refs #6744 drop to set emailVerified
jorgep requested review from jgallego 2024-02-29 12:47:06 +00:00
jgallego approved these changes 2024-02-29 13:56:16 +00:00
juan requested changes 2024-03-06 14:24:02 +00:00
Dismissed
@ -35,3 +33,3 @@
try {
const isSubordinate = await models.Worker.isSubordinate(ctx, args.workerFk, myOptions);
const isSubordinate = await Self.isSubordinate(ctx, id, myOptions);
if (!isSubordinate) throw new UserError('You don\'t have enough privileges.');
Owner

Lanzar ForbiddenError indicando en el mensaje que no es subordinado.

Lanzar ForbiddenError indicando en el mensaje que no es subordinado.
jorgep marked this conversation as resolved
jorgep added 1 commit 2024-03-07 07:48:00 +00:00
jorgep added 1 commit 2024-03-07 08:34:51 +00:00
gitea/salix/pipeline/pr-dev This commit looks good Details
a94fd1a61c
fix: refs #6744 change error kind
jorgep requested review from juan 2024-03-07 08:37:27 +00:00
juan approved these changes 2024-03-15 09:17:48 +00:00
jorgep added 1 commit 2024-03-15 09:43:22 +00:00
jorgep changed title from 6744 fix worker setPassword to #6744 fix worker setPassword 2024-03-15 09:44:25 +00:00
jorgep merged commit 5341818473 into dev 2024-03-15 09:48:14 +00:00
jorgep deleted branch 6744-fixWorkerSetPassword 2024-03-15 09:48:14 +00:00
Sign in to join this conversation.
No reviewers
No Milestone
No Assignees
3 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: verdnatura/salix#2027
No description provided.