f39a4658b2a8e57bb4ae0c02a77cc322346e538d
[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 _0x4b9d=['callback','use','clientID','clientSecret','secret','callbackURL','Setting','findOne','map','emails','value','user','agent','then','Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.','blockedAt','add','blockDuration','minutes','getLicense','catch','lodash','passport','passport-google-oauth20','Strategy','moment','../../mysqldb','../../config/environment','../../components/auth/service','signToken','../../config/utils','authenticate','google','/login','profile','email'];(function(_0x2c91e9,_0x2fb965){var _0x13f0ff=function(_0xb39edf){while(--_0xb39edf){_0x2c91e9['push'](_0x2c91e9['shift']());}};_0x13f0ff(++_0x2fb965);}(_0x4b9d,0x111));var _0xd4b9=function(_0x2dc343,_0xf015a2){_0x2dc343=_0x2dc343-0x0;var _0x51eac5=_0x4b9d[_0x2dc343];return _0x51eac5;};'use strict';var _=require(_0xd4b9('0x0'));var passport=require(_0xd4b9('0x1'));var GoogleStrategy=require(_0xd4b9('0x2'))[_0xd4b9('0x3')];var moment=require(_0xd4b9('0x4'));var db=require(_0xd4b9('0x5'))['db'];var config=require(_0xd4b9('0x6'));var signToken=require(_0xd4b9('0x7'))[_0xd4b9('0x8')];var utils=require(_0xd4b9('0x9'));exports['login']=passport[_0xd4b9('0xa')](_0xd4b9('0xb'),{'failureRedirect':_0xd4b9('0xc'),'scope':[_0xd4b9('0xd'),_0xd4b9('0xe')],'session':![]});exports[_0xd4b9('0xf')]=passport['authenticate'](_0xd4b9('0xb'),{'failureRedirect':'/login','session':![]});passport[_0xd4b9('0x10')](new GoogleStrategy({'clientID':config[_0xd4b9('0xb')]?config[_0xd4b9('0xb')][_0xd4b9('0x11')]:'id','clientSecret':config[_0xd4b9('0xb')]?config['google'][_0xd4b9('0x12')]:_0xd4b9('0x13'),'callbackURL':config[_0xd4b9('0xb')]?config[_0xd4b9('0xb')][_0xd4b9('0x14')]:''},function(_0x38f1a0,_0x19c6db,_0x1f2902,_0x280c62){var _0x55df19,_0x3e43d0;return db[_0xd4b9('0x15')][_0xd4b9('0x16')]({'where':{'id':0x1},'attributes':['allowedLoginAttempts','blockDuration'],'raw':!![]})['then'](function(_0x18acc1){_0x55df19=_0x18acc1;return db['User']['find']({'where':{'email':_[_0xd4b9('0x17')](_0x1f2902[_0xd4b9('0x18')],_0xd4b9('0x19')),'role':{'$or':['admin',_0xd4b9('0x1a'),_0xd4b9('0x1b')]}}});})[_0xd4b9('0x1c')](function(_0x5c5ac2){_0x3e43d0=_0x5c5ac2;if(_0x3e43d0){if(_0x3e43d0['disabled']){return _0x280c62(_0xd4b9('0x1d'));}else if(_0x55df19['blockDuration']>0x0){if(_0x3e43d0['blocked']){if(moment(_0x3e43d0[_0xd4b9('0x1e')])[_0xd4b9('0x1f')](_0x55df19[_0xd4b9('0x20')],_0xd4b9('0x21'))>moment()){return _0x280c62(_0xd4b9('0x1d'));}else{return utils['clearBlockUser'](_0x3e43d0,0x0,![],null)[_0xd4b9('0x1c')](function(){return utils[_0xd4b9('0x22')](_0x3e43d0);})[_0xd4b9('0x1c')](function(){return _0x280c62(null,_0x3e43d0);});}}else{return utils[_0xd4b9('0x22')](_0x3e43d0)[_0xd4b9('0x1c')](function(){return _0x280c62(null,_0x3e43d0);});}}else{return utils[_0xd4b9('0x22')](_0x3e43d0)[_0xd4b9('0x1c')](function(){return _0x280c62(null,_0x3e43d0);});}}return _0x280c62(_0xd4b9('0x1d'));})[_0xd4b9('0x23')](function(_0x1831a7){_0x280c62(_0x1831a7);});}));