5329cd33f84c9d14cc9dc22c00b6dc4a20fb4e0c
[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 _0x30f8=['blocked','add','minutes','Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.','clearBlockUser','getLicense','catch','lodash','passport-google-oauth20','../../config/environment','../../config/utils','login','authenticate','google','/login','email','callback','use','clientID','clientSecret','secret','Setting','findOne','allowedLoginAttempts','blockDuration','then','User','map','emails','agent','disabled'];(function(_0x7f50ea,_0x2a31c2){var _0x56faf1=function(_0x3b5e0b){while(--_0x3b5e0b){_0x7f50ea['push'](_0x7f50ea['shift']());}};_0x56faf1(++_0x2a31c2);}(_0x30f8,0xff));var _0x830f=function(_0x529a76,_0x5b3508){_0x529a76=_0x529a76-0x0;var _0x17570b=_0x30f8[_0x529a76];return _0x17570b;};'use strict';var _=require(_0x830f('0x0'));var passport=require('passport');var GoogleStrategy=require(_0x830f('0x1'))['Strategy'];var moment=require('moment');var db=require('../../mysqldb')['db'];var config=require(_0x830f('0x2'));var signToken=require('../../components/auth/service')['signToken'];var utils=require(_0x830f('0x3'));exports[_0x830f('0x4')]=passport[_0x830f('0x5')](_0x830f('0x6'),{'failureRedirect':_0x830f('0x7'),'scope':['profile',_0x830f('0x8')],'session':![]});exports[_0x830f('0x9')]=passport[_0x830f('0x5')](_0x830f('0x6'),{'failureRedirect':'/login','session':![]});passport[_0x830f('0xa')](new GoogleStrategy({'clientID':config['google']?config[_0x830f('0x6')][_0x830f('0xb')]:'id','clientSecret':config['google']?config[_0x830f('0x6')][_0x830f('0xc')]:_0x830f('0xd'),'callbackURL':config[_0x830f('0x6')]?config['google']['callbackURL']:''},function(_0xd4f292,_0x169c63,_0x3e3e92,_0x1061c9){var _0xb99c60,_0x2f7228;return db[_0x830f('0xe')][_0x830f('0xf')]({'where':{'id':0x1},'attributes':[_0x830f('0x10'),_0x830f('0x11')],'raw':!![]})[_0x830f('0x12')](function(_0xd1a24){_0xb99c60=_0xd1a24;return db[_0x830f('0x13')]['find']({'where':{'email':_[_0x830f('0x14')](_0x3e3e92[_0x830f('0x15')],'value'),'role':{'$or':['admin','user',_0x830f('0x16')]}}});})[_0x830f('0x12')](function(_0x1c62cf){_0x2f7228=_0x1c62cf;if(_0x2f7228){if(_0x2f7228[_0x830f('0x17')]){return _0x1061c9('Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.');}else if(_0xb99c60[_0x830f('0x11')]>0x0){if(_0x2f7228[_0x830f('0x18')]){if(moment(_0x2f7228['blockedAt'])[_0x830f('0x19')](_0xb99c60[_0x830f('0x11')],_0x830f('0x1a'))>moment()){return _0x1061c9(_0x830f('0x1b'));}else{return utils[_0x830f('0x1c')](_0x2f7228,0x0,![],null)['then'](function(){return utils[_0x830f('0x1d')](_0x2f7228);})['then'](function(){return _0x1061c9(null,_0x2f7228);});}}else{return utils[_0x830f('0x1d')](_0x2f7228)[_0x830f('0x12')](function(){return _0x1061c9(null,_0x2f7228);});}}else{return utils[_0x830f('0x1d')](_0x2f7228)['then'](function(){return _0x1061c9(null,_0x2f7228);});}}return _0x1061c9('Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.');})[_0x830f('0x1e')](function(_0xfb9caa){_0x1061c9(_0xfb9caa);});}));