mirror of
https://github.com/ClaytonWWilson/CS307-Team24.git
synced 2026-03-10 21:25:04 +00:00
Merge pull request #67 from ClaytonWWilson/verify-profile
Users can be verified and have a check mark displayed on their profiles
This commit is contained in:
@@ -77,7 +77,8 @@ exports.signup = (req, res) => {
|
||||
createdAt: newUser.createdAt,
|
||||
userId,
|
||||
followedTopics: [],
|
||||
imageUrl: defaultImageUrl
|
||||
imageUrl: defaultImageUrl,
|
||||
verified: false
|
||||
};
|
||||
return db.doc(`/users/${newUser.handle}`).set(userCred);
|
||||
})
|
||||
@@ -346,6 +347,59 @@ 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});
|
||||
});
|
||||
}
|
||||
exports.getUserHandles = (req, res) => {
|
||||
admin
|
||||
.firestore()
|
||||
|
||||
@@ -17,6 +17,8 @@ const {
|
||||
signup,
|
||||
deleteUser,
|
||||
updateProfileInfo,
|
||||
verifyUser,
|
||||
unverifyUser,
|
||||
getUserHandles
|
||||
} = require("./handlers/users");
|
||||
|
||||
@@ -42,6 +44,14 @@ app.post("/updateProfileInfo", fbAuth, updateProfileInfo);
|
||||
|
||||
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);
|
||||
|
||||
// get user handles with search phase
|
||||
app.get("/getUserHandles", fbAuth, getUserHandles);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user