Skip to content

Commit

Permalink
Merge pull request #39 from GSG-G10/37-auth-admin
Browse files Browse the repository at this point in the history
create authentication to admin #37
  • Loading branch information
ElhamFadel authored Oct 31, 2021
2 parents 3f896e8 + c297bf0 commit 1b876bf
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 0 deletions.
5 changes: 5 additions & 0 deletions server/database/quieres/checkAdmin.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
const connection = require('../config/connection');

const checkAdminQuery = (email) => connection.query('SELECT * FROM admins WHERE email= ($1)', [email]);

module.exports = checkAdminQuery;
2 changes: 2 additions & 0 deletions server/database/quieres/index.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
const userEstatesQuery = require('./userEstatesQuiery');
const getAllUsersQuery = require('./getAllUsersQuery');
const checkAdminQuery = require('./checkAdmin');
const checkEmailQuery = require('./checkEmailQuery');
const editEstateQuery = require('./editEstatesQuery');
const deleteEstateQuery = require('./deleteEstateQuery');

module.exports = {
getAllUsersQuery,
userEstatesQuery,
checkAdminQuery,
checkEmailQuery,
editEstateQuery,
deleteEstateQuery,
Expand Down
2 changes: 2 additions & 0 deletions server/middleware/index.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
const isAuth = require('./isAuth');
const isAdmin = require('./isAdmin');

module.exports = {
isAuth,
isAdmin,
};
22 changes: 22 additions & 0 deletions server/middleware/isAdmin.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
const { checkAdminQuery } = require('../database/quieres');
const { verifyToken } = require('../utils');

const isAdmin = async (req, res, next) => {
try {
const { token } = req.cookies;
if (!token) {
return res.status(400).json({ message: 'You are not authorized' });
}
const decoded = await verifyToken(token);
req.email = decoded.email;

const rows = await checkAdminQuery(req.email);
if (!rows.length) {
return res.status(400).json({ message: 'You are not authorized' });
}
return next();
} catch (err) {
return next(err);
}
};
module.exports = isAdmin;

0 comments on commit 1b876bf

Please sign in to comment.