.
This commit is contained in:
parent
093f7244da
commit
20372c839b
@ -111,13 +111,18 @@ passport.use('jwt', new CustomStrategy(async (req, done) => {
|
|||||||
//recuperamos el usuario de la petición
|
//recuperamos el usuario de la petición
|
||||||
console.log(result);
|
console.log(result);
|
||||||
let user = await authService.extraMethods.findUser({ id: result.id });
|
let user = await authService.extraMethods.findUser({ id: result.id });
|
||||||
if (user){
|
if (user) {
|
||||||
|
console.log('Usuario válido');
|
||||||
return done(null, user, { message: 'Logged in Successfully' });
|
return done(null, user, { message: 'Logged in Successfully' });
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
|
console.log('Usuario no econtrado');
|
||||||
return done(null, false, { message: 'Unauthorized. User not found.' });
|
return done(null, false, { message: 'Unauthorized. User not found.' });
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
console.log('Token no válido');
|
||||||
return done(null, false, { message: 'Unauthorized. Invalid token.' });
|
return done(null, false, { message: 'Unauthorized. Invalid token.' });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -10,10 +10,10 @@ const isLoggedUser = passport.authenticate('jwt', { session: false });
|
|||||||
const isAdministratorUser = compose([isLoggedUser,
|
const isAdministratorUser = compose([isLoggedUser,
|
||||||
(req, res, next) => {
|
(req, res, next) => {
|
||||||
const user = req.user;
|
const user = req.user;
|
||||||
if (user.role >= 8) {
|
if (user.level >= 8) {
|
||||||
next();
|
next();
|
||||||
} else {
|
} else {
|
||||||
return res.status(httpStatus.UNAUTHORIZED).send('UNAUTHORIZED');
|
return res.status(httpStatus.UNAUTHORIZED).send('Unauthorized');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]);
|
]);
|
||||||
|
|||||||
@ -48,6 +48,10 @@ module.exports = function (sequelize, DataTypes) {
|
|||||||
type: DataTypes.STRING,
|
type: DataTypes.STRING,
|
||||||
defaultValue: 'active',
|
defaultValue: 'active',
|
||||||
},
|
},
|
||||||
|
level: {
|
||||||
|
type: DataTypes.INTEGER,
|
||||||
|
defaultValue: 1,
|
||||||
|
},
|
||||||
lastlogin: {
|
lastlogin: {
|
||||||
type: DataTypes.DATE,
|
type: DataTypes.DATE,
|
||||||
defaultValue: null,
|
defaultValue: null,
|
||||||
@ -61,7 +65,8 @@ module.exports = function (sequelize, DataTypes) {
|
|||||||
User.associate = function (models) {
|
User.associate = function (models) {
|
||||||
User.Roles = User.belongsToMany(models.Rol, {
|
User.Roles = User.belongsToMany(models.Rol, {
|
||||||
through: models.UserRoles,
|
through: models.UserRoles,
|
||||||
foreignKey: 'userId'
|
foreignKey: 'userId',
|
||||||
|
as: 'roles'
|
||||||
});
|
});
|
||||||
User.Entity = User.belongsTo(models.Entity, { foreignKey: 'entityId' });
|
User.Entity = User.belongsTo(models.Entity, { foreignKey: 'entityId' });
|
||||||
User.EventsCreates = User.hasMany(models.Event, { foreignKey: 'userId' });
|
User.EventsCreates = User.hasMany(models.Event, { foreignKey: 'userId' });
|
||||||
|
|||||||
@ -53,14 +53,10 @@ module.exports = function (sequelize, DataTypes) {
|
|||||||
timestamps: true,
|
timestamps: true,
|
||||||
|
|
||||||
defaultScope: {
|
defaultScope: {
|
||||||
where: {
|
include: [{
|
||||||
state: 'publish'
|
|
||||||
},
|
|
||||||
include: [
|
|
||||||
{
|
|
||||||
model: sequelize.models.SpeakerType,
|
model: sequelize.models.SpeakerType,
|
||||||
as: 'type'
|
as: 'type'
|
||||||
},
|
},
|
||||||
/* {
|
/* {
|
||||||
model: sequelize.models.Value,
|
model: sequelize.models.Value,
|
||||||
as: 'values',
|
as: 'values',
|
||||||
@ -98,6 +94,13 @@ module.exports = function (sequelize, DataTypes) {
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Speaker.addScope('onlyPublished', {
|
||||||
|
where: {
|
||||||
|
state: 'publish'
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
Speaker.addScope('featured', {
|
Speaker.addScope('featured', {
|
||||||
order: [
|
order: [
|
||||||
['updatedAt', 'DESC']
|
['updatedAt', 'DESC']
|
||||||
|
|||||||
@ -16,14 +16,14 @@ const generalInvalidFields = [
|
|||||||
|
|
||||||
// Todos los ponentes
|
// Todos los ponentes
|
||||||
routes.get('/speakers',
|
routes.get('/speakers',
|
||||||
//isLoggedUser,
|
isLoggedUser,
|
||||||
FieldMiddleware.middleware({
|
FieldMiddleware.middleware({
|
||||||
invalidFields: generalInvalidFields
|
invalidFields: generalInvalidFields
|
||||||
}),
|
}),
|
||||||
PaginateMiddleware.middleware(),
|
PaginateMiddleware.middleware(),
|
||||||
SortMiddleware.middleware({ default: "name" }),
|
SortMiddleware.middleware({ default: "name" }),
|
||||||
speakerController.find({
|
speakerController.find({
|
||||||
scopes: ['defaultScope', 'includeValues', 'includeMultimedias'],
|
scopes: ['defaultScope', 'onlyPublished', 'includeValues', 'includeMultimedias'],
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -32,11 +32,11 @@ routes.get('/speakers/featured',
|
|||||||
isLoggedUser,
|
isLoggedUser,
|
||||||
FieldMiddleware.middleware({
|
FieldMiddleware.middleware({
|
||||||
invalidFields: generalInvalidFields
|
invalidFields: generalInvalidFields
|
||||||
}),
|
}),
|
||||||
PaginateMiddleware.middleware(),
|
PaginateMiddleware.middleware(),
|
||||||
//SortMiddleware.middleware({ default: "name" }),
|
//SortMiddleware.middleware({ default: "name" }),
|
||||||
speakerController.find({
|
speakerController.find({
|
||||||
scopes: ['defaultScope', 'includeValues', 'featured', 'includeMultimedias'],
|
scopes: ['defaultScope', 'onlyPublished', 'includeValues', 'featured', 'includeMultimedias'],
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -49,7 +49,7 @@ routes.get('/speakers/last',
|
|||||||
PaginateMiddleware.middleware(),
|
PaginateMiddleware.middleware(),
|
||||||
SortMiddleware.middleware({ default: "-createdAt" }),
|
SortMiddleware.middleware({ default: "-createdAt" }),
|
||||||
speakerController.find({
|
speakerController.find({
|
||||||
scopes: ['defaultScope', 'last', 'includeMultimedias'],
|
scopes: ['defaultScope', 'onlyPublished', 'last', 'includeMultimedias'],
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -60,10 +60,11 @@ routes.get('/speakers/:id',
|
|||||||
invalidFields: generalInvalidFields
|
invalidFields: generalInvalidFields
|
||||||
}),
|
}),
|
||||||
speakerController.findOne({
|
speakerController.findOne({
|
||||||
scopes: ['defaultScope', 'includeValues', 'includeMultimedias', 'includeComments'],
|
scopes: ['defaultScope', 'onlyPublished', 'includeValues', 'includeMultimedias', 'includeComments'],
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
// Dar ponentes similares a uno dado
|
// Dar ponentes similares a uno dado
|
||||||
routes.get('/speakers/:id/similar',
|
routes.get('/speakers/:id/similar',
|
||||||
isLoggedUser,
|
isLoggedUser,
|
||||||
@ -88,6 +89,80 @@ routes.get('/speakers/:id/:association',
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*********************************************************************************************************
|
||||||
|
* ADMINISTRACIÓN
|
||||||
|
*********************************************************************************************************
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Todos los ponentes
|
||||||
|
routes.get('/admin/speakers',
|
||||||
|
isAdministratorUser,
|
||||||
|
speakerController.find({
|
||||||
|
scopes: ['defaultScope', 'includeValues', 'includeMultimedias'],
|
||||||
|
})
|
||||||
|
);
|
||||||
|
|
||||||
|
// Un ponente
|
||||||
|
routes.get('/admin/speakers/:id',
|
||||||
|
isAdministratorUser,
|
||||||
|
speakerController.findOne({
|
||||||
|
scopes: ['defaultScope', 'includeValues', 'includeMultimedias']
|
||||||
|
})
|
||||||
|
);
|
||||||
|
|
||||||
|
// Comentarios de un ponente
|
||||||
|
routes.get('/admin/speakers/:id/comments',
|
||||||
|
isAdministratorUser,
|
||||||
|
(req, res, next) => {
|
||||||
|
req.params.association = 'comments';
|
||||||
|
next();
|
||||||
|
},
|
||||||
|
speakerController.find()
|
||||||
|
);
|
||||||
|
|
||||||
|
/*routes.get('/speakers/:id/values',
|
||||||
|
isAdministratorUser,
|
||||||
|
(req, res, next) => {
|
||||||
|
req.params.association = 'values';
|
||||||
|
next();
|
||||||
|
},
|
||||||
|
speakerController.find()
|
||||||
|
);
|
||||||
|
|
||||||
|
routes.get('/speakers/:id/questions',
|
||||||
|
isAdministratorUser,
|
||||||
|
(req, res, next) => {
|
||||||
|
req.params.association = 'questions';
|
||||||
|
next();
|
||||||
|
},
|
||||||
|
speakerController.find()
|
||||||
|
);*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Nuevo ponente
|
||||||
|
routes.post('/speakers/:id',
|
||||||
|
isAdministratorUser,
|
||||||
|
speakerController.create()
|
||||||
|
);
|
||||||
|
|
||||||
|
// Modificar ponente
|
||||||
|
routes.put('/speakers/:id',
|
||||||
|
isAdministratorUser,
|
||||||
|
speakerController.update()
|
||||||
|
);
|
||||||
|
|
||||||
|
// Borrar ponente
|
||||||
|
routes.delete('/speakers/:id',
|
||||||
|
isAdministratorUser,
|
||||||
|
speakerController.delete()
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
module.exports = routes;
|
module.exports = routes;
|
||||||
Loading…
Reference in New Issue
Block a user