Built motion from commit e2351160.|2.5.50
[motion2.git] / server / api / authActiveDirectory / authActiveDirectory.controller.js
index 34e91f7..f530bd1 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0x4f4f=['bluebird','../../mysqldb','../../components/auth/service','../../config/utils','../../config/environment','../../config/logger','api','activedirectory','undefined','url','authenticate','error','Error\x20authenticate\x20%s:\x20%s','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','blockedAt','admin','user','agent','domain','blocked','add','minutes','clearBlockUser','getLicense','catch','send','login','ad-login','Something\x20went\x20wrong,\x20please\x20try\x20again.','signToken','json','online','use','passport-local','Strategy','moment'];(function(_0x44e3df,_0x1b3919){var _0x20e1ed=function(_0x391d82){while(--_0x391d82){_0x44e3df['push'](_0x44e3df['shift']());}};_0x20e1ed(++_0x1b3919);}(_0x4f4f,0x117));var _0xf4f4=function(_0x4ea955,_0x1eda76){_0x4ea955=_0x4ea955-0x0;var _0x558561=_0x4f4f[_0x4ea955];return _0x558561;};'use strict';var passport=require('passport');var LocalStrategy=require(_0xf4f4('0x0'))[_0xf4f4('0x1')];var moment=require(_0xf4f4('0x2'));var ActiveDirectory=require('activedirectory2');var BPromise=require(_0xf4f4('0x3'));var util=require('util');var db=require(_0xf4f4('0x4'))['db'];var authService=require(_0xf4f4('0x5'));var utils=require(_0xf4f4('0x6'));var config=require(_0xf4f4('0x7'));var logger=require(_0xf4f4('0x8'))(_0xf4f4('0x9'));function isActiveDirectoryConfigured(_0x4b9f2e){var _0x3049d7=![];if(typeof _0x4b9f2e[_0xf4f4('0xa')]!==_0xf4f4('0xb')){_0x3049d7=_0x4b9f2e['activedirectory']['baseDN']&&_0x4b9f2e['activedirectory'][_0xf4f4('0xc')]&&_0x4b9f2e[_0xf4f4('0xa')]['domain'];}return _0x3049d7;}function adAuthenticate(_0x559f7b,_0x18e477,_0x2607fd){return new BPromise(function(_0x4dca8c,_0xfd9b26){try{var _0x2fc317=new ActiveDirectory(_0x559f7b);_0x2fc317[_0xf4f4('0xd')](_0x18e477,_0x2607fd,function(_0x15085e,_0xd0dc1){if(_0x15085e){logger[_0xf4f4('0xe')](_0xf4f4('0xf'),_0x18e477,util['inspect'](_0x15085e,{'showHidden':![],'depth':null}));_0xfd9b26(_0xf4f4('0x10'));}else if(!_0xd0dc1){logger['error'](_0xf4f4('0x11'),_0x18e477);_0xfd9b26(_0xf4f4('0x10'));}else{_0x4dca8c(_0xd0dc1);}});}catch(_0x29e54e){_0xfd9b26(_0x29e54e);}});}function ActiveDirectoryAuthenticate(_0xaee3a8,_0x254079,_0x4fa5c2,_0x3a3260){var _0x3460df,_0x3ff5f0;if(!isActiveDirectoryConfigured(config)){logger[_0xf4f4('0xe')]('Error\x20authenticate\x20%s:\x20Active\x20Directory\x20not\x20configured',_0x254079);return _0x3a3260(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}return db[_0xf4f4('0x12')][_0xf4f4('0x13')]({'where':{'id':0x1},'attributes':[_0xf4f4('0x14'),_0xf4f4('0x15')],'raw':!![]})[_0xf4f4('0x16')](function(_0x313ff5){_0x3460df=_0x313ff5;if(!_0x3460df['adSsoEnabled']){logger['error'](_0xf4f4('0x17'),_0x254079);throw new Error(_0xf4f4('0x10'));}return _0xaee3a8[_0xf4f4('0x13')]({'logging':!![],'attributes':['id',_0xf4f4('0x18'),_0xf4f4('0x19'),_0xf4f4('0x1a'),'role',_0xf4f4('0x1b'),'blocked',_0xf4f4('0x1c'),'online'],'where':{'name':_0x254079,'role':{'$or':[_0xf4f4('0x1d'),_0xf4f4('0x1e'),_0xf4f4('0x1f')]},'adSsoEnabled':!![]}});})['then'](function(_0x28eec5){if(!_0x28eec5||_0x28eec5&&_0x28eec5[_0xf4f4('0x18')]!==_0x254079){throw new Error(_0xf4f4('0x10'));}_0x3ff5f0=_0x28eec5;var _0xeb9015=_0x3ff5f0[_0xf4f4('0x18')]+'@'+config['activedirectory'][_0xf4f4('0x20')];return adAuthenticate(config['activedirectory'],_0xeb9015,_0x4fa5c2);})[_0xf4f4('0x16')](function(_0x7b7751){if(_0x3ff5f0[_0xf4f4('0x1b')]){throw new Error(_0xf4f4('0x10'));}if(_0x3460df[_0xf4f4('0x15')]>0x0){if(_0x3ff5f0[_0xf4f4('0x21')]){if(moment(_0x3ff5f0[_0xf4f4('0x1c')])[_0xf4f4('0x22')](_0x3460df[_0xf4f4('0x15')],_0xf4f4('0x23'))>moment()){throw new Error(_0xf4f4('0x10'));}return utils[_0xf4f4('0x24')](_0x3ff5f0,0x0,![],null)[_0xf4f4('0x16')](function(){return utils[_0xf4f4('0x25')](_0x3ff5f0);})[_0xf4f4('0x16')](function(){return _0x3a3260(null,_0x3ff5f0);});}else{return utils[_0xf4f4('0x25')](_0x3ff5f0)[_0xf4f4('0x16')](function(){return _0x3a3260(null,_0x3ff5f0);});}}else{return utils[_0xf4f4('0x25')](_0x3ff5f0)[_0xf4f4('0x16')](function(){return _0x3a3260(null,_0x3ff5f0);});}})[_0xf4f4('0x26')](function(_0x231235){return _0x3a3260(null,![],_0x231235);});}function handleError(_0x5a2669,_0x5b181f,_0x1939c0){return _0x5a2669['status'](_0x5b181f||0x1f4)[_0xf4f4('0x27')]({'message':_0x1939c0?_0x1939c0['message']||_0x1939c0:''});}exports[_0xf4f4('0x28')]=function(_0x46fce3,_0x595f34,_0x54dc04){passport['authenticate'](_0xf4f4('0x29'),function(_0x185e4e,_0x35540f,_0x5f2ade){var _0x1d0e3f=_0x185e4e||_0x5f2ade;if(_0x1d0e3f){return handleError(_0x595f34,0x191,_0x1d0e3f);}if(!_0x35540f){return handleError(_0x595f34,0x194,{'message':_0xf4f4('0x2a')});}else{var _0x3de6a8={'payload':{'id':_0x35540f['id'],'role':_0x35540f['role']},'options':{'expiresIn':0x15180}};return authService[_0xf4f4('0x2b')](_0x3de6a8)[_0xf4f4('0x16')](function(_0x1d14be){_0x595f34[_0xf4f4('0x2c')]({'id':_0x35540f['id'],'token':_0x1d14be,'statusCall':'','isAlreadyLogged':_0x35540f[_0xf4f4('0x2d')]});});}})(_0x46fce3,_0x595f34,_0x54dc04);};passport[_0xf4f4('0x2e')](_0xf4f4('0x29'),new LocalStrategy({'usernameField':_0xf4f4('0x18'),'passwordField':'password'},function(_0x121bc2,_0x106d0f,_0x50dbaf){return ActiveDirectoryAuthenticate(db['User'],_0x121bc2,_0x106d0f,_0x50dbaf);}));
\ No newline at end of file
+var _0x22ee=['util','../../components/auth/service','../../config/utils','../../config/environment','api','activedirectory','undefined','baseDN','url','domain','authenticate','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','salt','role','disabled','blockedAt','online','admin','user','agent','blocked','add','clearBlockUser','getLicense','catch','status','send','Something\x20went\x20wrong,\x20please\x20try\x20again.','signToken','use','passport','passport-local','Strategy','moment','activedirectory2'];(function(_0x578899,_0x4b80ba){var _0x49f911=function(_0x561995){while(--_0x561995){_0x578899['push'](_0x578899['shift']());}};_0x49f911(++_0x4b80ba);}(_0x22ee,0xb3));var _0xe22e=function(_0x8b58e7,_0x1c045d){_0x8b58e7=_0x8b58e7-0x0;var _0x3c9fc4=_0x22ee[_0x8b58e7];return _0x3c9fc4;};'use strict';var passport=require(_0xe22e('0x0'));var LocalStrategy=require(_0xe22e('0x1'))[_0xe22e('0x2')];var moment=require(_0xe22e('0x3'));var ActiveDirectory=require(_0xe22e('0x4'));var BPromise=require('bluebird');var util=require(_0xe22e('0x5'));var db=require('../../mysqldb')['db'];var authService=require(_0xe22e('0x6'));var utils=require(_0xe22e('0x7'));var config=require(_0xe22e('0x8'));var logger=require('../../config/logger')(_0xe22e('0x9'));function isActiveDirectoryConfigured(_0x59b506){var _0x14f56f=![];if(typeof _0x59b506[_0xe22e('0xa')]!==_0xe22e('0xb')){_0x14f56f=_0x59b506[_0xe22e('0xa')][_0xe22e('0xc')]&&_0x59b506[_0xe22e('0xa')][_0xe22e('0xd')]&&_0x59b506[_0xe22e('0xa')][_0xe22e('0xe')];}return _0x14f56f;}function adAuthenticate(_0x12ef32,_0x3bb036,_0x420c95){return new BPromise(function(_0x2bc796,_0x4dcf97){try{var _0x5546df=new ActiveDirectory(_0x12ef32);_0x5546df[_0xe22e('0xf')](_0x3bb036,_0x420c95,function(_0x134ece,_0x37aca9){if(_0x134ece){logger[_0xe22e('0x10')]('Error\x20authenticate\x20%s:\x20%s',_0x3bb036,util[_0xe22e('0x11')](_0x134ece,{'showHidden':![],'depth':null}));_0x4dcf97(_0xe22e('0x12'));}else if(!_0x37aca9){logger['error'](_0xe22e('0x13'),_0x3bb036);_0x4dcf97('Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.');}else{_0x2bc796(_0x37aca9);}});}catch(_0x30f583){_0x4dcf97(_0x30f583);}});}function ActiveDirectoryAuthenticate(_0x2c0d90,_0x1887e1,_0xe4a65d,_0x58c4b8){var _0x144db7,_0x579110;if(!isActiveDirectoryConfigured(config)){logger[_0xe22e('0x10')](_0xe22e('0x14'),_0x1887e1);return _0x58c4b8(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}return db[_0xe22e('0x15')][_0xe22e('0x16')]({'where':{'id':0x1},'attributes':['adSsoEnabled',_0xe22e('0x17')],'raw':!![]})[_0xe22e('0x18')](function(_0x3f562d){_0x144db7=_0x3f562d;if(!_0x144db7[_0xe22e('0x19')]){logger['error'](_0xe22e('0x1a'),_0x1887e1);throw new Error(_0xe22e('0x12'));}return _0x2c0d90['findOne']({'logging':!![],'attributes':['id',_0xe22e('0x1b'),'password',_0xe22e('0x1c'),_0xe22e('0x1d'),_0xe22e('0x1e'),'blocked',_0xe22e('0x1f'),_0xe22e('0x20')],'where':{'name':_0x1887e1,'role':{'$or':[_0xe22e('0x21'),_0xe22e('0x22'),_0xe22e('0x23')]},'adSsoEnabled':!![]}});})[_0xe22e('0x18')](function(_0x5850ee){if(!_0x5850ee||_0x5850ee&&_0x5850ee[_0xe22e('0x1b')]!==_0x1887e1){throw new Error(_0xe22e('0x12'));}_0x579110=_0x5850ee;var _0x37c629=_0x579110['name']+'@'+config[_0xe22e('0xa')]['domain'];return adAuthenticate(config[_0xe22e('0xa')],_0x37c629,_0xe4a65d);})[_0xe22e('0x18')](function(_0x29a5e0){if(_0x579110[_0xe22e('0x1e')]){throw new Error('Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.');}if(_0x144db7[_0xe22e('0x17')]>0x0){if(_0x579110[_0xe22e('0x24')]){if(moment(_0x579110[_0xe22e('0x1f')])[_0xe22e('0x25')](_0x144db7[_0xe22e('0x17')],'minutes')>moment()){throw new Error('Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.');}return utils[_0xe22e('0x26')](_0x579110,0x0,![],null)[_0xe22e('0x18')](function(){return utils[_0xe22e('0x27')](_0x579110);})[_0xe22e('0x18')](function(){return _0x58c4b8(null,_0x579110);});}else{return utils['getLicense'](_0x579110)[_0xe22e('0x18')](function(){return _0x58c4b8(null,_0x579110);});}}else{return utils[_0xe22e('0x27')](_0x579110)[_0xe22e('0x18')](function(){return _0x58c4b8(null,_0x579110);});}})[_0xe22e('0x28')](function(_0x30b090){return _0x58c4b8(null,![],_0x30b090);});}function handleError(_0x3c53b4,_0x3285b3,_0x271392){return _0x3c53b4[_0xe22e('0x29')](_0x3285b3||0x1f4)[_0xe22e('0x2a')]({'message':_0x271392?_0x271392['message']||_0x271392:''});}exports['login']=function(_0x1955fe,_0x2e1e11,_0x223f1c){passport[_0xe22e('0xf')]('ad-login',function(_0x1c0a26,_0xe59ad1,_0x5ac855){var _0x4a78ba=_0x1c0a26||_0x5ac855;if(_0x4a78ba){return handleError(_0x2e1e11,0x191,_0x4a78ba);}if(!_0xe59ad1){return handleError(_0x2e1e11,0x194,{'message':_0xe22e('0x2b')});}else{var _0x1da60e={'payload':{'id':_0xe59ad1['id'],'role':_0xe59ad1[_0xe22e('0x1d')]},'options':{'expiresIn':0x15180}};return authService[_0xe22e('0x2c')](_0x1da60e)[_0xe22e('0x18')](function(_0x10263f){_0x2e1e11['json']({'id':_0xe59ad1['id'],'token':_0x10263f,'statusCall':'','isAlreadyLogged':_0xe59ad1[_0xe22e('0x20')]});});}})(_0x1955fe,_0x2e1e11,_0x223f1c);};passport[_0xe22e('0x2d')]('ad-login',new LocalStrategy({'usernameField':_0xe22e('0x1b'),'passwordField':'password'},function(_0x1c9872,_0x17ab3e,_0x440a01){return ActiveDirectoryAuthenticate(db['User'],_0x1c9872,_0x17ab3e,_0x440a01);}));
\ No newline at end of file