Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var http = require('http');
- var fs = require('fs');
- var url = require('url');
- var express = require('express');
- var app = express();
- var session = require('express-session');
- app.use(express.static('phase1'));
- app.use(session({
- secret: 'Security',
- resave: true,
- saveUninitialized: false
- }));
- var bodyParser = require('body-parser');
- app.use(bodyParser.json()); // to support JSON-encoded bodies
- app.use(bodyParser.urlencoded({ // to support URL-encoded bodies
- extended: true
- }));
- var file_content = fs.readFileSync(__dirname + '/users.json');
- var users = JSON.parse(file_content);
- app.post('/register', function (req, res) {
- //To get the data sent in a post request , you just enter //req.body.<name of the input you want it’s value>
- if (req.session.email) {
- res.redirect("/Project_phase1");
- }
- var sentEmail = req.body.regmail; // sets sentEmail value to
- var sentName = req.body.regname;
- var sentpass = req.body.regpassword;
- while (!validateName(sentName) || !validatePassword(sentpass) || ifMailIsTaken(sentEmail) || !validateEmail(sentEmail)) {
- if (!validateName(sentName)) {
- res.writeHead(200, {
- "Content-Type": "text/html"
- });
- res.write(
- "<!DOCTYPE html>" +
- "<html lang='en' dir='ltr'>" +
- "<head>" +
- "<met charset='utf-8'>" +
- "<title>Wrong name</title>" +
- "</head>" +
- "<body>" +
- "<script type='text/javascript'>alert('Wrong name')</script>" +
- "</body>" +
- "</html>");
- res.end();
- sentName = req.body.regname;
- }
- if (!validatePassword(sentpass)) {
- res.writeHead(200, {
- "Content-Type": "text/html"
- });
- res.write(
- "<!DOCTYPE html>" +
- "<html lang='en' dir='ltr'>" +
- "<head>" +
- "<met charset='utf-8'>" +
- "<title>Wrong password</title>" +
- "</head>" +
- "<body>" +
- "<script type='text/javascript'>alert('password length shoulb be >= 5')</script>" +
- "</body>" +
- "</html>");
- res.end();
- sentpass = req.body.regpassword;
- }
- if (ifMailIsTaken(sentEmail) || !validateEmail(sentEmail)) {
- res.writeHead(200, {
- "Content-Type": "text/html"
- });
- res.write(
- "<!DOCTYPE html>" +
- "<html lang='en' dir='ltr'>" +
- "<head>" +
- "<met charset='utf-8'>" +
- "<title>Choose another mail</title>" +
- "</head>" +
- "<body>" +
- "<script type='text/javascript'>alert('The mail is taken or wrong formula ,,, choose another one')</script>" +
- "</body>" +
- "</html>");
- res.end();
- sentEmail = req.body.regmail;
- }
- }
- var newUser = {
- "email": sentEmail,
- "Name": sentName,
- "password": sentpass,
- "Completed": [],
- "Archived": [],
- "InProgress": [],
- "AllTasks": []
- };
- users.push(newUser);
- fs.writeFileSync(__dirname + '/users.json', JSON.stringify(users, null, 5));
- res.redirect("/login");
- });
- app.get('/register', function (req, res) {
- if (req.session.email) {
- res.redirect("/Project_phase1");
- }
- res.sendFile(__dirname + "/" + "register.html");
- });
- app.post('/login', function (req, res) {
- if (req.session.email) {
- res.redirect("/Project_phase1");
- }
- var currEmail = req.body.mail; // sets sentEmail value to
- var currPass = req.body.password;
- while (users.length == 0 || !checkLoginMail(currEmail)) {
- res.writeHead(200, {
- "Content-Type": "text/html"
- });
- res.write(
- "<!DOCTYPE html>" +
- "<html lang='en' dir='ltr'>" +
- "<head>" +
- "<met charset='utf-8'>" +
- "<title>Invalid mail</title>" +
- "</head>" +
- "<body>" +
- "<script type='text/javascript'>alert('Invalid mail')</script>" +
- "</body>" +
- "</html>");
- res.end();
- currEmail = req.body.mail;
- }
- var index = getIndexLogin(currEmail);
- var rightPass = users[index].password;
- while (rightPass != currPass) {
- res.writeHead(200, {
- "Content-Type": "text/html"
- });
- res.write(
- "<!DOCTYPE html>" +
- "<html lang='en' dir='ltr'>" +
- "<head>" +
- "<met charset='utf-8'>" +
- "<title>Invalid password</title>" +
- "</head>" +
- "<body>" +
- "<script type='text/javascript'>alert('Invalid password')</script>" +
- "</body>" +
- "</html>");
- res.end();
- currPass = req.body.password;
- }
- req.session.email = users[index].email;
- res.redirect("/Project_phase1");
- });
- app.get('/login', function (req, res) {
- if (req.session.email) {
- res.redirect("/Project_phase1");
- }
- res.sendFile(__dirname + "/" + "login.html");
- });
- app.get('/Project_phase1', function (req, res) {
- res.sendFile(__dirname + "/" + "Project_phase1.html");
- });
- app.post('/update', function (req) {
- file_content = fs.readFileSync(__dirname + '/users.json');
- users = JSON.parse(file_content);
- var index = getIndexLogin(req.session.email);
- if (req.body.Completed)
- users[index].Completed = req.body.Completed;
- if (req.body.Archived)
- users[index].Archived = req.body.Archived;
- if (req.body.InProgress)
- users[index].InProgress = req.body.InProgress;
- if (req.body.AllTasks)
- users[index].AllTasks = req.body.AllTasks;
- fs.writeFileSync(__dirname + '/users.json', JSON.stringify(users, null, 5));
- });
- app.get('/readArray', function (req, res) {
- file_content = fs.readFileSync(__dirname + '/users.json');
- users = JSON.parse(file_content);
- var index = getIndexLogin(req.session.email);
- res.send(users[index]);
- res.end();
- });
- app.post('/temp', function (req, res) {
- req.session.destroy();
- res.redirect('/login');
- });
- function validateEmail(email) {
- var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
- return re.test(email);
- }
- function validatePassword(password) {
- return password.length >= 5;
- }
- function validateName(name) {
- if (name.length == 0) {
- return false;
- }
- var i = 0;
- for (; i < name.length; i++) {
- if (name[i] < 'a' && name[i] > 'z' && name[i] < 'A' && name[i] > 'Z') {
- return false;
- }
- }
- return true;
- }
- function ifMailIsTaken(currEmail) {
- var i = 0;
- for (; i < users.length; i++) {
- if (users[i].email == currEmail) {
- return true;
- }
- }
- return false;
- }
- function checkLoginMail(temp) {
- for (var i = 0; i < users.length; i++) {
- if (temp == users[i].email) {
- return true;
- }
- }
- console.log("new error");
- return false;
- }
- function getIndexLogin(temp) {
- for (var i = 0; i < users.length; i++) {
- if (temp == users[i].email) {
- return i;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement