author | Michael Krelin <hacker@klever.net> | 2013-11-25 19:04:15 (UTC) |
---|---|---|
committer | Michael Krelin <hacker@klever.net> | 2013-11-25 19:04:15 (UTC) |
commit | 8718e9094c37bde8205fd1fe3c42b4bf590486ab (patch) (unidiff) | |
tree | 7e32d19a483964dc153d767cc9bbefab521deeea | |
parent | 706ed5b980c48ad807923d36741f19b21f2911a6 (diff) | |
download | clipperz-8718e9094c37bde8205fd1fe3c42b4bf590486ab.zip clipperz-8718e9094c37bde8205fd1fe3c42b4bf590486ab.tar.gz clipperz-8718e9094c37bde8205fd1fe3c42b4bf590486ab.tar.bz2 |
retrieve header as a string to avoid restringification
-rw-r--r-- | backend/node/src/clipperz.js | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/backend/node/src/clipperz.js b/backend/node/src/clipperz.js index c6d776a..eebd5bf 100644 --- a/backend/node/src/clipperz.js +++ b/backend/node/src/clipperz.js | |||
@@ -186,41 +186,41 @@ var CLIPPERZ = module.exports = function(CONFIG) { | |||
186 | req.session.u=r.u_id; req.session.otp=r.otp_id; | 186 | req.session.u=r.u_id; req.session.otp=r.otp_id; |
187 | res.res({data:r.otp_data,version:r.otp_version}); | 187 | res.res({data:r.otp_data,version:r.otp_version}); |
188 | }); | 188 | }); |
189 | } | 189 | } |
190 | break; | 190 | break; |
191 | 191 | ||
192 | case 'message': | 192 | case 'message': |
193 | if(!req.session.K) return res.res({result:'EXCEPTION',message:"effectively, we're missing a aconnection"}); | 193 | if(!req.session.K) return res.res({result:'EXCEPTION',message:"effectively, we're missing a aconnection"}); |
194 | if(req.session.K!=pp.srpSharedSecret) return res.res({error:'Wrong shared secret!'}); | 194 | if(req.session.K!=pp.srpSharedSecret) return res.res({error:'Wrong shared secret!'}); |
195 | switch(message) { | 195 | switch(message) { |
196 | case 'getUserDetails': return ASYNC.parallel({ | 196 | case 'getUserDetails': return ASYNC.parallel({ |
197 | u: function(cb) { | 197 | u: function(cb) { |
198 | PG.Q("SELECT u_header,u_statistics,u_version FROM clipperz.theuser WHERE u_id=$1", | 198 | PG.Q("SELECT u_header::varchar,u_statistics,u_version FROM clipperz.theuser WHERE u_id=$1", |
199 | [req.session.u],function(e,r) { | 199 | [req.session.u],function(e,r) { |
200 | if(e) return cb(e); | 200 | if(e) return cb(e); |
201 | if(!r.rowCount) return cb(new Error("user's gone AWOL")); | 201 | if(!r.rowCount) return cb(new Error("user's gone AWOL")); |
202 | cb(null,r.rows[0]); | 202 | cb(null,r.rows[0]); |
203 | }); | 203 | }); |
204 | }, | 204 | }, |
205 | stats: function(cb) { | 205 | stats: function(cb) { |
206 | PG.Q("SELECT r_ref,r_mtime FROM clipperz.therecord WHERE u_id=$1", | 206 | PG.Q("SELECT r_ref,r_mtime FROM clipperz.therecord WHERE u_id=$1", |
207 | [req.session.u],function(e,r) { | 207 | [req.session.u],function(e,r) { |
208 | if(e) return cb(e); | 208 | if(e) return cb(e); |
209 | cb(null,r.rows.reduce(function(p,r){p[r.r_ref]={updateDate:r.r_mtime};return p},{})); | 209 | cb(null,r.rows.reduce(function(p,r){p[r.r_ref]={updateDate:r.r_mtime};return p},{})); |
210 | }); | 210 | }); |
211 | } | 211 | } |
212 | },function(e,r) { | 212 | },function(e,r) { |
213 | if(e) return cb(e); | 213 | if(e) return cb(e); |
214 | res.res({header:JSON.stringify(r.u.u_header),statistics:r.u.u_statistics,version:r.u.u_version,recordsStats:r.stats}); | 214 | res.res({header:r.u.u_header,statistics:r.u.u_statistics,version:r.u.u_version,recordsStats:r.stats}); |
215 | }); | 215 | }); |
216 | 216 | ||
217 | case 'saveChanges': return PG.T(function(e,T) { | 217 | case 'saveChanges': return PG.T(function(e,T) { |
218 | if(e) return cb(e); | 218 | if(e) return cb(e); |
219 | ASYNC.auto({ | 219 | ASYNC.auto({ |
220 | user: function(cb) { | 220 | user: function(cb) { |
221 | T.Q( | 221 | T.Q( |
222 | "UPDATE clipperz.theuser" | 222 | "UPDATE clipperz.theuser" |
223 | +" SET u_header=$1, u_statistics=$2, u_version=$3, u_lock=COALESCE($4,u_lock)" | 223 | +" SET u_header=$1, u_statistics=$2, u_version=$3, u_lock=COALESCE($4,u_lock)" |
224 | +" WHERE u_id=$5" | 224 | +" WHERE u_id=$5" |
225 | +" RETURNING u_lock",[ppp.user.header,ppp.user.statistics,ppp.user.version,ppp.user.lock||null,req.session.u], | 225 | +" RETURNING u_lock",[ppp.user.header,ppp.user.statistics,ppp.user.version,ppp.user.lock||null,req.session.u], |
226 | function(e,r) { | 226 | function(e,r) { |
@@ -462,31 +462,31 @@ var CLIPPERZ = module.exports = function(CONFIG) { | |||
462 | break; | 462 | break; |
463 | case 'logout': return req.session.destroy(function(e){res.res({})}); | 463 | case 'logout': return req.session.destroy(function(e){res.res({})}); |
464 | } | 464 | } |
465 | cb(); | 465 | cb(); |
466 | }, | 466 | }, |
467 | 467 | ||
468 | dump: function(req,res,cb) { | 468 | dump: function(req,res,cb) { |
469 | if(!req.session.u) return cb(new Error('logging in helps')); | 469 | if(!req.session.u) return cb(new Error('logging in helps')); |
470 | return ASYNC.parallel({ | 470 | return ASYNC.parallel({ |
471 | u: function(cb) { | 471 | u: function(cb) { |
472 | PG.Q( | 472 | PG.Q( |
473 | "SELECT" | 473 | "SELECT" |
474 | +" u_name, u_srp_s, u_srp_v, u_authversion, u_header, u_statistics, u_version" | 474 | +" u_name, u_srp_s, u_srp_v, u_authversion, u_header::varchar, u_statistics, u_version" |
475 | +" FROM clipperz.theuser WHERE u_id=$1",[req.session.u],function(e,r) { | 475 | +" FROM clipperz.theuser WHERE u_id=$1",[req.session.u],function(e,r) { |
476 | if(e) return cb(e); | 476 | if(e) return cb(e); |
477 | if(!r.rowCount) return cb(new Error("user's gone AWOL")); | 477 | if(!r.rowCount) return cb(new Error("user's gone AWOL")); |
478 | r = r.rows[0]; | 478 | r = r.rows[0]; |
479 | return cb(null,{u:r.u_name,d:{s:r.u_srp_s,v:r.u_srp_v, version:r.u_authversion, | 479 | return cb(null,{u:r.u_name,d:{s:r.u_srp_s,v:r.u_srp_v, version:r.u_authversion, |
480 | maxNumberOfRecords: '100', userDetails: JSON.stringify(r.u_header), | 480 | maxNumberOfRecords: '100', userDetails: r.u_header, |
481 | statistics: r.u_statistics, userDetailsVersion: r.u_version | 481 | statistics: r.u_statistics, userDetailsVersion: r.u_version |
482 | }}); | 482 | }}); |
483 | }); | 483 | }); |
484 | }, | 484 | }, |
485 | records: function(cb) { | 485 | records: function(cb) { |
486 | PG.Q( | 486 | PG.Q( |
487 | "SELECT" | 487 | "SELECT" |
488 | +" r.r_id, r.r_ref, r_data, r_version, r_ctime, r_mtime, r_atime," | 488 | +" r.r_id, r.r_ref, r_data, r_version, r_ctime, r_mtime, r_atime," |
489 | +" rv.rv_id, rv.rv_ref AS rv_ref, rv_header, rv_data, rv_version, rv_ctime, rv_mtime, rv_atime" | 489 | +" rv.rv_id, rv.rv_ref AS rv_ref, rv_header, rv_data, rv_version, rv_ctime, rv_mtime, rv_atime" |
490 | +" FROM" | 490 | +" FROM" |
491 | +" clipperz.therecord AS r" | 491 | +" clipperz.therecord AS r" |
492 | +" LEFT JOIN clipperz.therecordversion AS rv USING (r_id)" | 492 | +" LEFT JOIN clipperz.therecordversion AS rv USING (r_id)" |