aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--node_simple.js6
-rw-r--r--routes/admin.js32
-rw-r--r--routes/index.js15
-rw-r--r--routes/user.js6
-rw-r--r--views/admin.hbs24
5 files changed, 59 insertions, 24 deletions
diff --git a/node_simple.js b/node_simple.js
index 3c3abd7..b86542b 100644
--- a/node_simple.js
+++ b/node_simple.js
@@ -730,9 +730,9 @@ exports.add_comment = function (sol_id, fields, serverCallback) {
}
else {
users.updateOne( { user_name: fields[1] }, { $inc: { comments: 1} }, function (err) {
- if (err) callback(false, "Error: Some error occured while updating user info");
+ if (err) serverCallback(false, "Error: Some error occured while updating user info");
else {
- callback(true, "Success: comment added successfully");
+ serverCallback(true, "Success: comment added successfully");
}
});
@@ -1316,14 +1316,12 @@ exports.sendMail = function (mail_data, callback) {
});
}
-
/*
*
* callback(success, error, data, message)
* Returns the user's inbox (array of message objects)
*
*/
-
exports.checkMailbox = function (username, callback) {
mongoFactory.getConnection(uri).then(function(db) {
diff --git a/routes/admin.js b/routes/admin.js
index 7e5c7fe..027722d 100644
--- a/routes/admin.js
+++ b/routes/admin.js
@@ -86,6 +86,7 @@ router.post('/add/admin', function(req,res){
res.redirect('/admin');
});
+/* Remove an exam route, redirect to admin panel */
router.post('/remove/exam', function(req,res){
var course_code = req.body.course_code,
year = req.body.year,
@@ -108,6 +109,37 @@ router.post('/remove/exam', function(req,res){
res.redirect('/admin');
});
+/* Remove a course route, redirect to admin panel */
+router.post('/remove/course', function(req,res){
+ var course_code = req.body.course_code;
+ dbFile.remove_course(course_code, function(courseRemoved, statusMessage){
+ if(courseRemoved){
+ console.log("Success.");
+ } else {
+ console.log("Failed.");
+ }
+ console.log(statusMessage);
+ });
+
+ res.redirect('/admin');
+});
+
+/* Remove a user route, redirect to admin panel */
+router.post('/remove/user', function(req,res){
+ var username = req.body.username;
+ dbFile.remove_user(username, function(userRemoved, statusMessage){
+ if(userRemoved){
+ console.log("Success.");
+ } else {
+ console.log("Failed.");
+ }
+ console.log(statusMessage);
+ });
+
+ res.redirect('/admin');
+});
+
+
/* Takes an input string delimited by commas, will split by comma and trim white
* spaces. Consider callback.
*/
diff --git a/routes/index.js b/routes/index.js
index 23cd7c3..698305b 100644
--- a/routes/index.js
+++ b/routes/index.js
@@ -29,12 +29,6 @@ router.get('/user_solutions', function(req, res, next) {
res.render('user_solutions');
});
-/* Render/GET questions page
-router.get('/questions', function(req, res, next) {
- res.render('questions');
-});
-*/
-
//EXAMPLE EXPECTED DATA GIVEN BELOW:
/*[ {courseCode: 'CSC240',
year: 2016,
@@ -137,13 +131,6 @@ router.get('/questions/:exam_id', function (req,res) {
res.render('questions', {query: qList, examInfo: examInfo});
});
});
-
- /*dbFile.get_exam_info_by_ID(examID, function (questions) {
- console.log(questions);
- res.render('questions', {query: questions});
-
- });*/
-
});
/*GET the solutions for a given exam given the question number and the exam_id
@@ -182,11 +169,9 @@ router.get('/questions/:exam_id', function (req,res) {
*/
router.get('/solutions/:exam_id/:q_num', function (req, res) {
- console.log("index.js::Getting solutions");
var examID = req.params.exam_id;
var qID = req.params.q_num;
dbFile.get_all_solutions(examID, qID, function (solutions) {
- console.log("index.js::GOT solutions");
solutions.forEach(function(soln){
soln.commentCount = soln.comments.length;
});
diff --git a/routes/user.js b/routes/user.js
index f5dab0c..03dc286 100644
--- a/routes/user.js
+++ b/routes/user.js
@@ -207,7 +207,7 @@ router.post('/signin', loggedOut, function(req, res, next) {
});
-router.post('/user_profile/send_message', loggedIn, function(req, res, next) {
+router.post('/user_profile/send_message', loggedIn , function(req, res, next) {
var date = new Date();
var current_date = date.toString().slice(0, 24);
var mail_data = {
@@ -232,6 +232,7 @@ router.post('/user_profile/send_message', loggedIn, function(req, res, next) {
res.redirect('/user/user_profile');
});
+// Authentication check in code
router.post('/comment/submit/:examID/:qID/:solID', function(req, res, next){
var examID = req.params.examID;
var qID = req.params.qID;
@@ -239,7 +240,6 @@ router.post('/comment/submit/:examID/:qID/:solID', function(req, res, next){
var username = req.user.user_name;
var solutionID = req.params.solID;
// Must be a logged in user to access
- console.log(examID + "," + qID + "," + comment + "," + username + "," + solutionID);
var fields = [comment, username];
if(req.isAuthenticated()){
dbFile.add_comment(solutionID, fields, function(commentAdded, statusMessage){
@@ -257,7 +257,7 @@ router.post('/comment/submit/:examID/:qID/:solID', function(req, res, next){
}
});
-router.post('/solution/vote/:examID/:qID/:solID', function(req, res, next){
+router.post('/solution/vote/:examID/:qID/:solID', loggedIn, function(req, res, next){
var vote = req.body.vote;
var examID = req.params.examID;
var qID = req.params.qID;
diff --git a/views/admin.hbs b/views/admin.hbs
index a260559..b821dc3 100644
--- a/views/admin.hbs
+++ b/views/admin.hbs
@@ -213,13 +213,33 @@
<!--- Remove Course --->
<div class="row cpnl-container" id="cpnl-removeCourse">
<h4>Remove Course</h4>
- Pending. Need required database functionality.
+ <form action="/admin/remove/course" method="post">
+ <div class="form-group">
+ Course Code: <input type="text"
+ class="form-control"
+ placeholder="e.g. CSC240"
+ name="course_code">
+ </div>
+
+ <input type="hidden" name="_csrf" value="{{ csrfToken }}">
+ <button type="submit" class="btn btn-primary">Submit</button>
+ </form>
</div>
<!--- Remove User --->
<div class="row cpnl-container" id="cpnl-removeUser">
<h4>Remove User</h4>
- Pending. Need required database functionality.
+ <form action="/admin/remove/user" method="post">
+ <div class="form-group">
+ Username: <input type="text"
+ class="form-control"
+ placeholder="Jsmith85"
+ name="username">
+ </div>
+
+ <input type="hidden" name="_csrf" value="{{ csrfToken }}">
+ <button type="submit" class="btn btn-primary">Submit</button>
+ </form>
</div>