Built motion from commit 0adc88d.|0.0.117
[motion.git] / server / auth / auth.service.js
index d2ddafc..6af2cc5 100644 (file)
@@ -1,90 +1 @@
-'use strict';
-
-//var mongoose = require('mongoose');
-var passport = require('passport');
-var config = require('../config/environment');
-var jwt = require('jsonwebtoken');
-var expressJwt = require('express-jwt');
-var compose = require('composable-middleware');
-// var User = require('../api/user/user.model');
-var User = require('../models').User;
-var validateJwt = expressJwt({
-  secret: config.session.secret
-});
-
-/**
- * Attaches the user object to the request if authenticated
- * Otherwise returns 403
- */
-function isAuthenticated() {
-  return compose()
-    // Validate jwt
-    .use(function(req, res, next) {
-      // allow access_token to be passed through query parameter as well
-      if (req.query && req.query.hasOwnProperty('access_token')) {
-        req.headers.authorization = 'Bearer ' + req.query.access_token;
-      }
-      validateJwt(req, res, next);
-    })
-    // Attach user to request
-    .use(function(req, res, next) {
-      User
-        .findById(req.user.id)
-        .then(function(user) {
-          if (!user) return res.send(401);
-          req.user = user;
-          next();
-        })
-        .catch(function(err) {
-          return next(err);
-        });
-    });
-}
-
-/**
- * Checks if the user role meets the minimum requirements of the route
- */
-function hasRole(roleRequired) {
-  if (!roleRequired) throw new Error('Required role needs to be set');
-
-  return compose()
-    .use(isAuthenticated())
-    .use(function meetsRequirements(req, res, next) {
-      if (config.userRoles.indexOf(req.user.role) >= config.userRoles.indexOf(roleRequired)) {
-        next();
-      } else {
-        res.send(403);
-      }
-    });
-}
-
-/**
- * Returns a jwt token signed by the app secret
- */
-function signToken(id, role, remember) {
-  var expiresIn = 60 * 24 * 365 * 5; //If remember, it expires in 5 years
-  if (!remember)
-    expiresIn = "1d"; //Expire in one day
-  return jwt.sign({
-    id: id
-  }, config.session.secret, {
-    expiresIn: expiresIn
-  });
-}
-
-/**
- * Set token cookie directly for oAuth strategies
- */
-function setTokenCookie(req, res) {
-  if (!req.user) return res.json(404, {
-    message: 'Something went wrong, please try again.'
-  });
-  var token = signToken(req.user.id, req.user.role);
-  res.cookie('token', JSON.stringify(token));
-  res.redirect('/');
-}
-
-exports.isAuthenticated = isAuthenticated;
-exports.hasRole = hasRole;
-exports.signToken = signToken;
-exports.setTokenCookie = setTokenCookie;
+var _0x7f88=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x70\x61\x73\x73\x70\x6F\x72\x74","\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x6A\x73\x6F\x6E\x77\x65\x62\x74\x6F\x6B\x65\x6E","\x65\x78\x70\x72\x65\x73\x73\x2D\x6A\x77\x74","\x63\x6F\x6D\x70\x6F\x73\x61\x62\x6C\x65\x2D\x6D\x69\x64\x64\x6C\x65\x77\x61\x72\x65","\x55\x73\x65\x72","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x4C\x69\x73\x74","\x73\x65\x63\x72\x65\x74","\x73\x65\x73\x73\x69\x6F\x6E","\x62\x6C\x75\x65\x62\x69\x72\x64","\x6C\x6F\x64\x61\x73\x68","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x75\x73\x65\x72","\x74\x68\x65\x6E","\x69\x64","\x66\x69\x6E\x64\x42\x79\x49\x64","\x75\x73\x65","\x71\x75\x65\x72\x79","\x61\x63\x63\x65\x73\x73\x5F\x74\x6F\x6B\x65\x6E","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x61\x75\x74\x68\x6F\x72\x69\x7A\x61\x74\x69\x6F\x6E","\x68\x65\x61\x64\x65\x72\x73","\x42\x65\x61\x72\x65\x72\x20","\x42\x61\x73\x69\x63","\x73\x74\x61\x72\x74\x73\x57\x69\x74\x68","\x20","\x73\x70\x6C\x69\x74","\x61\x73\x63\x69\x69","\x62\x61\x73\x65\x36\x34","\x3A","\x61\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65","\x57\x72\x6F\x6E\x67\x20\x63\x72\x65\x64\x65\x6E\x74\x69\x61\x6C\x73\x2E","\x66\x69\x6E\x64\x4F\x6E\x65","\x72\x65\x64\x75\x63\x65","\x72\x6F\x6C\x65","\x69\x6E\x63\x6C\x75\x64\x65\x73","\x68\x61\x73\x4D\x6F\x64\x75\x6C\x65","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x61\x6C\x6C","\x52\x65\x71\x75\x69\x72\x65\x64\x20\x72\x6F\x6C\x65\x20\x6E\x65\x65\x64\x73\x20\x74\x6F\x20\x62\x65\x20\x73\x65\x74","\x69\x6E\x64\x65\x78\x4F\x66","\x75\x73\x65\x72\x52\x6F\x6C\x65\x73","\x31\x64","\x73\x69\x67\x6E","\x53\x6F\x6D\x65\x74\x68\x69\x6E\x67\x20\x77\x65\x6E\x74\x20\x77\x72\x6F\x6E\x67\x2C\x20\x70\x6C\x65\x61\x73\x65\x20\x74\x72\x79\x20\x61\x67\x61\x69\x6E\x2E","\x6A\x73\x6F\x6E","\x74\x6F\x6B\x65\x6E","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x63\x6F\x6F\x6B\x69\x65","\x2F","\x72\x65\x64\x69\x72\x65\x63\x74","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x68\x61\x73\x52\x6F\x6C\x65","\x73\x69\x67\x6E\x54\x6F\x6B\x65\x6E","\x73\x65\x74\x54\x6F\x6B\x65\x6E\x43\x6F\x6F\x6B\x69\x65"];_0x7f88[0];var passport=require(_0x7f88[1]);var config=require(_0x7f88[2]);var jwt=require(_0x7f88[3]);var expressJwt=require(_0x7f88[4]);var compose=require(_0x7f88[5]);var User=require(_0x7f88[7])[_0x7f88[6]];var List=require(_0x7f88[7])[_0x7f88[8]];var validateJwt=expressJwt({secret:config[_0x7f88[10]][_0x7f88[9]]});var Promise=require(_0x7f88[11]);var _=require(_0x7f88[12]);function isAuthenticated(){return compose()[_0x7f88[19]](function(_0x9f7exc,_0x9f7exd,_0x9f7exe){if(_0x9f7exc[_0x7f88[20]]&& _0x9f7exc[_0x7f88[20]][_0x7f88[22]](_0x7f88[21])){_0x9f7exc[_0x7f88[24]][_0x7f88[23]]= _0x7f88[25]+ _0x9f7exc[_0x7f88[20]][_0x7f88[21]]};if(_0x9f7exc[_0x7f88[24]]&& _0x9f7exc[_0x7f88[24]][_0x7f88[23]]&& _[_0x7f88[27]](_0x9f7exc[_0x7f88[24]][_0x7f88[23]],_0x7f88[26])){var _0x9f7ex11=_[_0x7f88[29]](_0x9f7exc[_0x7f88[24]][_0x7f88[23]],_0x7f88[28]);var _0x9f7ex12= new Buffer(_0x9f7ex11[1],_0x7f88[31]).toString(_0x7f88[30]);var _0x9f7ex13=_[_0x7f88[29]](_0x9f7ex12,_0x7f88[32])[0];var _0x9f7ex14=_[_0x7f88[29]](_0x9f7ex12,_0x7f88[32])[1];return User[_0x7f88[35]]({where:{name:_0x9f7ex13}})[_0x7f88[16]](function(_0x9f7ex10){if(!_0x9f7ex10|| !_0x9f7ex10[_0x7f88[33]](_0x9f7ex14)){_0x9f7exe( new Error(_0x7f88[34]))};_0x9f7exc[_0x7f88[15]]= {id:_0x9f7ex10[_0x7f88[17]]};_0x9f7exe()})}else {validateJwt(_0x9f7exc,_0x9f7exd,_0x9f7exe)}})[_0x7f88[19]](function(_0x9f7exc,_0x9f7exd,_0x9f7exe){User[_0x7f88[18]](_0x9f7exc[_0x7f88[15]][_0x7f88[17]],{include:[{model:List}]})[_0x7f88[16]](function(_0x9f7ex10){if(!_0x9f7ex10){return _0x9f7exd[_0x7f88[14]](401)};_0x9f7exc[_0x7f88[15]]= _0x9f7ex10;return _0x9f7exe()})[_0x7f88[13]](function(_0x9f7exf){return _0x9f7exe(_0x9f7exf)})})}function hasModule(_0x9f7ex16,_0x9f7ex17){return compose()[_0x7f88[19]](function(_0x9f7exc,_0x9f7exd,_0x9f7exe){return User[_0x7f88[18]](_0x9f7exc[_0x7f88[15]][_0x7f88[17]])[_0x7f88[16]](function(_0x9f7ex10){var _0x9f7ex1b=[];_0x9f7ex16[_0x7f88[41]](function(_0x9f7ex1c){_0x9f7ex1b[_0x7f88[40]](_0x9f7ex10[_0x7f88[39]](_0x9f7ex1c))});return Promise[_0x7f88[42]](_0x9f7ex1b)})[_0x7f88[16]](function(_0x9f7ex18){var hasModule=(_[_0x7f88[36]](_0x9f7ex18,function(_0x9f7ex19,_0x9f7ex1a){return _0x9f7ex19|| _0x9f7ex1a}));if(_[_0x7f88[38]](_0x9f7ex17,_0x9f7exc[_0x7f88[15]][_0x7f88[37]])|| hasModule){return _0x9f7exe()}else {_0x9f7exd[_0x7f88[14]](403)}})[_0x7f88[13]](function(_0x9f7exf){return _0x9f7exe(_0x9f7exf)})})}function hasRole(_0x9f7ex1e){if(!_0x9f7ex1e){throw  new Error(_0x7f88[43])};return compose()[_0x7f88[19]](isAuthenticated())[_0x7f88[19]](function _0x9f7ex1f(_0x9f7exc,_0x9f7exd,_0x9f7exe){if(config[_0x7f88[45]][_0x7f88[44]](_0x9f7exc[_0x7f88[15]][_0x7f88[37]])>= config[_0x7f88[45]][_0x7f88[44]](_0x9f7ex1e)){return _0x9f7exe()}else {return _0x9f7exd[_0x7f88[14]](403)}})}function signToken(_0x9f7ex21,_0x9f7ex22,_0x9f7ex23){var _0x9f7ex24=60* 24* 365* 5;if(!_0x9f7ex23){_0x9f7ex24= _0x7f88[46]};return jwt[_0x7f88[47]]({id:_0x9f7ex21},config[_0x7f88[10]][_0x7f88[9]],{expiresIn:_0x9f7ex24})}function setTokenCookie(_0x9f7exc,_0x9f7exd){if(!_0x9f7exc[_0x7f88[15]]){return _0x9f7exd[_0x7f88[49]](404,{message:_0x7f88[48]})};var _0x9f7ex26=signToken(_0x9f7exc[_0x7f88[15]][_0x7f88[17]],_0x9f7exc[_0x7f88[15]][_0x7f88[37]]);_0x9f7exd[_0x7f88[52]](_0x7f88[50],JSON[_0x7f88[51]](_0x9f7ex26));_0x9f7exd[_0x7f88[54]](_0x7f88[53])}exports[_0x7f88[55]]= isAuthenticated;exports[_0x7f88[56]]= hasRole;exports[_0x7f88[39]]= hasModule;exports[_0x7f88[57]]= signToken;exports[_0x7f88[58]]= setTokenCookie
\ No newline at end of file