Blame view

app/services/SessionsServ.js 2.78 KB
7a1fe62d   Geoffrey PREUD'HOMME   Consistence des noms
1
  var SessionModl = require('../models/SessionModl');
43b2778d   Geoffrey PREUD'HOMME   Rassemblement de ...
2
  var PolyUserServ = require('../services/PolyUserServ');
0f7812f5   Geoffrey PREUD'HOMME   Reconaissance des...
3
  var MembresServ = require('../services/MembresServ');
10852373   Geoffrey PREUD'HOMME   Session contrôleu...
4
  
2f593328   Geoffrey PREUD'HOMME   Linting
5
  var sessions = {};
10852373   Geoffrey PREUD'HOMME   Session contrôleu...
6
  
2f593328   Geoffrey PREUD'HOMME   Linting
7
  sessions.cur = false;
69695d81   Geoffrey PREUD'HOMME   Serveur: Vérifica...
8
  
dafb4eeb   Geoffrey PREUD'HOMME   Affichage des nom...
9
  sessions.addData = function (session, cb) {
43b2778d   Geoffrey PREUD'HOMME   Rassemblement de ...
10
      PolyUserServ.get(session.login, function (err, nom) {
e4fff96c   Geoffrey PREUD'HOMME   Récupération des ...
11
12
13
          // Nom
          session.nom = nom.nom;
          session.section = nom.section;
0f7812f5   Geoffrey PREUD'HOMME   Reconaissance des...
14
15
16
17
18
19
20
21
22
23
24
          MembresServ.estBureau(session.login, function (bureau) {
              session.bureau = bureau;
              // Permissions
              session.canAddMembre = session.bureau;
              session.canDelMembre = session.bureau;
              session.canAddConv = true;
              session.canDelConv = session.bureau;
              session.canAddMess = true;
              session.canDelMess = session.bureau;
              cb(session);
          });
2f593328   Geoffrey PREUD'HOMME   Linting
25
26
      });
  };
dafb4eeb   Geoffrey PREUD'HOMME   Affichage des nom...
27
28
  
  sessions.find = function (id, cb) {
2f593328   Geoffrey PREUD'HOMME   Linting
29
      _this = this;
7a1fe62d   Geoffrey PREUD'HOMME   Consistence des noms
30
      SessionModl.findById(id).lean().exec(function (err, session) {
dafb4eeb   Geoffrey PREUD'HOMME   Affichage des nom...
31
32
          if (typeof session == 'object') {
              _this.addData(session, function (session) {
2f593328   Geoffrey PREUD'HOMME   Linting
33
34
                  cb(err, session);
              });
dafb4eeb   Geoffrey PREUD'HOMME   Affichage des nom...
35
          } else {
2f593328   Geoffrey PREUD'HOMME   Linting
36
              cb(err, null);
dafb4eeb   Geoffrey PREUD'HOMME   Affichage des nom...
37
          }
2f593328   Geoffrey PREUD'HOMME   Linting
38
39
      });
  };
dafb4eeb   Geoffrey PREUD'HOMME   Affichage des nom...
40
  
10852373   Geoffrey PREUD'HOMME   Session contrôleu...
41
  sessions.valid = function (session) {
2f593328   Geoffrey PREUD'HOMME   Linting
42
43
      return session.started.setSeconds(session.started.getSeconds() + 3600) > new Date();
  };
10852373   Geoffrey PREUD'HOMME   Session contrôleu...
44
45
  
  sessions.delete = function (id, cb) {
7a1fe62d   Geoffrey PREUD'HOMME   Consistence des noms
46
      SessionModl.remove({
10852373   Geoffrey PREUD'HOMME   Session contrôleu...
47
48
          _id: id
      }, cb);
2f593328   Geoffrey PREUD'HOMME   Linting
49
  };
10852373   Geoffrey PREUD'HOMME   Session contrôleu...
50
  
10852373   Geoffrey PREUD'HOMME   Session contrôleu...
51
  sessions.verify = function (id, cb) {
2f593328   Geoffrey PREUD'HOMME   Linting
52
      _this = this;
dafb4eeb   Geoffrey PREUD'HOMME   Affichage des nom...
53
      _this.find(id, function (err, session) {
10852373   Geoffrey PREUD'HOMME   Session contrôleu...
54
55
56
          if (err) {
              cb('error');
          } else {
8bb442a5   Geoffrey PREUD'HOMME   Possibilité de se...
57
58
              if (session) {
                  if (sessions.valid(session)) {
69695d81   Geoffrey PREUD'HOMME   Serveur: Vérifica...
59
                      cb(null, session);
8bb442a5   Geoffrey PREUD'HOMME   Possibilité de se...
60
61
                  } else {
                      cb('expired');
2f593328   Geoffrey PREUD'HOMME   Linting
62
                      _this.delete(id);
8bb442a5   Geoffrey PREUD'HOMME   Possibilité de se...
63
                  }
10852373   Geoffrey PREUD'HOMME   Session contrôleu...
64
              } else {
2f593328   Geoffrey PREUD'HOMME   Linting
65
                  cb('unknown');
10852373   Geoffrey PREUD'HOMME   Session contrôleu...
66
67
68
              }
          }
      });
2f593328   Geoffrey PREUD'HOMME   Linting
69
  };
10852373   Geoffrey PREUD'HOMME   Session contrôleu...
70
  
69695d81   Geoffrey PREUD'HOMME   Serveur: Vérifica...
71
  sessions.use = function (id, cb) {
2f593328   Geoffrey PREUD'HOMME   Linting
72
      _this = this;
69695d81   Geoffrey PREUD'HOMME   Serveur: Vérifica...
73
74
      _this.verify(id, function (err, session) {
          if (err) {
2f593328   Geoffrey PREUD'HOMME   Linting
75
              cb(err);
69695d81   Geoffrey PREUD'HOMME   Serveur: Vérifica...
76
          } else {
097f26f7   Geoffrey PREUD'HOMME   Améliorations cot...
77
              cb(null, session);
69695d81   Geoffrey PREUD'HOMME   Serveur: Vérifica...
78
          }
2f593328   Geoffrey PREUD'HOMME   Linting
79
80
      });
  };
69695d81   Geoffrey PREUD'HOMME   Serveur: Vérifica...
81
  
10852373   Geoffrey PREUD'HOMME   Session contrôleu...
82
  sessions.create = function (login, cb) {
7a1fe62d   Geoffrey PREUD'HOMME   Consistence des noms
83
      SessionModl.create({
10852373   Geoffrey PREUD'HOMME   Session contrôleu...
84
85
          login: login
      }, cb);
2f593328   Geoffrey PREUD'HOMME   Linting
86
  };
10852373   Geoffrey PREUD'HOMME   Session contrôleu...
87
88
  
  sessions.login = function (data, cb) {
43b2778d   Geoffrey PREUD'HOMME   Rassemblement de ...
89
      PolyUserServ.verify(data.login, data.pass, cb);
2f593328   Geoffrey PREUD'HOMME   Linting
90
  };
10852373   Geoffrey PREUD'HOMME   Session contrôleu...
91
92
  
  sessions.open = function (data, cb) {
2f593328   Geoffrey PREUD'HOMME   Linting
93
      _this = this;
dafb4eeb   Geoffrey PREUD'HOMME   Affichage des nom...
94
      _this.login(data, function (err, res) {
10852373   Geoffrey PREUD'HOMME   Session contrôleu...
95
          if (err) {
097f26f7   Geoffrey PREUD'HOMME   Améliorations cot...
96
              cb(err);
10852373   Geoffrey PREUD'HOMME   Session contrôleu...
97
98
          } else {
              if (res) {
dafb4eeb   Geoffrey PREUD'HOMME   Affichage des nom...
99
                  _this.create(data.login, function (err, session) {
10852373   Geoffrey PREUD'HOMME   Session contrôleu...
100
                      if (err) {
097f26f7   Geoffrey PREUD'HOMME   Améliorations cot...
101
                          cb(err);
10852373   Geoffrey PREUD'HOMME   Session contrôleu...
102
                      } else {
2f593328   Geoffrey PREUD'HOMME   Linting
103
                          _this.use(session._id, cb);
10852373   Geoffrey PREUD'HOMME   Session contrôleu...
104
105
106
                      }
                  });
              } else {
2f593328   Geoffrey PREUD'HOMME   Linting
107
                  cb('invalid');
10852373   Geoffrey PREUD'HOMME   Session contrôleu...
108
109
110
              }
          }
      });
2f593328   Geoffrey PREUD'HOMME   Linting
111
  };
10852373   Geoffrey PREUD'HOMME   Session contrôleu...
112
  
2201e360   Geoffrey PREUD'HOMME   Le login se fait ...
113
  module.exports = sessions;