4797-lilium-worker-notifications #1229
|
@ -14,7 +14,7 @@ module.exports = Self => {
|
|||
});
|
||||
|
||||
Self.remoteMethod('deleteNotification', {
|
||||
description: 'Gets the current user data',
|
||||
description: 'Deletes a notification subscription',
|
||||
pau marked this conversation as resolved
Outdated
|
||||
accepts: [
|
||||
{
|
||||
arg: 'ctx',
|
||||
|
@ -22,15 +22,11 @@ module.exports = Self => {
|
|||
http: {source: 'context'}
|
||||
},
|
||||
{
|
||||
arg: 'userId',
|
||||
arg: 'userFk',
|
||||
pau marked this conversation as resolved
Outdated
joan
commented
Renombrar a userFk. De todas formas, se podría evitar pasarle este parámetro, si en vez de especificar el id de la notificación genérica, se especificara el id de la notificación del usuario (Actualmente no existe el campo id autoincremental en la tabla notificationSubscription, pero creo que hubiese sido lo ideal) Renombrar a userFk. De todas formas, se podría evitar pasarle este parámetro, si en vez de especificar el id de la notificación genérica, se especificara el id de la notificación del usuario (Actualmente no existe el campo id autoincremental en la tabla notificationSubscription, pero creo que hubiese sido lo ideal)
|
||||
type: 'string'
|
||||
},
|
||||
{
|
||||
arg: 'notificationId',
|
||||
type: 'number'
|
||||
},
|
||||
{
|
||||
arg: 'authorId',
|
||||
arg: 'notificationFk',
|
||||
type: 'number'
|
||||
}
|
||||
],
|
||||
|
@ -44,18 +40,16 @@ module.exports = Self => {
|
|||
}
|
||||
});
|
||||
|
||||
Self.deleteNotification = async function(ctx) {
|
||||
Self.deleteNotification = async function(ctx, userFk, notificationFk) {
|
||||
pau marked this conversation as resolved
Outdated
alexm
commented
No estas comprobando el usuario No estas comprobando el usuario
pau
commented
No se comprueba el usuario porque se le pasa un id de notificationSubscription ya existente, por lo cual dentro del metodo getUserToModify se cumpliria el requisito del if-else y se realizaria la consulta en la que se sacaria a que usuario pertenece esa notificación No se comprueba el usuario porque se le pasa un id de notificationSubscription ya existente, por lo cual dentro del metodo getUserToModify se cumpliria el requisito del if-else y se realizaria la consulta en la que se sacaria a que usuario pertenece esa notificación
|
||||
const models = Self.app.models;
|
||||
const user = await ctx.args.authorId;
|
||||
const notificationId = await ctx.args.notificationId;
|
||||
const userId = await ctx.args.userId;
|
||||
const modifiedUser = await getUserToModify(userId, models);
|
||||
const user = ctx.req.accessToken.userId;
|
||||
pau marked this conversation as resolved
Outdated
alexm
commented
Te ahorres fer if else, fent:
Te ahorres fer if else, fent:
```
if (user != modifiedUser.id && user != modifiedUser.bossFk)
throw new UserError('You dont have permission to modify this user');
await models.NotificationSubscription.destroyById(notificationId);
```
|
||||
const modifiedUser = await getUserToModify(userFk, models);
|
||||
|
||||
pau marked this conversation as resolved
alexm
commented
Y asi te ahorras poner
`Self.deleteNotification = async function(ctx, userId, notificationId)`
Y asi te ahorras poner
```
const notificationId = await ctx.args.notificationId;
const userId = await ctx.args.userId;
```
|
||||
if (user == modifiedUser.id || modifiedUser.bossFk == user) {
|
||||
const query = `DELETE FROM util.notificationSubscription
|
||||
pau marked this conversation as resolved
Outdated
alexm
commented
No seria mejor utilizar ctx.req.accessToken.userId y no pasarlo por parametro? No seria mejor utilizar ctx.req.accessToken.userId y no pasarlo por parametro?
|
||||
WHERE notificationFk = ? AND userFk = ?`;
|
||||
pau marked this conversation as resolved
Outdated
alexm
commented
Provar:
Provar:
let userToCheck = userFk;
if (notificationId != null)
userToCheck = await models.NotificationSubscription.findById(notificationId).userFk;
return await models.Worker.findOne({
fields: ['id', 'bossFk'],
where: {
id: userToCheck
}
});
|
||||
|
||||
pau marked this conversation as resolved
Outdated
joan
commented
Además de lo que comenta alex, quitar el await. Además de lo que comenta alex, quitar el await.
|
||||
await Self.rawSql(query, [notificationId, userId]);
|
||||
await Self.rawSql(query, [notificationFk, userFk]);
|
||||
pau marked this conversation as resolved
alexm
commented
Pq per defecte els dos parametres son null? Pq per defecte els dos parametres son null?
|
||||
|
||||
return;
|
||||
} else
|
||||
|
|
|
@ -1,11 +1,4 @@
|
|||
INSERT INTO
|
||||
`salix`.`ACL` (
|
||||
`model`,
|
||||
`property`,
|
||||
`accessType`,
|
||||
`permission`,
|
||||
`principalId`
|
||||
)
|
||||
VALUES
|
||||
('NotificationSubscription', '*', '*', 'employee'),
|
||||
('NotificationAcl', '*', '*', 'employee');
|
||||
INSERT INTO `salix`.`ACL` (model,property,accessType,principalId)
|
||||
pau marked this conversation as resolved
Outdated
alexm
commented
Cambiar a la versión 230401 Cambiar a la versión 230401
|
||||
VALUES ('NotificationSubscription','*','*','employee');
|
||||
INSERT INTO `salix`.`ACL` (model,property,accessType,principalId)
|
||||
VALUES ('NotificationAcl','*','*','employee');
|
||||
|
|
Cambiar descripción