eff042a1be5688e05a1814a86aea53ac31cac261
[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 _0x894b=['user','agent','then','disabled','Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.','blocked','add','clearBlockUser','getLicense','catch','lodash','passport','Strategy','../../mysqldb','../../config/environment','../../components/auth/service','signToken','../../config/utils','google','/login','profile','email','callback','authenticate','use','clientID','clientSecret','secret','Setting','allowedLoginAttempts','blockDuration','User','find','emails','value','admin'];(function(_0x16bffd,_0x5eacea){var _0x21d867=function(_0x4632a0){while(--_0x4632a0){_0x16bffd['push'](_0x16bffd['shift']());}};_0x21d867(++_0x5eacea);}(_0x894b,0x1de));var _0xb894=function(_0x4b8968,_0x5c9b44){_0x4b8968=_0x4b8968-0x0;var _0x3a0ab7=_0x894b[_0x4b8968];return _0x3a0ab7;};'use strict';var _=require(_0xb894('0x0'));var passport=require(_0xb894('0x1'));var GoogleStrategy=require('passport-google-oauth20')[_0xb894('0x2')];var moment=require('moment');var db=require(_0xb894('0x3'))['db'];var config=require(_0xb894('0x4'));var signToken=require(_0xb894('0x5'))[_0xb894('0x6')];var utils=require(_0xb894('0x7'));exports['login']=passport['authenticate'](_0xb894('0x8'),{'failureRedirect':_0xb894('0x9'),'scope':[_0xb894('0xa'),_0xb894('0xb')],'session':![]});exports[_0xb894('0xc')]=passport[_0xb894('0xd')](_0xb894('0x8'),{'failureRedirect':_0xb894('0x9'),'session':![]});passport[_0xb894('0xe')](new GoogleStrategy({'clientID':config[_0xb894('0x8')]?config[_0xb894('0x8')][_0xb894('0xf')]:'id','clientSecret':config[_0xb894('0x8')]?config[_0xb894('0x8')][_0xb894('0x10')]:_0xb894('0x11'),'callbackURL':config['google']?config['google']['callbackURL']:''},function(_0x41603c,_0x57d561,_0x4d9333,_0x2491cd){var _0x5c8cad,_0x288895;return db[_0xb894('0x12')]['findOne']({'where':{'id':0x1},'attributes':[_0xb894('0x13'),_0xb894('0x14')],'raw':!![]})['then'](function(_0x44f6ad){_0x5c8cad=_0x44f6ad;return db[_0xb894('0x15')][_0xb894('0x16')]({'where':{'email':_['map'](_0x4d9333[_0xb894('0x17')],_0xb894('0x18')),'role':{'$or':[_0xb894('0x19'),_0xb894('0x1a'),_0xb894('0x1b')]}}});})[_0xb894('0x1c')](function(_0x18bbb4){_0x288895=_0x18bbb4;if(_0x288895){if(_0x288895[_0xb894('0x1d')]){return _0x2491cd(_0xb894('0x1e'));}else if(_0x5c8cad['blockDuration']>0x0){if(_0x288895[_0xb894('0x1f')]){if(moment(_0x288895['blockedAt'])[_0xb894('0x20')](_0x5c8cad[_0xb894('0x14')],'minutes')>moment()){return _0x2491cd(_0xb894('0x1e'));}else{return utils[_0xb894('0x21')](_0x288895,0x0,![],null)[_0xb894('0x1c')](function(){return utils['getLicense'](_0x288895);})[_0xb894('0x1c')](function(){return _0x2491cd(null,_0x288895);});}}else{return utils['getLicense'](_0x288895)[_0xb894('0x1c')](function(){return _0x2491cd(null,_0x288895);});}}else{return utils[_0xb894('0x22')](_0x288895)[_0xb894('0x1c')](function(){return _0x2491cd(null,_0x288895);});}}return _0x2491cd('Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.');})[_0xb894('0x23')](function(_0x366932){_0x2491cd(_0x366932);});}));