Blame view

app/controllers/sessions.js 1.53 KB
10852373   Geoffrey PREUD'HOMME   Session contrôleu...
1
2
3
4
  var Session = require('../models/session');
  
  var sessions = {}
  
10852373   Geoffrey PREUD'HOMME   Session contrôleu...
5
  sessions.valid = function (session) {
8bb442a5   Geoffrey PREUD'HOMME   Possibilité de se...
6
      return session.started.setSeconds(session.started.getSeconds() + 3600) > new Date()
10852373   Geoffrey PREUD'HOMME   Session contrôleu...
7
8
9
10
11
12
13
14
  }
  
  sessions.delete = function (id, cb) {
      Session.remove({
          _id: id
      }, cb);
  }
  
10852373   Geoffrey PREUD'HOMME   Session contrôleu...
15
  sessions.verify = function (id, cb) {
8bb442a5   Geoffrey PREUD'HOMME   Possibilité de se...
16
17
      _this = this
      Session.findById(id, function (err, session) {
10852373   Geoffrey PREUD'HOMME   Session contrôleu...
18
19
20
          if (err) {
              cb('error');
          } else {
8bb442a5   Geoffrey PREUD'HOMME   Possibilité de se...
21
22
23
24
25
26
27
              if (session) {
                  if (sessions.valid(session)) {
                      cb(err, session);
                  } else {
                      cb('expired');
                      _this.delete(id)
                  }
10852373   Geoffrey PREUD'HOMME   Session contrôleu...
28
              } else {
8bb442a5   Geoffrey PREUD'HOMME   Possibilité de se...
29
                  cb('unknown')
10852373   Geoffrey PREUD'HOMME   Session contrôleu...
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
              }
          }
      });
  }
  
  sessions.create = function (login, cb) {
      Session.create({
          login: login
      }, cb);
  }
  
  sessions.login = function (data, cb) {
      // DUMMY
      if (data.login == 'cool' && data.pass == 'cool') {
          cb(null, true);
      } else {
          cb(null, false);
      }
  }
  
  sessions.open = function (data, cb) {
      sessions.login(data, function (err, res) {
          if (err) {
              cb('error')
          } else {
              if (res) {
                  sessions.create(data.login, function (err, session) {
                      if (err) {
                          cb('error');
                      } else {
                          cb(session);
                      }
                  });
              } else {
                  cb('invalid')
              }
          }
      });
  }
  
  module.exports = sessions;