Built motion from commit 20b39a97.|2.6.29
[motion2.git] / server / api / authActiveDirectory / authActiveDirectory.controller.js
index d353e7f..b4bcae7 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0x2706=['../../config/utils','../../config/environment','../../config/logger','api','activedirectory','undefined','baseDN','url','domain','authenticate','error','Error\x20authenticate\x20%s:\x20%s','Error\x20authenticate\x20%s:\x20Wrong\x20credentials','Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.','findOne','adSsoEnabled','blockDuration','then','name','password','salt','role','disabled','blocked','blockedAt','online','admin','user','add','clearBlockUser','getLicense','catch','send','message','login','ad-login','Something\x20went\x20wrong,\x20please\x20try\x20again.','User','passport-local','Strategy','moment','activedirectory2','util','../../mysqldb','../../components/auth/service'];(function(_0x11bf0e,_0x5c4048){var _0x40860c=function(_0x1472f7){while(--_0x1472f7){_0x11bf0e['push'](_0x11bf0e['shift']());}};_0x40860c(++_0x5c4048);}(_0x2706,0x107));var _0x6270=function(_0x145db7,_0x133334){_0x145db7=_0x145db7-0x0;var _0x292e1d=_0x2706[_0x145db7];return _0x292e1d;};'use strict';var passport=require('passport');var LocalStrategy=require(_0x6270('0x0'))[_0x6270('0x1')];var moment=require(_0x6270('0x2'));var ActiveDirectory=require(_0x6270('0x3'));var BPromise=require('bluebird');var util=require(_0x6270('0x4'));var db=require(_0x6270('0x5'))['db'];var authService=require(_0x6270('0x6'));var utils=require(_0x6270('0x7'));var config=require(_0x6270('0x8'));var logger=require(_0x6270('0x9'))(_0x6270('0xa'));function isActiveDirectoryConfigured(_0x43e34d){var _0x4fac3f=![];if(typeof _0x43e34d[_0x6270('0xb')]!==_0x6270('0xc')){_0x4fac3f=_0x43e34d['activedirectory'][_0x6270('0xd')]&&_0x43e34d[_0x6270('0xb')][_0x6270('0xe')]&&_0x43e34d[_0x6270('0xb')][_0x6270('0xf')];}return _0x4fac3f;}function adAuthenticate(_0x2764de,_0x5d2e8e,_0x97ee0d){return new BPromise(function(_0x37ebc9,_0x15dc65){try{var _0x1ce751=new ActiveDirectory(_0x2764de);_0x1ce751[_0x6270('0x10')](_0x5d2e8e,_0x97ee0d,function(_0x52bd4c,_0x57a59f){if(_0x52bd4c){logger[_0x6270('0x11')](_0x6270('0x12'),_0x5d2e8e,util['inspect'](_0x52bd4c,{'showHidden':![],'depth':null}));_0x15dc65('Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.');}else if(!_0x57a59f){logger['error'](_0x6270('0x13'),_0x5d2e8e);_0x15dc65('Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.');}else{_0x37ebc9(_0x57a59f);}});}catch(_0x2190cf){_0x15dc65(_0x2190cf);}});}function ActiveDirectoryAuthenticate(_0x49a384,_0x5de8e7,_0x5515cc,_0x17d001){var _0x2a117f,_0xc1e9c7;if(!isActiveDirectoryConfigured(config)){logger['error']('Error\x20authenticate\x20%s:\x20Active\x20Directory\x20not\x20configured',_0x5de8e7);return _0x17d001(null,![],{'message':_0x6270('0x14')});}return db['Setting'][_0x6270('0x15')]({'where':{'id':0x1},'attributes':[_0x6270('0x16'),_0x6270('0x17')],'raw':!![]})[_0x6270('0x18')](function(_0x2c87c9){_0x2a117f=_0x2c87c9;if(!_0x2a117f['adSsoEnabled']){logger[_0x6270('0x11')]('Error\x20authenticate\x20%s:\x20Active\x20Directory\x20not\x20enabled',_0x5de8e7);throw new Error(_0x6270('0x14'));}return _0x49a384[_0x6270('0x15')]({'attributes':['id',_0x6270('0x19'),_0x6270('0x1a'),_0x6270('0x1b'),_0x6270('0x1c'),_0x6270('0x1d'),_0x6270('0x1e'),_0x6270('0x1f'),_0x6270('0x20')],'where':{'name':_0x5de8e7,'role':{'$or':[_0x6270('0x21'),_0x6270('0x22'),'agent']},'adSsoEnabled':!![]}});})[_0x6270('0x18')](function(_0xc5e5d7){if(!_0xc5e5d7||_0xc5e5d7&&_0xc5e5d7[_0x6270('0x19')]!==_0x5de8e7){throw new Error(_0x6270('0x14'));}_0xc1e9c7=_0xc5e5d7;var _0x3a0090=_0xc1e9c7[_0x6270('0x19')]+'@'+config[_0x6270('0xb')]['domain'];return adAuthenticate(config[_0x6270('0xb')],_0x3a0090,_0x5515cc);})[_0x6270('0x18')](function(_0xb21fc){if(_0xc1e9c7['disabled']){throw new Error(_0x6270('0x14'));}if(_0x2a117f[_0x6270('0x17')]>0x0){if(_0xc1e9c7[_0x6270('0x1e')]){if(moment(_0xc1e9c7[_0x6270('0x1f')])[_0x6270('0x23')](_0x2a117f[_0x6270('0x17')],'minutes')>moment()){throw new Error(_0x6270('0x14'));}return utils[_0x6270('0x24')](_0xc1e9c7,0x0,![],null)[_0x6270('0x18')](function(){return utils[_0x6270('0x25')](_0xc1e9c7);})[_0x6270('0x18')](function(){return _0x17d001(null,_0xc1e9c7);});}else{return utils['getLicense'](_0xc1e9c7)['then'](function(){return _0x17d001(null,_0xc1e9c7);});}}else{return utils[_0x6270('0x25')](_0xc1e9c7)['then'](function(){return _0x17d001(null,_0xc1e9c7);});}})[_0x6270('0x26')](function(_0x16e536){return _0x17d001(null,![],_0x16e536);});}function handleError(_0x5b027b,_0x4f4ee0,_0x157052){return _0x5b027b['status'](_0x4f4ee0||0x1f4)[_0x6270('0x27')]({'message':_0x157052?_0x157052[_0x6270('0x28')]||_0x157052:''});}exports[_0x6270('0x29')]=function(_0x24c63f,_0x2a0164,_0x51a8eb){passport[_0x6270('0x10')](_0x6270('0x2a'),function(_0x36f64a,_0xae58dc,_0x1b0f5f){var _0x351b0b=_0x36f64a||_0x1b0f5f;if(_0x351b0b){return handleError(_0x2a0164,0x191,_0x351b0b);}if(!_0xae58dc){return handleError(_0x2a0164,0x194,{'message':_0x6270('0x2b')});}else{var _0x76b030={'payload':{'id':_0xae58dc['id'],'role':_0xae58dc[_0x6270('0x1c')]},'options':{'expiresIn':0x15180}};return authService['signToken'](_0x76b030)[_0x6270('0x18')](function(_0x451ac3){_0x2a0164['json']({'id':_0xae58dc['id'],'token':_0x451ac3,'statusCall':'','isAlreadyLogged':_0xae58dc[_0x6270('0x20')]});});}})(_0x24c63f,_0x2a0164,_0x51a8eb);};passport['use'](_0x6270('0x2a'),new LocalStrategy({'usernameField':_0x6270('0x19'),'passwordField':_0x6270('0x1a')},function(_0x3796c3,_0x41f42a,_0x2c16aa){return ActiveDirectoryAuthenticate(db[_0x6270('0x2c')],_0x3796c3,_0x41f42a,_0x2c16aa);}));
\ No newline at end of file
+var _0xdacc=['blocked','online','admin','agent','minutes','getLicense','catch','send','message','ad-login','Something\x20went\x20wrong,\x20please\x20try\x20again.','use','User','passport','passport-local','moment','bluebird','util','../../mysqldb','../../config/environment','api','activedirectory','undefined','baseDN','url','authenticate','error','Error\x20authenticate\x20%s:\x20%s','inspect','Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.','Error\x20authenticate\x20%s:\x20Wrong\x20credentials','Setting','findOne','adSsoEnabled','blockDuration','then','Error\x20authenticate\x20%s:\x20Active\x20Directory\x20not\x20enabled','name','password','salt','disabled'];(function(_0x4848d,_0x2f98be){var _0x2d2462=function(_0x2e4d05){while(--_0x2e4d05){_0x4848d['push'](_0x4848d['shift']());}};_0x2d2462(++_0x2f98be);}(_0xdacc,0x1d0));var _0xcdac=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0xdacc[_0xa464c9];return _0x3d73c4;};'use strict';var passport=require(_0xcdac('0x0'));var LocalStrategy=require(_0xcdac('0x1'))['Strategy'];var moment=require(_0xcdac('0x2'));var ActiveDirectory=require('activedirectory2');var BPromise=require(_0xcdac('0x3'));var util=require(_0xcdac('0x4'));var db=require(_0xcdac('0x5'))['db'];var authService=require('../../components/auth/service');var utils=require('../../config/utils');var config=require(_0xcdac('0x6'));var logger=require('../../config/logger')(_0xcdac('0x7'));function isActiveDirectoryConfigured(_0xbafb23){var _0x253536=![];if(typeof _0xbafb23[_0xcdac('0x8')]!==_0xcdac('0x9')){_0x253536=_0xbafb23['activedirectory'][_0xcdac('0xa')]&&_0xbafb23[_0xcdac('0x8')][_0xcdac('0xb')]&&_0xbafb23[_0xcdac('0x8')]['domain'];}return _0x253536;}function adAuthenticate(_0x79c30a,_0x50ec79,_0x44a0af){return new BPromise(function(_0x5a2556,_0x2c761a){try{var _0x462acd=new ActiveDirectory(_0x79c30a);_0x462acd[_0xcdac('0xc')](_0x50ec79,_0x44a0af,function(_0x221435,_0x3b364c){if(_0x221435){logger[_0xcdac('0xd')](_0xcdac('0xe'),_0x50ec79,util[_0xcdac('0xf')](_0x221435,{'showHidden':![],'depth':null}));_0x2c761a(_0xcdac('0x10'));}else if(!_0x3b364c){logger[_0xcdac('0xd')](_0xcdac('0x11'),_0x50ec79);_0x2c761a(_0xcdac('0x10'));}else{_0x5a2556(_0x3b364c);}});}catch(_0x1b18f4){_0x2c761a(_0x1b18f4);}});}function ActiveDirectoryAuthenticate(_0x479128,_0x5a070f,_0x322e23,_0x4d78c2){var _0x138d77,_0x5e56e7;if(!isActiveDirectoryConfigured(config)){logger[_0xcdac('0xd')]('Error\x20authenticate\x20%s:\x20Active\x20Directory\x20not\x20configured',_0x5a070f);return _0x4d78c2(null,![],{'message':_0xcdac('0x10')});}return db[_0xcdac('0x12')][_0xcdac('0x13')]({'where':{'id':0x1},'attributes':[_0xcdac('0x14'),_0xcdac('0x15')],'raw':!![]})[_0xcdac('0x16')](function(_0xd2c7a8){_0x138d77=_0xd2c7a8;if(!_0x138d77[_0xcdac('0x14')]){logger[_0xcdac('0xd')](_0xcdac('0x17'),_0x5a070f);throw new Error(_0xcdac('0x10'));}return _0x479128[_0xcdac('0x13')]({'attributes':['id',_0xcdac('0x18'),_0xcdac('0x19'),_0xcdac('0x1a'),'role',_0xcdac('0x1b'),_0xcdac('0x1c'),'blockedAt',_0xcdac('0x1d')],'where':{'name':_0x5a070f,'role':{'$or':[_0xcdac('0x1e'),'user',_0xcdac('0x1f')]},'adSsoEnabled':!![]}});})['then'](function(_0x3504a7){if(!_0x3504a7||_0x3504a7&&_0x3504a7['name']!==_0x5a070f){throw new Error('Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.');}_0x5e56e7=_0x3504a7;var _0x3dee9a=_0x5e56e7['name']+'@'+config[_0xcdac('0x8')]['domain'];return adAuthenticate(config[_0xcdac('0x8')],_0x3dee9a,_0x322e23);})['then'](function(_0x26ec94){if(_0x5e56e7[_0xcdac('0x1b')]){throw new Error(_0xcdac('0x10'));}if(_0x138d77['blockDuration']>0x0){if(_0x5e56e7[_0xcdac('0x1c')]){if(moment(_0x5e56e7['blockedAt'])['add'](_0x138d77[_0xcdac('0x15')],_0xcdac('0x20'))>moment()){throw new Error(_0xcdac('0x10'));}return utils['clearBlockUser'](_0x5e56e7,0x0,![],null)[_0xcdac('0x16')](function(){return utils[_0xcdac('0x21')](_0x5e56e7);})['then'](function(){return _0x4d78c2(null,_0x5e56e7);});}else{return utils[_0xcdac('0x21')](_0x5e56e7)[_0xcdac('0x16')](function(){return _0x4d78c2(null,_0x5e56e7);});}}else{return utils['getLicense'](_0x5e56e7)['then'](function(){return _0x4d78c2(null,_0x5e56e7);});}})[_0xcdac('0x22')](function(_0x3b7d9b){return _0x4d78c2(null,![],_0x3b7d9b);});}function handleError(_0x1dbcc9,_0xe6997,_0x1b8542){return _0x1dbcc9['status'](_0xe6997||0x1f4)[_0xcdac('0x23')]({'message':_0x1b8542?_0x1b8542[_0xcdac('0x24')]||_0x1b8542:''});}exports['login']=function(_0x504b54,_0x52aecf,_0x3449f2){passport[_0xcdac('0xc')](_0xcdac('0x25'),function(_0x1f5da6,_0x1c060b,_0x19c3ff){var _0x4cddab=_0x1f5da6||_0x19c3ff;if(_0x4cddab){return handleError(_0x52aecf,0x191,_0x4cddab);}if(!_0x1c060b){return handleError(_0x52aecf,0x194,{'message':_0xcdac('0x26')});}else{var _0x173e19={'payload':{'id':_0x1c060b['id'],'role':_0x1c060b['role']},'options':{'expiresIn':0x15180}};return authService['signToken'](_0x173e19)[_0xcdac('0x16')](function(_0x579fb7){_0x52aecf['json']({'id':_0x1c060b['id'],'token':_0x579fb7,'statusCall':'','isAlreadyLogged':_0x1c060b[_0xcdac('0x1d')]});});}})(_0x504b54,_0x52aecf,_0x3449f2);};passport[_0xcdac('0x27')](_0xcdac('0x25'),new LocalStrategy({'usernameField':'name','passwordField':_0xcdac('0x19')},function(_0x3ccb74,_0xc009b1,_0x8d765a){return ActiveDirectoryAuthenticate(db[_0xcdac('0x28')],_0x3ccb74,_0xc009b1,_0x8d765a);}));
\ No newline at end of file