6c1d2c260c277570321cade4df27f96b50dc1356
[motion2.git] / server / api / authGoogle / authGoogle.controller.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0x4bbb=['signToken','authenticate','google','/login','profile','email','use','clientID','clientSecret','secret','Setting','allowedLoginAttempts','blockDuration','User','map','emails','value','admin','user','Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.','blocked','blockedAt','add','clearBlockUser','then','getLicense','catch','passport-google-oauth20','Strategy','moment','../../mysqldb','../../components/auth/service'];(function(_0xe29b6d,_0x48731f){var _0x41cf6d=function(_0x230919){while(--_0x230919){_0xe29b6d['push'](_0xe29b6d['shift']());}};_0x41cf6d(++_0x48731f);}(_0x4bbb,0x11b));var _0xb4bb=function(_0x1cc49f,_0x292d58){_0x1cc49f=_0x1cc49f-0x0;var _0x44069c=_0x4bbb[_0x1cc49f];return _0x44069c;};'use strict';var _=require('lodash');var passport=require('passport');var GoogleStrategy=require(_0xb4bb('0x0'))[_0xb4bb('0x1')];var moment=require(_0xb4bb('0x2'));var db=require(_0xb4bb('0x3'))['db'];var config=require('../../config/environment');var signToken=require(_0xb4bb('0x4'))[_0xb4bb('0x5')];var utils=require('../../config/utils');exports['login']=passport[_0xb4bb('0x6')](_0xb4bb('0x7'),{'failureRedirect':_0xb4bb('0x8'),'scope':[_0xb4bb('0x9'),_0xb4bb('0xa')],'session':![]});exports['callback']=passport['authenticate']('google',{'failureRedirect':_0xb4bb('0x8'),'session':![]});passport[_0xb4bb('0xb')](new GoogleStrategy({'clientID':config[_0xb4bb('0x7')]?config['google'][_0xb4bb('0xc')]:'id','clientSecret':config[_0xb4bb('0x7')]?config[_0xb4bb('0x7')][_0xb4bb('0xd')]:_0xb4bb('0xe'),'callbackURL':config[_0xb4bb('0x7')]?config[_0xb4bb('0x7')]['callbackURL']:''},function(_0x53e981,_0x79369d,_0x4acec4,_0xf261fe){var _0x5dab79,_0x2926f6;return db[_0xb4bb('0xf')]['findOne']({'where':{'id':0x1},'attributes':[_0xb4bb('0x10'),_0xb4bb('0x11')],'raw':!![]})['then'](function(_0x2cabb6){_0x5dab79=_0x2cabb6;return db[_0xb4bb('0x12')]['find']({'where':{'email':_[_0xb4bb('0x13')](_0x4acec4[_0xb4bb('0x14')],_0xb4bb('0x15')),'role':{'$or':[_0xb4bb('0x16'),_0xb4bb('0x17'),'agent']}}});})['then'](function(_0x4903b2){_0x2926f6=_0x4903b2;if(_0x2926f6){if(_0x2926f6['disabled']){return _0xf261fe(_0xb4bb('0x18'));}else if(_0x5dab79['blockDuration']>0x0){if(_0x2926f6[_0xb4bb('0x19')]){if(moment(_0x2926f6[_0xb4bb('0x1a')])[_0xb4bb('0x1b')](_0x5dab79[_0xb4bb('0x11')],'minutes')>moment()){return _0xf261fe(_0xb4bb('0x18'));}else{return utils[_0xb4bb('0x1c')](_0x2926f6,0x0,![],null)[_0xb4bb('0x1d')](function(){return utils['getLicense'](_0x2926f6);})[_0xb4bb('0x1d')](function(){return _0xf261fe(null,_0x2926f6);});}}else{return utils['getLicense'](_0x2926f6)[_0xb4bb('0x1d')](function(){return _0xf261fe(null,_0x2926f6);});}}else{return utils[_0xb4bb('0x1e')](_0x2926f6)[_0xb4bb('0x1d')](function(){return _0xf261fe(null,_0x2926f6);});}}return _0xf261fe(_0xb4bb('0x18'));})[_0xb4bb('0x1f')](function(_0x479f7f){_0xf261fe(_0x479f7f);});}));