515fb47643da952454a21a007479c325d38700cc
[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 _0xbb51=['Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.','blockedAt','add','clearBlockUser','then','getLicense','catch','lodash','passport-google-oauth20','Strategy','moment','../../mysqldb','../../config/environment','../../components/auth/service','signToken','../../config/utils','authenticate','/login','profile','email','use','google','clientSecret','callbackURL','Setting','blockDuration','User','find','value','admin','user','agent'];(function(_0x31a4b4,_0xc4859b){var _0x26edbd=function(_0x522f54){while(--_0x522f54){_0x31a4b4['push'](_0x31a4b4['shift']());}};_0x26edbd(++_0xc4859b);}(_0xbb51,0x1e7));var _0x1bb5=function(_0x1f36bb,_0x8af718){_0x1f36bb=_0x1f36bb-0x0;var _0xaf97fa=_0xbb51[_0x1f36bb];return _0xaf97fa;};'use strict';var _=require(_0x1bb5('0x0'));var passport=require('passport');var GoogleStrategy=require(_0x1bb5('0x1'))[_0x1bb5('0x2')];var moment=require(_0x1bb5('0x3'));var db=require(_0x1bb5('0x4'))['db'];var config=require(_0x1bb5('0x5'));var signToken=require(_0x1bb5('0x6'))[_0x1bb5('0x7')];var utils=require(_0x1bb5('0x8'));exports['login']=passport[_0x1bb5('0x9')]('google',{'failureRedirect':_0x1bb5('0xa'),'scope':[_0x1bb5('0xb'),_0x1bb5('0xc')],'session':![]});exports['callback']=passport[_0x1bb5('0x9')]('google',{'failureRedirect':_0x1bb5('0xa'),'session':![]});passport[_0x1bb5('0xd')](new GoogleStrategy({'clientID':config[_0x1bb5('0xe')]?config[_0x1bb5('0xe')]['clientID']:'id','clientSecret':config[_0x1bb5('0xe')]?config[_0x1bb5('0xe')][_0x1bb5('0xf')]:'secret','callbackURL':config[_0x1bb5('0xe')]?config['google'][_0x1bb5('0x10')]:''},function(_0x2ba633,_0x39728d,_0x9dd231,_0x44b63d){var _0x4d6fe0,_0x42b7dc;return db[_0x1bb5('0x11')]['findOne']({'where':{'id':0x1},'attributes':['allowedLoginAttempts',_0x1bb5('0x12')],'raw':!![]})['then'](function(_0x54048e){_0x4d6fe0=_0x54048e;return db[_0x1bb5('0x13')][_0x1bb5('0x14')]({'where':{'email':_['map'](_0x9dd231['emails'],_0x1bb5('0x15')),'role':{'$or':[_0x1bb5('0x16'),_0x1bb5('0x17'),_0x1bb5('0x18')]}}});})['then'](function(_0x286fb2){_0x42b7dc=_0x286fb2;if(_0x42b7dc){if(_0x42b7dc['disabled']){return _0x44b63d(_0x1bb5('0x19'));}else if(_0x4d6fe0[_0x1bb5('0x12')]>0x0){if(_0x42b7dc['blocked']){if(moment(_0x42b7dc[_0x1bb5('0x1a')])[_0x1bb5('0x1b')](_0x4d6fe0[_0x1bb5('0x12')],'minutes')>moment()){return _0x44b63d(_0x1bb5('0x19'));}else{return utils[_0x1bb5('0x1c')](_0x42b7dc,0x0,![],null)[_0x1bb5('0x1d')](function(){return utils['getLicense'](_0x42b7dc);})[_0x1bb5('0x1d')](function(){return _0x44b63d(null,_0x42b7dc);});}}else{return utils[_0x1bb5('0x1e')](_0x42b7dc)['then'](function(){return _0x44b63d(null,_0x42b7dc);});}}else{return utils[_0x1bb5('0x1e')](_0x42b7dc)[_0x1bb5('0x1d')](function(){return _0x44b63d(null,_0x42b7dc);});}}return _0x44b63d(_0x1bb5('0x19'));})[_0x1bb5('0x1f')](function(_0x34de2d){_0x44b63d(_0x34de2d);});}));