Blame view

app/services/NomsServ.js 1.73 KB
7a1fe62d   Geoffrey PREUD'HOMME   Consistence des noms
1
  var NomsModl = require('../models/NomsModl');
2ac0e575   Geoffrey PREUD'HOMME   Changé de line-re...
2
  var LineTransform = require('node-line-reader').LineTransform;
2f593328   Geoffrey PREUD'HOMME   Linting
3
  var fs = require('fs');
dafb4eeb   Geoffrey PREUD'HOMME   Affichage des nom...
4
  
2f593328   Geoffrey PREUD'HOMME   Linting
5
  var noms = {};
dafb4eeb   Geoffrey PREUD'HOMME   Affichage des nom...
6
7
  
  noms.get = function (login, cb) {
7a1fe62d   Geoffrey PREUD'HOMME   Consistence des noms
8
      NomsModl.findOne({
dafb4eeb   Geoffrey PREUD'HOMME   Affichage des nom...
9
10
11
          login: login
      }, function (err, nom) {
          if (err) {
2f593328   Geoffrey PREUD'HOMME   Linting
12
13
              console.error(err);
              cb(false);
dafb4eeb   Geoffrey PREUD'HOMME   Affichage des nom...
14
          } else {
cb1c1601   Geoffrey PREUD'HOMME   Cache lors de la ...
15
              if (nom) {
2f593328   Geoffrey PREUD'HOMME   Linting
16
                  cb(nom.nom);
dafb4eeb   Geoffrey PREUD'HOMME   Affichage des nom...
17
              } else {
2f593328   Geoffrey PREUD'HOMME   Linting
18
                  passwdF = 'config/passwd';
725cb3f7   Geoffrey PREUD'HOMME   Vérification de l...
19
                  fs.exists(passwdF, function (exists) {
2f593328   Geoffrey PREUD'HOMME   Linting
20
                      found = false;
725cb3f7   Geoffrey PREUD'HOMME   Vérification de l...
21
                      if (exists) {
2f593328   Geoffrey PREUD'HOMME   Linting
22
23
24
                          stream = fs.createReadStream(passwdF);
                          transform = new LineTransform();
                          stream.pipe(transform);
725cb3f7   Geoffrey PREUD'HOMME   Vérification de l...
25
                          transform.on('data', function (line) {
2f593328   Geoffrey PREUD'HOMME   Linting
26
                              ex = line.split(':');
725cb3f7   Geoffrey PREUD'HOMME   Vérification de l...
27
                              if (ex[0] == login) { // Si trouvé
2f593328   Geoffrey PREUD'HOMME   Linting
28
29
30
                                  stream.close();
                                  cb(ex[4]);
                                  found = true;
7a1fe62d   Geoffrey PREUD'HOMME   Consistence des noms
31
                                  NomsModl.create({
cb1c1601   Geoffrey PREUD'HOMME   Cache lors de la ...
32
33
                                      login: login,
                                      nom: ex[4]
2f593328   Geoffrey PREUD'HOMME   Linting
34
                                  });
725cb3f7   Geoffrey PREUD'HOMME   Vérification de l...
35
                              }
2f593328   Geoffrey PREUD'HOMME   Linting
36
                          });
725cb3f7   Geoffrey PREUD'HOMME   Vérification de l...
37
38
                          transform.on('end', function () {
                              if (!found) {
2f593328   Geoffrey PREUD'HOMME   Linting
39
                                  cb(false);
725cb3f7   Geoffrey PREUD'HOMME   Vérification de l...
40
                              }
2f593328   Geoffrey PREUD'HOMME   Linting
41
                          });
725cb3f7   Geoffrey PREUD'HOMME   Vérification de l...
42
                      } else {
2f593328   Geoffrey PREUD'HOMME   Linting
43
44
                          console.error("Impossible de trouver le fichier passwd");
                          cb(login.toUpperCase());
2ac0e575   Geoffrey PREUD'HOMME   Changé de line-re...
45
                      }
2f593328   Geoffrey PREUD'HOMME   Linting
46
                  });
dafb4eeb   Geoffrey PREUD'HOMME   Affichage des nom...
47
48
              }
          }
2f593328   Geoffrey PREUD'HOMME   Linting
49
50
      });
  };
dafb4eeb   Geoffrey PREUD'HOMME   Affichage des nom...
51
  
2f593328   Geoffrey PREUD'HOMME   Linting
52
  module.exports = noms;