Built motion from commit ae138b72.|2.6.28
[motion2.git] / server / api / authActiveDirectory / authActiveDirectory.controller.js
index 1a70454..3ab4745 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0x46b1=['User','passport','passport-local','Strategy','activedirectory2','bluebird','util','../../mysqldb','../../components/auth/service','../../config/utils','api','activedirectory','baseDN','url','domain','error','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','Setting','findOne','blockDuration','then','adSsoEnabled','Error\x20authenticate\x20%s:\x20Active\x20Directory\x20not\x20enabled','name','password','salt','role','disabled','blocked','online','admin','user','agent','add','clearBlockUser','getLicense','message','login','authenticate','ad-login','signToken','json','use'];(function(_0xa4bd21,_0x232b23){var _0x34f8da=function(_0x5642ce){while(--_0x5642ce){_0xa4bd21['push'](_0xa4bd21['shift']());}};_0x34f8da(++_0x232b23);}(_0x46b1,0x143));var _0x146b=function(_0x46a3ff,_0x470b9a){_0x46a3ff=_0x46a3ff-0x0;var _0x404bc2=_0x46b1[_0x46a3ff];return _0x404bc2;};'use strict';var passport=require(_0x146b('0x0'));var LocalStrategy=require(_0x146b('0x1'))[_0x146b('0x2')];var moment=require('moment');var ActiveDirectory=require(_0x146b('0x3'));var BPromise=require(_0x146b('0x4'));var util=require(_0x146b('0x5'));var db=require(_0x146b('0x6'))['db'];var authService=require(_0x146b('0x7'));var utils=require(_0x146b('0x8'));var config=require('../../config/environment');var logger=require('../../config/logger')(_0x146b('0x9'));function isActiveDirectoryConfigured(_0x2622ec){var _0x4bb974=![];if(typeof _0x2622ec[_0x146b('0xa')]!=='undefined'){_0x4bb974=_0x2622ec[_0x146b('0xa')][_0x146b('0xb')]&&_0x2622ec[_0x146b('0xa')][_0x146b('0xc')]&&_0x2622ec[_0x146b('0xa')][_0x146b('0xd')];}return _0x4bb974;}function adAuthenticate(_0x22f636,_0x570709,_0x15526a){return new BPromise(function(_0x5d5f4b,_0x484dfb){try{var _0x270c94=new ActiveDirectory(_0x22f636);_0x270c94['authenticate'](_0x570709,_0x15526a,function(_0x368902,_0x96af3d){if(_0x368902){logger[_0x146b('0xe')]('Error\x20authenticate\x20%s:\x20%s',_0x570709,util[_0x146b('0xf')](_0x368902,{'showHidden':![],'depth':null}));_0x484dfb(_0x146b('0x10'));}else if(!_0x96af3d){logger['error'](_0x146b('0x11'),_0x570709);_0x484dfb('Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.');}else{_0x5d5f4b(_0x96af3d);}});}catch(_0xbe67db){_0x484dfb(_0xbe67db);}});}function ActiveDirectoryAuthenticate(_0x4fd47c,_0x3a0930,_0x5b480f,_0x532d77){var _0xd68a18,_0x3bed78;if(!isActiveDirectoryConfigured(config)){logger[_0x146b('0xe')](_0x146b('0x12'),_0x3a0930);return _0x532d77(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}return db[_0x146b('0x13')][_0x146b('0x14')]({'where':{'id':0x1},'attributes':['adSsoEnabled',_0x146b('0x15')],'raw':!![]})[_0x146b('0x16')](function(_0x235785){_0xd68a18=_0x235785;if(!_0xd68a18[_0x146b('0x17')]){logger[_0x146b('0xe')](_0x146b('0x18'),_0x3a0930);throw new Error('Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.');}return _0x4fd47c[_0x146b('0x14')]({'attributes':['id',_0x146b('0x19'),_0x146b('0x1a'),_0x146b('0x1b'),_0x146b('0x1c'),_0x146b('0x1d'),_0x146b('0x1e'),'blockedAt',_0x146b('0x1f')],'where':{'name':_0x3a0930,'role':{'$or':[_0x146b('0x20'),_0x146b('0x21'),_0x146b('0x22')]},'adSsoEnabled':!![]}});})[_0x146b('0x16')](function(_0x432045){if(!_0x432045||_0x432045&&_0x432045[_0x146b('0x19')]!==_0x3a0930){throw new Error('Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.');}_0x3bed78=_0x432045;var _0x5ba207=_0x3bed78[_0x146b('0x19')]+'@'+config['activedirectory'][_0x146b('0xd')];return adAuthenticate(config['activedirectory'],_0x5ba207,_0x5b480f);})[_0x146b('0x16')](function(_0x5156ad){if(_0x3bed78[_0x146b('0x1d')]){throw new Error(_0x146b('0x10'));}if(_0xd68a18[_0x146b('0x15')]>0x0){if(_0x3bed78[_0x146b('0x1e')]){if(moment(_0x3bed78['blockedAt'])[_0x146b('0x23')](_0xd68a18[_0x146b('0x15')],'minutes')>moment()){throw new Error(_0x146b('0x10'));}return utils[_0x146b('0x24')](_0x3bed78,0x0,![],null)[_0x146b('0x16')](function(){return utils[_0x146b('0x25')](_0x3bed78);})[_0x146b('0x16')](function(){return _0x532d77(null,_0x3bed78);});}else{return utils[_0x146b('0x25')](_0x3bed78)[_0x146b('0x16')](function(){return _0x532d77(null,_0x3bed78);});}}else{return utils[_0x146b('0x25')](_0x3bed78)[_0x146b('0x16')](function(){return _0x532d77(null,_0x3bed78);});}})['catch'](function(_0x1e8b03){return _0x532d77(null,![],_0x1e8b03);});}function handleError(_0x3107b7,_0x2e6f12,_0x1c7bf2){return _0x3107b7['status'](_0x2e6f12||0x1f4)['send']({'message':_0x1c7bf2?_0x1c7bf2[_0x146b('0x26')]||_0x1c7bf2:''});}exports[_0x146b('0x27')]=function(_0x1886f7,_0x1d9823,_0xb98687){passport[_0x146b('0x28')](_0x146b('0x29'),function(_0x195c63,_0xec8ea1,_0x17ce46){var _0x3e6a6e=_0x195c63||_0x17ce46;if(_0x3e6a6e){return handleError(_0x1d9823,0x191,_0x3e6a6e);}if(!_0xec8ea1){return handleError(_0x1d9823,0x194,{'message':'Something\x20went\x20wrong,\x20please\x20try\x20again.'});}else{var _0x538c98={'payload':{'id':_0xec8ea1['id'],'role':_0xec8ea1[_0x146b('0x1c')]},'options':{'expiresIn':0x15180}};return authService[_0x146b('0x2a')](_0x538c98)['then'](function(_0x4aadec){_0x1d9823[_0x146b('0x2b')]({'id':_0xec8ea1['id'],'token':_0x4aadec,'statusCall':'','isAlreadyLogged':_0xec8ea1[_0x146b('0x1f')]});});}})(_0x1886f7,_0x1d9823,_0xb98687);};passport[_0x146b('0x2c')](_0x146b('0x29'),new LocalStrategy({'usernameField':_0x146b('0x19'),'passwordField':_0x146b('0x1a')},function(_0x5928e8,_0x514abe,_0x2f07ce){return ActiveDirectoryAuthenticate(db[_0x146b('0x2d')],_0x5928e8,_0x514abe,_0x2f07ce);}));
\ No newline at end of file
+var _0x8a01=['../../config/logger','api','activedirectory','undefined','url','domain','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','adSsoEnabled','blockDuration','Error\x20authenticate\x20%s:\x20Active\x20Directory\x20not\x20enabled','findOne','name','password','salt','role','disabled','blocked','blockedAt','online','admin','user','agent','then','add','minutes','clearBlockUser','getLicense','catch','status','send','message','login','Something\x20went\x20wrong,\x20please\x20try\x20again.','signToken','json','use','ad-login','User','passport-local','Strategy','activedirectory2','bluebird','../../mysqldb','../../components/auth/service','../../config/utils','../../config/environment'];(function(_0x3da6ae,_0x13fdf4){var _0x1aa8df=function(_0xaac51){while(--_0xaac51){_0x3da6ae['push'](_0x3da6ae['shift']());}};_0x1aa8df(++_0x13fdf4);}(_0x8a01,0x198));var _0x18a0=function(_0x5c6180,_0x12ef5b){_0x5c6180=_0x5c6180-0x0;var _0x1abdba=_0x8a01[_0x5c6180];return _0x1abdba;};'use strict';var passport=require('passport');var LocalStrategy=require(_0x18a0('0x0'))[_0x18a0('0x1')];var moment=require('moment');var ActiveDirectory=require(_0x18a0('0x2'));var BPromise=require(_0x18a0('0x3'));var util=require('util');var db=require(_0x18a0('0x4'))['db'];var authService=require(_0x18a0('0x5'));var utils=require(_0x18a0('0x6'));var config=require(_0x18a0('0x7'));var logger=require(_0x18a0('0x8'))(_0x18a0('0x9'));function isActiveDirectoryConfigured(_0x32e3c1){var _0x295266=![];if(typeof _0x32e3c1[_0x18a0('0xa')]!==_0x18a0('0xb')){_0x295266=_0x32e3c1[_0x18a0('0xa')]['baseDN']&&_0x32e3c1[_0x18a0('0xa')][_0x18a0('0xc')]&&_0x32e3c1[_0x18a0('0xa')][_0x18a0('0xd')];}return _0x295266;}function adAuthenticate(_0x47f043,_0x5f4daa,_0x16849f){return new BPromise(function(_0x331fea,_0x5579c8){try{var _0xa05d42=new ActiveDirectory(_0x47f043);_0xa05d42[_0x18a0('0xe')](_0x5f4daa,_0x16849f,function(_0x20202f,_0x21b100){if(_0x20202f){logger[_0x18a0('0xf')](_0x18a0('0x10'),_0x5f4daa,util[_0x18a0('0x11')](_0x20202f,{'showHidden':![],'depth':null}));_0x5579c8(_0x18a0('0x12'));}else if(!_0x21b100){logger[_0x18a0('0xf')](_0x18a0('0x13'),_0x5f4daa);_0x5579c8(_0x18a0('0x12'));}else{_0x331fea(_0x21b100);}});}catch(_0x541ce0){_0x5579c8(_0x541ce0);}});}function ActiveDirectoryAuthenticate(_0x31ebc6,_0x1f28a2,_0x437fd5,_0x490c71){var _0x4325d5,_0x9f3984;if(!isActiveDirectoryConfigured(config)){logger[_0x18a0('0xf')]('Error\x20authenticate\x20%s:\x20Active\x20Directory\x20not\x20configured',_0x1f28a2);return _0x490c71(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}return db[_0x18a0('0x14')]['findOne']({'where':{'id':0x1},'attributes':[_0x18a0('0x15'),_0x18a0('0x16')],'raw':!![]})['then'](function(_0x41e869){_0x4325d5=_0x41e869;if(!_0x4325d5[_0x18a0('0x15')]){logger[_0x18a0('0xf')](_0x18a0('0x17'),_0x1f28a2);throw new Error(_0x18a0('0x12'));}return _0x31ebc6[_0x18a0('0x18')]({'attributes':['id',_0x18a0('0x19'),_0x18a0('0x1a'),_0x18a0('0x1b'),_0x18a0('0x1c'),_0x18a0('0x1d'),_0x18a0('0x1e'),_0x18a0('0x1f'),_0x18a0('0x20')],'where':{'name':_0x1f28a2,'role':{'$or':[_0x18a0('0x21'),_0x18a0('0x22'),_0x18a0('0x23')]},'adSsoEnabled':!![]}});})[_0x18a0('0x24')](function(_0x4e96a2){if(!_0x4e96a2||_0x4e96a2&&_0x4e96a2[_0x18a0('0x19')]!==_0x1f28a2){throw new Error(_0x18a0('0x12'));}_0x9f3984=_0x4e96a2;var _0x2498e8=_0x9f3984[_0x18a0('0x19')]+'@'+config[_0x18a0('0xa')]['domain'];return adAuthenticate(config[_0x18a0('0xa')],_0x2498e8,_0x437fd5);})[_0x18a0('0x24')](function(_0x1781b6){if(_0x9f3984[_0x18a0('0x1d')]){throw new Error('Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.');}if(_0x4325d5[_0x18a0('0x16')]>0x0){if(_0x9f3984[_0x18a0('0x1e')]){if(moment(_0x9f3984[_0x18a0('0x1f')])[_0x18a0('0x25')](_0x4325d5[_0x18a0('0x16')],_0x18a0('0x26'))>moment()){throw new Error('Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.');}return utils[_0x18a0('0x27')](_0x9f3984,0x0,![],null)[_0x18a0('0x24')](function(){return utils['getLicense'](_0x9f3984);})[_0x18a0('0x24')](function(){return _0x490c71(null,_0x9f3984);});}else{return utils[_0x18a0('0x28')](_0x9f3984)[_0x18a0('0x24')](function(){return _0x490c71(null,_0x9f3984);});}}else{return utils[_0x18a0('0x28')](_0x9f3984)[_0x18a0('0x24')](function(){return _0x490c71(null,_0x9f3984);});}})[_0x18a0('0x29')](function(_0x53f944){return _0x490c71(null,![],_0x53f944);});}function handleError(_0x13f8e9,_0x2f78e6,_0x5f41bb){return _0x13f8e9[_0x18a0('0x2a')](_0x2f78e6||0x1f4)[_0x18a0('0x2b')]({'message':_0x5f41bb?_0x5f41bb[_0x18a0('0x2c')]||_0x5f41bb:''});}exports[_0x18a0('0x2d')]=function(_0x1085c4,_0x34cadd,_0x5432a9){passport['authenticate']('ad-login',function(_0x1ba2e7,_0x4ee272,_0x1a8806){var _0x33530c=_0x1ba2e7||_0x1a8806;if(_0x33530c){return handleError(_0x34cadd,0x191,_0x33530c);}if(!_0x4ee272){return handleError(_0x34cadd,0x194,{'message':_0x18a0('0x2e')});}else{var _0x454772={'payload':{'id':_0x4ee272['id'],'role':_0x4ee272['role']},'options':{'expiresIn':0x15180}};return authService[_0x18a0('0x2f')](_0x454772)[_0x18a0('0x24')](function(_0x3b4d93){_0x34cadd[_0x18a0('0x30')]({'id':_0x4ee272['id'],'token':_0x3b4d93,'statusCall':'','isAlreadyLogged':_0x4ee272[_0x18a0('0x20')]});});}})(_0x1085c4,_0x34cadd,_0x5432a9);};passport[_0x18a0('0x31')](_0x18a0('0x32'),new LocalStrategy({'usernameField':_0x18a0('0x19'),'passwordField':_0x18a0('0x1a')},function(_0x13bc1d,_0x3d8503,_0x3059b1){return ActiveDirectoryAuthenticate(db[_0x18a0('0x33')],_0x13bc1d,_0x3d8503,_0x3059b1);}));
\ No newline at end of file