Advertisement
Guest User

Untitled

a guest
May 13th, 2016
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.55 KB | None | 0 0
  1. var http = require('http');
  2. var fs = require('fs');
  3. var url = require('url');
  4. var express = require('express');
  5. var app = express();
  6. var session = require('express-session');
  7. app.use(express.static('phase1'));
  8. app.use(session({
  9.     secret: 'Security',
  10.     resave: true,
  11.     saveUninitialized: false
  12. }));
  13.  
  14. var bodyParser = require('body-parser');
  15. app.use(bodyParser.json()); // to support JSON-encoded bodies
  16. app.use(bodyParser.urlencoded({ // to support URL-encoded bodies
  17.     extended: true
  18. }));
  19.  
  20. var file_content = fs.readFileSync(__dirname + '/users.json');
  21.  
  22. var users = JSON.parse(file_content);
  23.  
  24. app.post('/register', function (req, res) {
  25.     //To get the data sent in a post request , you just enter //req.body.<name of the input you want it’s value>
  26.     if (req.session.email) {
  27.         res.redirect("/Project_phase1");
  28.     }
  29.     var sentEmail = req.body.regmail; // sets sentEmail value to
  30.     var sentName = req.body.regname;
  31.     var sentpass = req.body.regpassword;
  32.     while (!validateName(sentName) || !validatePassword(sentpass) || ifMailIsTaken(sentEmail) || !validateEmail(sentEmail)) {
  33.         if (!validateName(sentName)) {
  34.             res.writeHead(200, {
  35.                 "Content-Type": "text/html"
  36.             });
  37.             res.write(
  38.                 "<!DOCTYPE html>" +
  39.                 "<html lang='en' dir='ltr'>" +
  40.                 "<head>" +
  41.                 "<met charset='utf-8'>" +
  42.                 "<title>Wrong name</title>" +
  43.                 "</head>" +
  44.                 "<body>" +
  45.                 "<script type='text/javascript'>alert('Wrong name')</script>" +
  46.                 "</body>" +
  47.                 "</html>");
  48.             res.end();
  49.             sentName = req.body.regname;
  50.         }
  51.         if (!validatePassword(sentpass)) {
  52.             res.writeHead(200, {
  53.                 "Content-Type": "text/html"
  54.             });
  55.             res.write(
  56.                 "<!DOCTYPE html>" +
  57.                 "<html lang='en' dir='ltr'>" +
  58.                 "<head>" +
  59.                 "<met charset='utf-8'>" +
  60.                 "<title>Wrong password</title>" +
  61.                 "</head>" +
  62.                 "<body>" +
  63.                 "<script type='text/javascript'>alert('password length shoulb be >= 5')</script>" +
  64.                 "</body>" +
  65.                 "</html>");
  66.             res.end();
  67.             sentpass = req.body.regpassword;
  68.         }
  69.         if (ifMailIsTaken(sentEmail) || !validateEmail(sentEmail)) {
  70.             res.writeHead(200, {
  71.                 "Content-Type": "text/html"
  72.             });
  73.             res.write(
  74.                 "<!DOCTYPE html>" +
  75.                 "<html lang='en' dir='ltr'>" +
  76.                 "<head>" +
  77.                 "<met charset='utf-8'>" +
  78.                 "<title>Choose another mail</title>" +
  79.                 "</head>" +
  80.                 "<body>" +
  81.                 "<script type='text/javascript'>alert('The mail is taken or wrong formula ,,, choose another one')</script>" +
  82.                 "</body>" +
  83.                 "</html>");
  84.             res.end();
  85.             sentEmail = req.body.regmail;
  86.         }
  87.     }
  88.     var newUser = {
  89.         "email": sentEmail,
  90.         "Name": sentName,
  91.         "password": sentpass,
  92.         "Completed": [],
  93.         "Archived": [],
  94.         "InProgress": [],
  95.         "AllTasks": []
  96.     };
  97.     users.push(newUser);
  98.     fs.writeFileSync(__dirname + '/users.json', JSON.stringify(users, null, 5));
  99.     res.redirect("/login");
  100. });
  101.  
  102. app.get('/register', function (req, res) {
  103.     if (req.session.email) {
  104.         res.redirect("/Project_phase1");
  105.     }
  106.     res.sendFile(__dirname + "/" + "register.html");
  107. });
  108.  
  109. app.post('/login', function (req, res) {
  110.     if (req.session.email) {
  111.         res.redirect("/Project_phase1");
  112.     }
  113.     var currEmail = req.body.mail; // sets sentEmail value to
  114.     var currPass = req.body.password;
  115.     while (users.length == 0 || !checkLoginMail(currEmail)) {
  116.         res.writeHead(200, {
  117.             "Content-Type": "text/html"
  118.         });
  119.         res.write(
  120.             "<!DOCTYPE html>" +
  121.             "<html lang='en' dir='ltr'>" +
  122.             "<head>" +
  123.             "<met charset='utf-8'>" +
  124.             "<title>Invalid mail</title>" +
  125.             "</head>" +
  126.             "<body>" +
  127.             "<script type='text/javascript'>alert('Invalid mail')</script>" +
  128.             "</body>" +
  129.             "</html>");
  130.         res.end();
  131.         currEmail = req.body.mail;
  132.     }
  133.     var index = getIndexLogin(currEmail);
  134.     var rightPass = users[index].password;
  135.     while (rightPass != currPass) {
  136.         res.writeHead(200, {
  137.             "Content-Type": "text/html"
  138.         });
  139.         res.write(
  140.             "<!DOCTYPE html>" +
  141.             "<html lang='en' dir='ltr'>" +
  142.             "<head>" +
  143.             "<met charset='utf-8'>" +
  144.             "<title>Invalid password</title>" +
  145.             "</head>" +
  146.             "<body>" +
  147.             "<script type='text/javascript'>alert('Invalid password')</script>" +
  148.             "</body>" +
  149.             "</html>");
  150.         res.end();
  151.         currPass = req.body.password;
  152.     }
  153.     req.session.email = users[index].email;
  154.     res.redirect("/Project_phase1");
  155. });
  156. app.get('/login', function (req, res) {
  157.     if (req.session.email) {
  158.         res.redirect("/Project_phase1");
  159.     }
  160.     res.sendFile(__dirname + "/" + "login.html");
  161. });
  162.  
  163. app.get('/Project_phase1', function (req, res) {
  164.     res.sendFile(__dirname + "/" + "Project_phase1.html");
  165. });
  166.  
  167. app.post('/update', function (req) {
  168.     file_content = fs.readFileSync(__dirname + '/users.json');
  169.     users = JSON.parse(file_content);
  170.     var index = getIndexLogin(req.session.email);
  171.     if (req.body.Completed)
  172.         users[index].Completed = req.body.Completed;
  173.     if (req.body.Archived)
  174.         users[index].Archived = req.body.Archived;
  175.     if (req.body.InProgress)
  176.         users[index].InProgress = req.body.InProgress;
  177.     if (req.body.AllTasks)
  178.         users[index].AllTasks = req.body.AllTasks;
  179.     fs.writeFileSync(__dirname + '/users.json', JSON.stringify(users, null, 5));
  180. });
  181.  
  182. app.get('/readArray', function (req, res) {
  183.     file_content = fs.readFileSync(__dirname + '/users.json');
  184.     users = JSON.parse(file_content);
  185.     var index = getIndexLogin(req.session.email);
  186.     res.send(users[index]);
  187.     res.end();
  188. });
  189.  
  190. app.post('/temp', function (req, res) {
  191.     req.session.destroy();
  192.     res.redirect('/login');
  193. });
  194.  
  195. function validateEmail(email) {
  196.     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,}))$/;
  197.     return re.test(email);
  198. }
  199.  
  200. function validatePassword(password) {
  201.     return password.length >= 5;
  202. }
  203.  
  204. function validateName(name) {
  205.     if (name.length == 0) {
  206.         return false;
  207.     }
  208.     var i = 0;
  209.     for (; i < name.length; i++) {
  210.         if (name[i] < 'a' && name[i] > 'z' && name[i] < 'A' && name[i] > 'Z') {
  211.             return false;
  212.         }
  213.     }
  214.     return true;
  215. }
  216.  
  217. function ifMailIsTaken(currEmail) {
  218.     var i = 0;
  219.     for (; i < users.length; i++) {
  220.         if (users[i].email == currEmail) {
  221.             return true;
  222.         }
  223.     }
  224.     return false;
  225. }
  226.  
  227. function checkLoginMail(temp) {
  228.     for (var i = 0; i < users.length; i++) {
  229.         if (temp == users[i].email) {
  230.             return true;
  231.         }
  232.     }
  233.     console.log("new error");
  234.     return false;
  235. }
  236.  
  237. function getIndexLogin(temp) {
  238.     for (var i = 0; i < users.length; i++) {
  239.         if (temp == users[i].email) {
  240.             return i;
  241.         }
  242.     }
  243. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement