From a8c4afc40c89169c1cef04de18e3260e6e82a59e Mon Sep 17 00:00:00 2001 From: Edmund von der Burg Date: Thu, 12 Apr 2012 14:32:07 +0100 Subject: [PATCH] Allow findUserById to get access to the request if needed --- README.md | 11 +++++++++++ index.js | 12 ++++++++++-- lib/modules/everymodule.js | 2 +- 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 8190d136..f5ec152b 100644 --- a/README.md +++ b/README.md @@ -158,6 +158,17 @@ everyauth.everymodule.findUserById( function (userId, callback) { }); ``` +If you need access to the request object the function can have three arguments: + +```javascript +everyauth.everymodule.findUserById( function (req, userId, callback) { + + // use the request in some way ... + + // callback has the signature, function (err, user) {...} +}); +``` + Once you have configured this method, you now have access to the user object that was fetched anywhere in your server app code as `req.user`. For instance: diff --git a/index.js b/index.js index 07784fc7..071a2567 100644 --- a/index.js +++ b/index.js @@ -80,7 +80,8 @@ everyauth.middleware = function () { if (!auth || !auth.userId) return next(); var everymodule = everyauth.everymodule; var pause = __pause(req); - everymodule.findUserById()(auth.userId, function (err, user) { + + var findUserById_callback = function (err, user) { if (err) { pause.resume(); return next(err); @@ -89,7 +90,14 @@ everyauth.middleware = function () { else delete sess.auth; next(); pause.resume(); - }); + }; + + var findUserById_function = everymodule.findUserById(); + + findUserById_function.length === 3 + ? findUserById_function( req, auth.userId, findUserById_callback ) + : findUserById_function( auth.userId, findUserById_callback ); + } , connect.router(function (app) { var modules = everyauth.enabled diff --git a/lib/modules/everymodule.js b/lib/modules/everymodule.js index c9615e52..81950e8e 100644 --- a/lib/modules/everymodule.js +++ b/lib/modules/everymodule.js @@ -319,7 +319,7 @@ everyModule , moduleErrback: 'THE error callback that is invoked any time an error occurs in the module; ' + 'defaults to `throw` wrapper' , logoutRedirectPath: 'Where to redirect the app upon logging out' - , findUserById: 'function for fetching a user by his/her id -- used to assign to `req.user` - function (userId, callback) where function callback (err, user)' + , findUserById: 'function for fetching a user by his/her id -- used to assign to `req.user` - function ( [req], userId, callback) where function callback (err, user)' , performRedirect: 'function for redirecting responses' , userPkey: 'identifying property of the user; defaults to "id"' })