Back-end for verifying users

This commit is contained in:
Clayton Wilson 2019-10-31 15:12:22 -04:00
parent ca1d86acf1
commit 325d37f0de
2 changed files with 63 additions and 1 deletions

View File

@ -308,4 +308,56 @@ exports.getAuthenticatedUser = (req, res) => {
}); });
}; };
// Verifies the user sent to the request
// Must be run by the Admin user
exports.verifyUser = (req, res) => {
if (req.userData.handle !== "Admin") {
return res.status(403).json({error: "This must be done as Admin"});
}
db.doc(`/users/${req.body.user}`)
.get()
.then((doc) => {
if (doc.exists) {
let verifiedUser = doc.data();
verifiedUser.verified = true;
return db.doc(`/users/${req.body.user}`).set(verifiedUser, {merge: true});
} else {
return res.status(400).json({error: `User ${req.body.user} was not found`});
}
})
.then(() => {
return res.status(201).json({message: `${req.body.user} is now verified`});
})
.catch((err) => {
console.error(err);
return res.status(500).json({error: err.code});
});
}
// Unverifies the user sent to the request
// Must be run by admin
exports.unverifyUser = (req, res) => {
if (req.userData.handle !== "Admin") {
return res.status(403).json({error: "This must be done as Admin"});
}
db.doc(`/users/${req.body.user}`)
.get()
.then((doc) => {
if (doc.exists) {
let unverifiedUser = doc.data();
unverifiedUser.verified = false;
return db.doc(`/users/${req.body.user}`).set(unverifiedUser, {merge: true});
} else {
return res.status(400).json({error: `User ${req.body.user} was not found`});
}
})
.then(() => {
return res.status(201).json({message: `${req.body.user} is no longer verified`});
})
.catch((err) => {
console.error(err);
return res.status(500).json({error: err.code});
});
}

View File

@ -16,7 +16,9 @@ const {
login, login,
signup, signup,
deleteUser, deleteUser,
updateProfileInfo updateProfileInfo,
verifyUser,
unverifyUser
} = require("./handlers/users"); } = require("./handlers/users");
// Adds a user to the database and registers them in firebase with // Adds a user to the database and registers them in firebase with
@ -41,6 +43,14 @@ app.post("/updateProfileInfo", fbAuth, updateProfileInfo);
app.get("/user", fbAuth, getAuthenticatedUser); app.get("/user", fbAuth, getAuthenticatedUser);
// Verifies the user sent to the request
// Must be run by the Admin user
app.post("/verifyUser", fbAuth, verifyUser);
// Unverifies the user sent to the request
// Must be run by admin
app.post("/unverifyUser", fbAuth, unverifyUser);
/*------------------------------------------------------------------* /*------------------------------------------------------------------*
* handlers/post.js * * handlers/post.js *
*------------------------------------------------------------------*/ *------------------------------------------------------------------*/