Built motion from commit 1efd3d96.|2.6.31
[motion2.git] / server / api / authActiveDirectory / authActiveDirectory.controller.js
index ff46bdb..c832941 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0x5f5d=['clearBlockUser','getLicense','catch','status','send','login','authenticate','Something\x20went\x20wrong,\x20please\x20try\x20again.','signToken','json','use','password','User','passport-local','Strategy','moment','bluebird','../../mysqldb','../../components/auth/service','../../config/utils','../../config/environment','../../config/logger','api','activedirectory','baseDN','url','domain','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','Error\x20authenticate\x20%s:\x20Active\x20Directory\x20not\x20configured','findOne','blockDuration','then','adSsoEnabled','Error\x20authenticate\x20%s:\x20Active\x20Directory\x20not\x20enabled','name','salt','role','disabled','blocked','blockedAt','online','user','agent','add'];(function(_0x4c2e41,_0x5408d7){var _0x57fcc9=function(_0x4d7492){while(--_0x4d7492){_0x4c2e41['push'](_0x4c2e41['shift']());}};_0x57fcc9(++_0x5408d7);}(_0x5f5d,0x15d));var _0xd5f5=function(_0x27b1ba,_0x452e63){_0x27b1ba=_0x27b1ba-0x0;var _0x72679e=_0x5f5d[_0x27b1ba];return _0x72679e;};'use strict';var passport=require('passport');var LocalStrategy=require(_0xd5f5('0x0'))[_0xd5f5('0x1')];var moment=require(_0xd5f5('0x2'));var ActiveDirectory=require('activedirectory2');var BPromise=require(_0xd5f5('0x3'));var util=require('util');var db=require(_0xd5f5('0x4'))['db'];var authService=require(_0xd5f5('0x5'));var utils=require(_0xd5f5('0x6'));var config=require(_0xd5f5('0x7'));var logger=require(_0xd5f5('0x8'))(_0xd5f5('0x9'));function isActiveDirectoryConfigured(_0x2a8647){var _0xe3f28a=![];if(typeof _0x2a8647[_0xd5f5('0xa')]!=='undefined'){_0xe3f28a=_0x2a8647[_0xd5f5('0xa')][_0xd5f5('0xb')]&&_0x2a8647[_0xd5f5('0xa')][_0xd5f5('0xc')]&&_0x2a8647[_0xd5f5('0xa')][_0xd5f5('0xd')];}return _0xe3f28a;}function adAuthenticate(_0x417340,_0x1a078d,_0x175b56){return new BPromise(function(_0x34598f,_0x2faf52){try{var _0x1be92b=new ActiveDirectory(_0x417340);_0x1be92b['authenticate'](_0x1a078d,_0x175b56,function(_0x41cef6,_0x4141c3){if(_0x41cef6){logger[_0xd5f5('0xe')](_0xd5f5('0xf'),_0x1a078d,util[_0xd5f5('0x10')](_0x41cef6,{'showHidden':![],'depth':null}));_0x2faf52(_0xd5f5('0x11'));}else if(!_0x4141c3){logger[_0xd5f5('0xe')](_0xd5f5('0x12'),_0x1a078d);_0x2faf52('Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.');}else{_0x34598f(_0x4141c3);}});}catch(_0x26f3be){_0x2faf52(_0x26f3be);}});}function ActiveDirectoryAuthenticate(_0x4de0e9,_0x85cc4b,_0x5aa485,_0x387fd7){var _0x213239,_0x3d9a3e;if(!isActiveDirectoryConfigured(config)){logger[_0xd5f5('0xe')](_0xd5f5('0x13'),_0x85cc4b);return _0x387fd7(null,![],{'message':_0xd5f5('0x11')});}return db['Setting'][_0xd5f5('0x14')]({'where':{'id':0x1},'attributes':['adSsoEnabled',_0xd5f5('0x15')],'raw':!![]})[_0xd5f5('0x16')](function(_0x49e266){_0x213239=_0x49e266;if(!_0x213239[_0xd5f5('0x17')]){logger[_0xd5f5('0xe')](_0xd5f5('0x18'),_0x85cc4b);throw new Error(_0xd5f5('0x11'));}return _0x4de0e9[_0xd5f5('0x14')]({'attributes':['id',_0xd5f5('0x19'),'password',_0xd5f5('0x1a'),_0xd5f5('0x1b'),_0xd5f5('0x1c'),_0xd5f5('0x1d'),_0xd5f5('0x1e'),_0xd5f5('0x1f')],'where':{'name':_0x85cc4b,'role':{'$or':['admin',_0xd5f5('0x20'),_0xd5f5('0x21')]},'adSsoEnabled':!![]}});})[_0xd5f5('0x16')](function(_0x10848a){if(!_0x10848a||_0x10848a&&_0x10848a[_0xd5f5('0x19')]!==_0x85cc4b){throw new Error(_0xd5f5('0x11'));}_0x3d9a3e=_0x10848a;var _0x4b14e4=_0x3d9a3e[_0xd5f5('0x19')]+'@'+config[_0xd5f5('0xa')]['domain'];return adAuthenticate(config['activedirectory'],_0x4b14e4,_0x5aa485);})['then'](function(_0x12ebd8){if(_0x3d9a3e[_0xd5f5('0x1c')]){throw new Error('Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.');}if(_0x213239[_0xd5f5('0x15')]>0x0){if(_0x3d9a3e[_0xd5f5('0x1d')]){if(moment(_0x3d9a3e['blockedAt'])[_0xd5f5('0x22')](_0x213239[_0xd5f5('0x15')],'minutes')>moment()){throw new Error(_0xd5f5('0x11'));}return utils[_0xd5f5('0x23')](_0x3d9a3e,0x0,![],null)[_0xd5f5('0x16')](function(){return utils[_0xd5f5('0x24')](_0x3d9a3e);})['then'](function(){return _0x387fd7(null,_0x3d9a3e);});}else{return utils['getLicense'](_0x3d9a3e)['then'](function(){return _0x387fd7(null,_0x3d9a3e);});}}else{return utils['getLicense'](_0x3d9a3e)['then'](function(){return _0x387fd7(null,_0x3d9a3e);});}})[_0xd5f5('0x25')](function(_0x50177b){return _0x387fd7(null,![],_0x50177b);});}function handleError(_0x80a0df,_0x227fcb,_0xdbbf58){return _0x80a0df[_0xd5f5('0x26')](_0x227fcb||0x1f4)[_0xd5f5('0x27')]({'message':_0xdbbf58?_0xdbbf58['message']||_0xdbbf58:''});}exports[_0xd5f5('0x28')]=function(_0x50d2fc,_0x31960a,_0x36ed2f){passport[_0xd5f5('0x29')]('ad-login',function(_0x535f92,_0xe058a9,_0xa7ab60){var _0x5ea408=_0x535f92||_0xa7ab60;if(_0x5ea408){return handleError(_0x31960a,0x191,_0x5ea408);}if(!_0xe058a9){return handleError(_0x31960a,0x194,{'message':_0xd5f5('0x2a')});}else{var _0x433620={'payload':{'id':_0xe058a9['id'],'role':_0xe058a9[_0xd5f5('0x1b')]},'options':{'expiresIn':0x15180}};return authService[_0xd5f5('0x2b')](_0x433620)[_0xd5f5('0x16')](function(_0x488e6b){_0x31960a[_0xd5f5('0x2c')]({'id':_0xe058a9['id'],'token':_0x488e6b,'statusCall':'','isAlreadyLogged':_0xe058a9[_0xd5f5('0x1f')]});});}})(_0x50d2fc,_0x31960a,_0x36ed2f);};passport[_0xd5f5('0x2d')]('ad-login',new LocalStrategy({'usernameField':_0xd5f5('0x19'),'passwordField':_0xd5f5('0x2e')},function(_0x2e7d4d,_0x5e361a,_0x436880){return ActiveDirectoryAuthenticate(db[_0xd5f5('0x2f')],_0x2e7d4d,_0x5e361a,_0x436880);}));
\ No newline at end of file
+var _0x9da6=['Error\x20authenticate\x20%s:\x20Wrong\x20credentials','Setting','findOne','adSsoEnabled','blockDuration','then','Error\x20authenticate\x20%s:\x20Active\x20Directory\x20not\x20enabled','name','password','salt','role','blocked','blockedAt','admin','user','disabled','add','minutes','clearBlockUser','getLicense','send','message','login','authenticate','ad-login','Something\x20went\x20wrong,\x20please\x20try\x20again.','signToken','json','online','use','User','passport-local','util','../../mysqldb','../../components/auth/service','../../config/utils','../../config/logger','api','activedirectory','baseDN','url','domain','error','inspect','Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'];(function(_0xee259c,_0x1d54c2){var _0x1eafb2=function(_0x4bf9c0){while(--_0x4bf9c0){_0xee259c['push'](_0xee259c['shift']());}};_0x1eafb2(++_0x1d54c2);}(_0x9da6,0xa6));var _0x69da=function(_0x18dc14,_0x12e682){_0x18dc14=_0x18dc14-0x0;var _0x3321ae=_0x9da6[_0x18dc14];return _0x3321ae;};'use strict';var passport=require('passport');var LocalStrategy=require(_0x69da('0x0'))['Strategy'];var moment=require('moment');var ActiveDirectory=require('activedirectory2');var BPromise=require('bluebird');var util=require(_0x69da('0x1'));var db=require(_0x69da('0x2'))['db'];var authService=require(_0x69da('0x3'));var utils=require(_0x69da('0x4'));var config=require('../../config/environment');var logger=require(_0x69da('0x5'))(_0x69da('0x6'));function isActiveDirectoryConfigured(_0xb34092){var _0x126d33=![];if(typeof _0xb34092[_0x69da('0x7')]!=='undefined'){_0x126d33=_0xb34092[_0x69da('0x7')][_0x69da('0x8')]&&_0xb34092['activedirectory'][_0x69da('0x9')]&&_0xb34092[_0x69da('0x7')][_0x69da('0xa')];}return _0x126d33;}function adAuthenticate(_0x2a1707,_0x2a315b,_0x2a1abd){return new BPromise(function(_0xefc810,_0x509b7c){try{var _0x3fab0c=new ActiveDirectory(_0x2a1707);_0x3fab0c['authenticate'](_0x2a315b,_0x2a1abd,function(_0x508111,_0x51d04f){if(_0x508111){logger[_0x69da('0xb')]('Error\x20authenticate\x20%s:\x20%s',_0x2a315b,util[_0x69da('0xc')](_0x508111,{'showHidden':![],'depth':null}));_0x509b7c(_0x69da('0xd'));}else if(!_0x51d04f){logger[_0x69da('0xb')](_0x69da('0xe'),_0x2a315b);_0x509b7c(_0x69da('0xd'));}else{_0xefc810(_0x51d04f);}});}catch(_0x526959){_0x509b7c(_0x526959);}});}function ActiveDirectoryAuthenticate(_0x3dd616,_0x500390,_0x4d9e78,_0x5028da){var _0x27a880,_0x21953d;if(!isActiveDirectoryConfigured(config)){logger['error']('Error\x20authenticate\x20%s:\x20Active\x20Directory\x20not\x20configured',_0x500390);return _0x5028da(null,![],{'message':_0x69da('0xd')});}return db[_0x69da('0xf')][_0x69da('0x10')]({'where':{'id':0x1},'attributes':[_0x69da('0x11'),_0x69da('0x12')],'raw':!![]})[_0x69da('0x13')](function(_0x41b527){_0x27a880=_0x41b527;if(!_0x27a880[_0x69da('0x11')]){logger['error'](_0x69da('0x14'),_0x500390);throw new Error('Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.');}return _0x3dd616[_0x69da('0x10')]({'attributes':['id',_0x69da('0x15'),_0x69da('0x16'),_0x69da('0x17'),_0x69da('0x18'),'disabled',_0x69da('0x19'),_0x69da('0x1a'),'online'],'where':{'name':_0x500390,'role':{'$or':[_0x69da('0x1b'),_0x69da('0x1c'),'agent']},'adSsoEnabled':!![]}});})[_0x69da('0x13')](function(_0x3d4c23){if(!_0x3d4c23||_0x3d4c23&&_0x3d4c23[_0x69da('0x15')]!==_0x500390){throw new Error(_0x69da('0xd'));}_0x21953d=_0x3d4c23;var _0x18b397=_0x21953d[_0x69da('0x15')]+'@'+config[_0x69da('0x7')][_0x69da('0xa')];return adAuthenticate(config[_0x69da('0x7')],_0x18b397,_0x4d9e78);})[_0x69da('0x13')](function(_0x54d1b0){if(_0x21953d[_0x69da('0x1d')]){throw new Error(_0x69da('0xd'));}if(_0x27a880[_0x69da('0x12')]>0x0){if(_0x21953d[_0x69da('0x19')]){if(moment(_0x21953d[_0x69da('0x1a')])[_0x69da('0x1e')](_0x27a880[_0x69da('0x12')],_0x69da('0x1f'))>moment()){throw new Error(_0x69da('0xd'));}return utils[_0x69da('0x20')](_0x21953d,0x0,![],null)[_0x69da('0x13')](function(){return utils[_0x69da('0x21')](_0x21953d);})[_0x69da('0x13')](function(){return _0x5028da(null,_0x21953d);});}else{return utils[_0x69da('0x21')](_0x21953d)[_0x69da('0x13')](function(){return _0x5028da(null,_0x21953d);});}}else{return utils[_0x69da('0x21')](_0x21953d)[_0x69da('0x13')](function(){return _0x5028da(null,_0x21953d);});}})['catch'](function(_0x5a8d33){return _0x5028da(null,![],_0x5a8d33);});}function handleError(_0x121e2e,_0x4d18b2,_0x3cd856){return _0x121e2e['status'](_0x4d18b2||0x1f4)[_0x69da('0x22')]({'message':_0x3cd856?_0x3cd856[_0x69da('0x23')]||_0x3cd856:''});}exports[_0x69da('0x24')]=function(_0x7081e4,_0x2d08f1,_0x5a5eb3){passport[_0x69da('0x25')](_0x69da('0x26'),function(_0x4ba43d,_0x61eb5,_0xb99e08){var _0x5183ab=_0x4ba43d||_0xb99e08;if(_0x5183ab){return handleError(_0x2d08f1,0x191,_0x5183ab);}if(!_0x61eb5){return handleError(_0x2d08f1,0x194,{'message':_0x69da('0x27')});}else{var _0x652fd9={'payload':{'id':_0x61eb5['id'],'role':_0x61eb5['role']},'options':{'expiresIn':0x15180}};return authService[_0x69da('0x28')](_0x652fd9)[_0x69da('0x13')](function(_0x30b2da){_0x2d08f1[_0x69da('0x29')]({'id':_0x61eb5['id'],'token':_0x30b2da,'statusCall':'','isAlreadyLogged':_0x61eb5[_0x69da('0x2a')]});});}})(_0x7081e4,_0x2d08f1,_0x5a5eb3);};passport[_0x69da('0x2b')]('ad-login',new LocalStrategy({'usernameField':'name','passwordField':_0x69da('0x16')},function(_0x57bf23,_0x2f7dd5,_0x5dfc66){return ActiveDirectoryAuthenticate(db[_0x69da('0x2c')],_0x57bf23,_0x2f7dd5,_0x5dfc66);}));
\ No newline at end of file