UNPKG

identity

Version:

Identity client

65 lines (54 loc) 1.69 kB
exports.action = { name: 'user', description: 'returns a javascript file with user information', inputs: { required : [], optional : [] }, outputExample: {}, requireAuth:false, route: { 'get': 'user.js' }, run: function(api, connection, next){ var res = connection.rawConnection.res; var login_url = '/api/login'; var as_js = ((connection.type == 'web' && connection.rawConnection.req.url.match(/\.js$/))); var User = api.identity.store.Model('User'); if(as_js){ res.setHeader('content-type', 'text/javascript'); } User.setContext(connection).getMe().exec(function(user){ if(connection.user && !user) user = connection.user if(user) user = user.toJson(); connection.session.user = user; if(as_js){ if(user){ res.end('var USER = ' + JSON.stringify(user) + ';'); }else{ if(api.config.identity.requireAuth === false){ res.end('var USER = null;'); }else{ res.end('window.location.href="' + login_url + '";'); } } return next(connection, false); } connection.response = { user: user }; next(connection, true); }).catch(function(err){ if(as_js){ if(api.config.identity.requireAuth === false){ res.end('var USER = null;'); }else{ res.end('window.location.href="' + login_url + '";'); } return next(connection, true); } connection.response = { user: null, redirect: login_url }; next(connection, true); }); } };