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
|
} else if (data === 'expired') {
|
501a9b80
Geoffrey PREUD'HOMME
Meilleures notifi...
|
18
|
NotifyServ.warn("Session expirée");
|
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
|
},
connect: function (login, pass, cb) {
_this = this;
|
501a9b80
Geoffrey PREUD'HOMME
Meilleures notifi...
|
40
|
var not = NotifyServ.promise("Connexion...");
|
2f593328
Geoffrey PREUD'HOMME
Linting
|
41
42
43
44
|
data = JSON.stringify({
login: login,
pass: pass
});
|
7a1fe62d
Geoffrey PREUD'HOMME
Consistence des noms
|
45
|
EncryptServ.encrypt(data, function (dataCrypt) {
|
2f593328
Geoffrey PREUD'HOMME
Linting
|
46
47
|
$http.post('/api/session', [dataCrypt]).success(function (body) {
_this.updateSessionInfos(body);
|
b5dead51
Geoffrey PREUD'HOMME
Notifications
|
48
|
if (_this.cur) {
|
501a9b80
Geoffrey PREUD'HOMME
Meilleures notifi...
|
49
|
not.success("Connecté en tant que <strong>" + _this.cur.nom + "</strong>");
|
b5dead51
Geoffrey PREUD'HOMME
Notifications
|
50
|
if (cb)
|
2f593328
Geoffrey PREUD'HOMME
Linting
|
51
|
cb(null);
|
b5dead51
Geoffrey PREUD'HOMME
Notifications
|
52
53
|
} else {
if (body === 'invalid') {
|
501a9b80
Geoffrey PREUD'HOMME
Meilleures notifi...
|
54
|
not.warn("Identifiants invalides");
|
2f593328
Geoffrey PREUD'HOMME
Linting
|
55
|
}
|
b5dead51
Geoffrey PREUD'HOMME
Notifications
|
56
57
|
if (cb)
cb(body);
|
2f593328
Geoffrey PREUD'HOMME
Linting
|
58
|
}
|
501a9b80
Geoffrey PREUD'HOMME
Meilleures notifi...
|
59
60
|
}).error(function (body) {
not.error("Impossible de se connecter", body);
|
2f593328
Geoffrey PREUD'HOMME
Linting
|
61
62
63
64
|
});
});
},
disconnect: function () {
|
b5dead51
Geoffrey PREUD'HOMME
Notifications
|
65
|
_this = this;
|
501a9b80
Geoffrey PREUD'HOMME
Meilleures notifi...
|
66
|
var not = NotifyServ.promise("Déconnexion...");
|
b5dead51
Geoffrey PREUD'HOMME
Notifications
|
67
68
|
$http.delete('/api/session').success(function () {
_this.updateSessionInfos(false);
|
501a9b80
Geoffrey PREUD'HOMME
Meilleures notifi...
|
69
70
71
|
not.success("Déconnecté");
}).error(function(body) {
not.error("Impossible de se déconnecter", body);
|
b5dead51
Geoffrey PREUD'HOMME
Notifications
|
72
|
});
|
8bb442a5
Geoffrey PREUD'HOMME
Possibilité de se...
|
73
|
}
|
2f593328
Geoffrey PREUD'HOMME
Linting
|
74
75
76
77
|
};
a.get();
return a;
}
|
2201e360
Geoffrey PREUD'HOMME
Le login se fait ...
|
78
|
]);
|