diff options
| author | HumairAK <humair88@hotmail.com> | 2016-07-23 23:37:39 +0000 |
|---|---|---|
| committer | HumairAK <humair88@hotmail.com> | 2016-07-23 23:37:39 +0000 |
| commit | 17d743822746b047b94cd24e5407f1342ba01a7e (patch) | |
| tree | b0369afe69942421e6493728be3d0e001fac090b | |
| parent | 077430ac66259bde495fb98080ce3a3d0a6e4783 (diff) | |
Added add admin functionality for front end
| -rw-r--r-- | assets/js/script.js | 7 | ||||
| -rw-r--r-- | routes/admin.js | 26 | ||||
| -rw-r--r-- | views/admin.hbs | 34 |
3 files changed, 64 insertions, 3 deletions
diff --git a/assets/js/script.js b/assets/js/script.js index 59fb358..f08ca7a 100644 --- a/assets/js/script.js +++ b/assets/js/script.js @@ -53,9 +53,11 @@ function main(){ var adminOptions = [ $("#cpnl-addExam"), $("#cpnl-addCourse"), + $("#cpnl-addAdmin"), $("#cpnl-removeExam"), $("#cpnl-removeCourse"), - $("#cpnl-removeUser")]; + $("#cpnl-removeUser") + ]; function hideCpnlPages(){ adminOptions.forEach(function(item){ @@ -81,6 +83,9 @@ function main(){ case "Add Course": $("#cpnl-addCourse").show(); break; + case "Add Admin": + $("#cpnl-addAdmin").show(); + break; case "Remove Exam": $("#cpnl-removeExam").show(); break; diff --git a/routes/admin.js b/routes/admin.js index bdd4f9b..e038fa3 100644 --- a/routes/admin.js +++ b/routes/admin.js @@ -3,6 +3,7 @@ var express = require('express'); var router = express.Router(); var csrf = require('csurf'); // Cross-Site Request Forgery prevention var passport = require('passport'); +var passport_file = require('../config/passport.js'); var csrfProtection = csrf(); router.use(csrfProtection); // router is protected @@ -64,6 +65,29 @@ router.post('/add/course', function(req,res){ res.redirect('/admin'); }); +// Add a new admin, redirect to admin panel +router.post('/add/admin', function(req,res){ + var admin_data = { + fname: req.body.fname, + lname: req.body.lname, + username: req.body.username, + password: passport_file.encryptPassword(req.body.password) + }; + + dbFile.addAdmin(admin_data, function(success, error, message){ + if(success){ + console.log("Success!"); + }else if(error){ + console.log("Error!"); + }else{ + console.log("Admin already exists."); + } + console.log(message); + }); + + res.redirect('/admin'); +}); + router.post('/remove/exam', function(req,res){ var course_code = req.body.course_code, year = req.body.year, @@ -86,8 +110,6 @@ router.post('/remove/exam', function(req,res){ res.redirect('/admin'); }); - - /* Takes an input string delimited by commas, will split by comma and trim white * spaces. Consider callback. */ diff --git a/views/admin.hbs b/views/admin.hbs index 36a3210..a260559 100644 --- a/views/admin.hbs +++ b/views/admin.hbs @@ -19,6 +19,7 @@ <ul class="nav navbar-nav " > <li><a href="#" class="cpnl-page">Add Exam</a></li> <li><a href="#" class="cpnl-page">Add Course</a></li> + <li><a href="#" class="cpnl-page">Add Admin</a></li> <li><a href="#" class="cpnl-page">Remove Exam</a></li> <li><a href="#" class="cpnl-page">Remove Course</a></li> <li><a href="#" class="cpnl-page">Remove User</a></li> @@ -133,6 +134,39 @@ </form> </div> + <!--- Add Course ---> + <div class="row cpnl-container" id="cpnl-addAdmin"> + <h4>Add Admin</h4> + <form action="/admin/add/admin" method="post"> + <div class="form-group"> + First Name: <input type="text" + class="form-control" + placeholder="e.g. Robert" + name="fname"> + </div> + <div class="form-group"> + Last Name: <input type="text" + class="form-control" + placeholder="e.g. Godfried" + name="lname"> + </div> + <div class="form-group"> + Username: <input type="text" + class="form-control" + placeholder="e.g. robTheFried86" + name="username"> + </div> + <div class="form-group"> + Password: <input type="password" + class="form-control" + placeholder="e.g. a3e6kk31" + name="password"> + </div> + <input type="hidden" name="_csrf" value="{{ csrfToken }}"> + <button type="submit" class="btn btn-primary">Submit</button> + </form> + </div> + <!--- Remove Exam ---> <div class="row cpnl-container" id="cpnl-removeExam"> <h4>Remove Exam</h4> |
