Commit 097f26f74c3dd1e040116fbc961546acd7254904

Authored by Geoffrey PREUD'HOMME
1 parent eaf87e8a

Améliorations coté serveur

* Ajout d'erreurs 500 manquantes
* Suppression de SessionServ.cur
* Ajout d'autorisations manquantes
app/routes/ApiRtes.js
@@ -10,12 +10,12 @@ var api = express(); @@ -10,12 +10,12 @@ var api = express();
10 // Authentication 10 // Authentication
11 reqAuth = function () { 11 reqAuth = function () {
12 return function (req, res, next) { 12 return function (req, res, next) {
13 - SessionsServ.use(req.cookies.session, function (err) { 13 + SessionsServ.use(req.cookies.session, function (err, session) {
14 if (err) { 14 if (err) {
15 res.status(500).send(err); 15 res.status(500).send(err);
16 } else { 16 } else {
17 - if (SessionsServ.cur) {  
18 - req.session = SessionsServ.cur; 17 + if (session) {
  18 + req.session = session;
19 next(); 19 next();
20 } else { 20 } else {
21 res.status(401).end(); 21 res.status(401).end();
@@ -71,11 +71,11 @@ assert = function (test) { @@ -71,11 +71,11 @@ assert = function (test) {
71 // Sessions 71 // Sessions
72 api.get('/session', function (req, res) { // Informations sur la session 72 api.get('/session', function (req, res) { // Informations sur la session
73 if (req.cookies && req.cookies.session) { 73 if (req.cookies && req.cookies.session) {
74 - SessionsServ.use(req.cookies.session, function (err) { 74 + SessionsServ.use(req.cookies.session, function (err, session) {
75 if (err) { 75 if (err) {
76 - res.send(err); 76 + res.status(500).send(err);
77 } else { 77 } else {
78 - res.send(SessionsServ.cur); 78 + res.send(session);
79 } 79 }
80 }); 80 });
81 // TODO si pas bon : res.clearCookie('session') 81 // TODO si pas bon : res.clearCookie('session')
@@ -86,12 +86,12 @@ api.get('/session', function (req, res) { // Informations sur la session @@ -86,12 +86,12 @@ api.get('/session', function (req, res) { // Informations sur la session
86 86
87 api.post('/session', function (req, res) { // Se connecter 87 api.post('/session', function (req, res) { // Se connecter
88 DecryptServ.decrypt(req.body[0], function (data) { 88 DecryptServ.decrypt(req.body[0], function (data) {
89 - SessionsServ.open(JSON.parse(data), function (err) { 89 + SessionsServ.open(JSON.parse(data), function (err, session) {
90 if (err) { 90 if (err) {
91 - res.send(err); 91 + res.status(500).send(err);
92 } else { 92 } else {
93 - res.cookie('session', SessionsServ.cur._id);  
94 - res.send(SessionsServ.cur); 93 + res.cookie('session', session._id);
  94 + res.send(session);
95 } 95 }
96 }); 96 });
97 }); 97 });
@@ -113,7 +113,7 @@ api.delete('/session', function (req, res) { // Se déconnecter @@ -113,7 +113,7 @@ api.delete('/session', function (req, res) { // Se déconnecter
113 api.get('/membres', function (req, res) { // Liste des membres 113 api.get('/membres', function (req, res) { // Liste des membres
114 MembresServ.list(function (err, membres) { 114 MembresServ.list(function (err, membres) {
115 if (err) 115 if (err)
116 - res.send(err); 116 + res.status(500).send(err);
117 else 117 else
118 res.json(membres); 118 res.json(membres);
119 }); 119 });
@@ -124,7 +124,7 @@ api.post('/membres', assert(function (req, res, cb) { @@ -124,7 +124,7 @@ api.post('/membres', assert(function (req, res, cb) {
124 }), reqPerm('canAddMembre'), function (req, res) { // Ajout d'un membre 124 }), reqPerm('canAddMembre'), function (req, res) { // Ajout d'un membre
125 MembresServ.add(req.body, function (err, membre) { 125 MembresServ.add(req.body, function (err, membre) {
126 if (err) 126 if (err)
127 - res.send(err); 127 + res.status(500).send(err);
128 else 128 else
129 res.json(membre); 129 res.json(membre);
130 }); 130 });
@@ -133,7 +133,7 @@ api.post('/membres', assert(function (req, res, cb) { @@ -133,7 +133,7 @@ api.post('/membres', assert(function (req, res, cb) {
133 api.delete('/membres/:membre_id', reqPerm('canDelMembre'), function (req, res) { // Supression d'un membre 133 api.delete('/membres/:membre_id', reqPerm('canDelMembre'), function (req, res) { // Supression d'un membre
134 MembresServ.remove(req.params.membre_id, function (err, membre) { 134 MembresServ.remove(req.params.membre_id, function (err, membre) {
135 if (err) 135 if (err)
136 - res.send(err); 136 + res.status(500).send(err);
137 else 137 else
138 res.json(null); 138 res.json(null);
139 }); 139 });
@@ -144,7 +144,7 @@ api.delete('/membres/:membre_id', reqPerm('canDelMembre'), function (req, res) { @@ -144,7 +144,7 @@ api.delete('/membres/:membre_id', reqPerm('canDelMembre'), function (req, res) {
144 api.get('/convs', function (req, res) { // Liste des convs 144 api.get('/convs', function (req, res) { // Liste des convs
145 ConvsServ.list(function (err, convs) { 145 ConvsServ.list(function (err, convs) {
146 if (err) 146 if (err)
147 - res.send(err); 147 + res.status(500).send(err);
148 else 148 else
149 res.json(convs); 149 res.json(convs);
150 }); 150 });
@@ -153,7 +153,7 @@ api.get('/convs', function (req, res) { // Liste des convs @@ -153,7 +153,7 @@ api.get('/convs', function (req, res) { // Liste des convs
153 api.get('/convs/:conv_id', function (req, res) { // Une conv 153 api.get('/convs/:conv_id', function (req, res) { // Une conv
154 ConvsServ.get(req.params.conv_id, function (err, conv) { 154 ConvsServ.get(req.params.conv_id, function (err, conv) {
155 if (err) 155 if (err)
156 - res.send(err); 156 + res.status(500).send(err);
157 else 157 else
158 res.json(conv); 158 res.json(conv);
159 }); 159 });
@@ -162,7 +162,7 @@ api.get('/convs/:conv_id', function (req, res) { // Une conv @@ -162,7 +162,7 @@ api.get('/convs/:conv_id', function (req, res) { // Une conv
162 api.post('/convs', reqPerm('canAddConv'), function (req, res) { // Ajout d'un conv 162 api.post('/convs', reqPerm('canAddConv'), function (req, res) { // Ajout d'un conv
163 ConvsServ.add(req.body, function (err, conv) { 163 ConvsServ.add(req.body, function (err, conv) {
164 if (err) 164 if (err)
165 - res.send(err); 165 + res.status(500).send(err);
166 else 166 else
167 res.json(conv); 167 res.json(conv);
168 }); 168 });
@@ -171,46 +171,46 @@ api.post('/convs', reqPerm('canAddConv'), function (req, res) { // Ajout d'un co @@ -171,46 +171,46 @@ api.post('/convs', reqPerm('canAddConv'), function (req, res) { // Ajout d'un co
171 api.delete('/convs/:conv_id', reqPerm('canDelConv'), function (req, res) { // Supression d'un conv 171 api.delete('/convs/:conv_id', reqPerm('canDelConv'), function (req, res) { // Supression d'un conv
172 ConvsServ.remove(req.params.conv_id, function (err, conv) { 172 ConvsServ.remove(req.params.conv_id, function (err, conv) {
173 if (err) 173 if (err)
174 - res.send(err); 174 + res.status(500).send(err);
175 else 175 else
176 res.json(null); 176 res.json(null);
177 }); 177 });
178 }); 178 });
179 179
180 // Messages 180 // Messages
181 -api.get('/messs/:conv_id', function (req, res) { // Liste des messs 181 +api.get('/messs/:conv_id', reqAuth(), function (req, res) { // Liste des messs
182 MessServ.list(req.params.conv_id, function (err, messs) { 182 MessServ.list(req.params.conv_id, function (err, messs) {
183 if (err) 183 if (err)
184 - res.send(err); 184 + res.status(500).send(err);
185 else 185 else
186 res.json(messs); 186 res.json(messs);
187 }); 187 });
188 }); 188 });
189 189
190 -api.get('/messs/:mess_id', function (req, res) { // Une mess 190 +api.get('/messs/:mess_id', reqAuth(), function (req, res) { // Une mess
191 MessServ.get(req.params.mess_id, function (err, mess) { 191 MessServ.get(req.params.mess_id, function (err, mess) {
192 if (err) 192 if (err)
193 - res.send(err); 193 + res.status(500).send(err);
194 else 194 else
195 res.json(mess); 195 res.json(mess);
196 }); 196 });
197 }); 197 });
198 198
199 -api.post('/messs', reqAuth(), function (req, res) { // Ajout d'un mess 199 +api.post('/messs', reqPerm('canAddMess'), function (req, res) { // Ajout d'un mess
200 data = req.body; 200 data = req.body;
201 data.login = req.session.login; 201 data.login = req.session.login;
202 MessServ.add(data, function (err, mess) { 202 MessServ.add(data, function (err, mess) {
203 if (err) 203 if (err)
204 - res.send(err); 204 + res.status(500).send(err);
205 else 205 else
206 res.json(mess); 206 res.json(mess);
207 }); 207 });
208 }); 208 });
209 209
210 -api.delete('/messs/:mess_id', reqAuth(), function (req, res) { // Supression d'un mess 210 +api.delete('/messs/:mess_id', reqPerm('canDelMess'), function (req, res) { // Supression d'un mess
211 MessServ.remove(req.params.mess_id, function (err, mess) { 211 MessServ.remove(req.params.mess_id, function (err, mess) {
212 if (err) 212 if (err)
213 - res.send(err); 213 + res.status(500).send(err);
214 else 214 else
215 res.json(null); 215 res.json(null);
216 }); 216 });
app/services/SessionsServ.js
@@ -75,8 +75,7 @@ sessions.use = function (id, cb) { @@ -75,8 +75,7 @@ sessions.use = function (id, cb) {
75 if (err) { 75 if (err) {
76 cb(err); 76 cb(err);
77 } else { 77 } else {
78 - _this.cur = session; // TODO Get rid of _this.cur  
79 - cb(null); 78 + cb(null, session);
80 } 79 }
81 }); 80 });
82 }; 81 };
@@ -95,12 +94,12 @@ sessions.open = function (data, cb) { @@ -95,12 +94,12 @@ sessions.open = function (data, cb) {
95 _this = this; 94 _this = this;
96 _this.login(data, function (err, res) { 95 _this.login(data, function (err, res) {
97 if (err) { 96 if (err) {
98 - cb('error'); 97 + cb(err);
99 } else { 98 } else {
100 if (res) { 99 if (res) {
101 _this.create(data.login, function (err, session) { 100 _this.create(data.login, function (err, session) {
102 if (err) { 101 if (err) {
103 - cb('error'); 102 + cb(err);
104 } else { 103 } else {
105 _this.use(session._id, cb); 104 _this.use(session._id, cb);
106 } 105 }
public/js/services/SessionServ.js
@@ -58,6 +58,7 @@ angular.module('SessionsServ', ['NotifyServ', 'EncryptServ']).service('SessionSe @@ -58,6 +58,7 @@ angular.module('SessionsServ', ['NotifyServ', 'EncryptServ']).service('SessionSe
58 } 58 }
59 }).error(function (body) { 59 }).error(function (body) {
60 not.error("Impossible de se connecter", body); 60 not.error("Impossible de se connecter", body);
  61 + cb(body);
61 }); 62 });
62 }); 63 });
63 }, 64 },
@@ -67,7 +68,7 @@ angular.module('SessionsServ', ['NotifyServ', 'EncryptServ']).service('SessionSe @@ -67,7 +68,7 @@ angular.module('SessionsServ', ['NotifyServ', 'EncryptServ']).service('SessionSe
67 $http.delete('/api/session').success(function () { 68 $http.delete('/api/session').success(function () {
68 _this.updateSessionInfos(false); 69 _this.updateSessionInfos(false);
69 not.success("Déconnecté"); 70 not.success("Déconnecté");
70 - }).error(function(body) { 71 + }).error(function (body) {
71 not.error("Impossible de se déconnecter", body); 72 not.error("Impossible de se déconnecter", body);
72 }); 73 });
73 } 74 }