fa42131e
Geoffrey PREUD'HOMME
Réglage des dépen...
|
1
|
angular.module('SessionsServ', ['NotifyServ', 'EncryptServ']).service('SessionServ', ['$http', 'EncryptServ', 'NotifyServ',
|
b5dead51
Geoffrey PREUD'HOMME
Notifications
|
2
|
function ($http, EncryptServ, NotifyServ) {
|
2f593328
Geoffrey PREUD'HOMME
Linting
|
3
4
|
a = {
cur: false,
|
2f593328
Geoffrey PREUD'HOMME
Linting
|
5
6
7
8
9
10
11
12
13
14
|
changeHandlers: [],
onChange: function (fun) {
this.changeHandlers.push(fun);
},
triggerChange: function () {
for (var fun in this.changeHandlers) {
this.changeHandlers[fun]();
}
},
updateSessionInfos: function (data) {
|
2f593328
Geoffrey PREUD'HOMME
Linting
|
15
16
|
if (typeof data === 'object') {
this.cur = data;
|
b5dead51
Geoffrey PREUD'HOMME
Notifications
|
17
18
|
} else if (data === 'expired') {
NotifyServ.warn("Votre session a expiré");
|
2f593328
Geoffrey PREUD'HOMME
Linting
|
19
20
21
22
23
24
|
} else {
this.cur = false;
}
this.triggerChange();
},
get: function (cb) { // Fetch infos if needed
|
338930e1
Geoffrey PREUD'HOMME
La session n'étai...
|
25
26
27
28
29
30
31
32
33
|
_this = this;
// TODO Verify if cookies to prevent uneeded request
$http.get('/api/session').success(function (body) {
_this.updateSessionInfos(body);
if (cb) {
if (this.logged) {
cb(null);
} else {
cb(body);
|
2f593328
Geoffrey PREUD'HOMME
Linting
|
34
|
}
|
338930e1
Geoffrey PREUD'HOMME
La session n'étai...
|
35
36
|
}
});
|
2f593328
Geoffrey PREUD'HOMME
Linting
|
37
38
39
40
41
42
43
|
},
connect: function (login, pass, cb) {
_this = this;
data = JSON.stringify({
login: login,
pass: pass
});
|
7a1fe62d
Geoffrey PREUD'HOMME
Consistence des noms
|
44
|
EncryptServ.encrypt(data, function (dataCrypt) {
|
2f593328
Geoffrey PREUD'HOMME
Linting
|
45
46
|
$http.post('/api/session', [dataCrypt]).success(function (body) {
_this.updateSessionInfos(body);
|
b5dead51
Geoffrey PREUD'HOMME
Notifications
|
47
48
49
|
if (_this.cur) {
NotifyServ.info("Connecté en tant que <strong>" + _this.cur.nom + "</strong>");
if (cb)
|
2f593328
Geoffrey PREUD'HOMME
Linting
|
50
|
cb(null);
|
b5dead51
Geoffrey PREUD'HOMME
Notifications
|
51
52
53
|
} else {
if (body === 'invalid') {
NotifyServ.warn("Identifiants invalides");
|
2f593328
Geoffrey PREUD'HOMME
Linting
|
54
|
}
|
b5dead51
Geoffrey PREUD'HOMME
Notifications
|
55
56
|
if (cb)
cb(body);
|
2f593328
Geoffrey PREUD'HOMME
Linting
|
57
58
59
60
61
|
}
});
});
},
disconnect: function () {
|
b5dead51
Geoffrey PREUD'HOMME
Notifications
|
62
63
64
65
66
|
_this = this;
$http.delete('/api/session').success(function () {
_this.updateSessionInfos(false);
NotifyServ.info("Déconnecté");
});
|
8bb442a5
Geoffrey PREUD'HOMME
Possibilité de se...
|
67
|
}
|
2f593328
Geoffrey PREUD'HOMME
Linting
|
68
69
70
71
|
};
a.get();
return a;
}
|
2201e360
Geoffrey PREUD'HOMME
Le login se fait ...
|
72
|
]);
|