Built motion from commit 3d3e98f2.|2.6.29
[motion2.git] / server / api / authActiveDirectory / authActiveDirectory.controller.js
index ebaebd7..57a7cf6 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0xd1a8=['send','message','login','ad-login','Something\x20went\x20wrong,\x20please\x20try\x20again.','signToken','json','use','passport','Strategy','moment','activedirectory2','util','../../mysqldb','../../config/utils','../../config/environment','../../config/logger','api','activedirectory','undefined','baseDN','domain','authenticate','inspect','Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.','Error\x20authenticate\x20%s:\x20Wrong\x20credentials','error','Error\x20authenticate\x20%s:\x20Active\x20Directory\x20not\x20configured','Setting','findOne','adSsoEnabled','blockDuration','then','name','salt','role','disabled','blockedAt','online','admin','blocked','add','clearBlockUser','getLicense','catch','status'];(function(_0x230062,_0xf75914){var _0x1b1f93=function(_0x5a9f3c){while(--_0x5a9f3c){_0x230062['push'](_0x230062['shift']());}};_0x1b1f93(++_0xf75914);}(_0xd1a8,0xee));var _0x8d1a=function(_0x1d0fd5,_0x111e03){_0x1d0fd5=_0x1d0fd5-0x0;var _0xd3b5d1=_0xd1a8[_0x1d0fd5];return _0xd3b5d1;};'use strict';var passport=require(_0x8d1a('0x0'));var LocalStrategy=require('passport-local')[_0x8d1a('0x1')];var moment=require(_0x8d1a('0x2'));var ActiveDirectory=require(_0x8d1a('0x3'));var BPromise=require('bluebird');var util=require(_0x8d1a('0x4'));var db=require(_0x8d1a('0x5'))['db'];var authService=require('../../components/auth/service');var utils=require(_0x8d1a('0x6'));var config=require(_0x8d1a('0x7'));var logger=require(_0x8d1a('0x8'))(_0x8d1a('0x9'));function isActiveDirectoryConfigured(_0x475841){var _0x2fb492=![];if(typeof _0x475841[_0x8d1a('0xa')]!==_0x8d1a('0xb')){_0x2fb492=_0x475841[_0x8d1a('0xa')][_0x8d1a('0xc')]&&_0x475841['activedirectory']['url']&&_0x475841[_0x8d1a('0xa')][_0x8d1a('0xd')];}return _0x2fb492;}function adAuthenticate(_0x523e93,_0x278cb8,_0xbb616c){return new BPromise(function(_0x52cc8f,_0x5eafa7){try{var _0x1d0bf1=new ActiveDirectory(_0x523e93);_0x1d0bf1[_0x8d1a('0xe')](_0x278cb8,_0xbb616c,function(_0x4f9464,_0x216269){if(_0x4f9464){logger['error']('Error\x20authenticate\x20%s:\x20%s',_0x278cb8,util[_0x8d1a('0xf')](_0x4f9464,{'showHidden':![],'depth':null}));_0x5eafa7(_0x8d1a('0x10'));}else if(!_0x216269){logger['error'](_0x8d1a('0x11'),_0x278cb8);_0x5eafa7('Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.');}else{_0x52cc8f(_0x216269);}});}catch(_0x54b59f){_0x5eafa7(_0x54b59f);}});}function ActiveDirectoryAuthenticate(_0x503a2a,_0x236a89,_0x53a628,_0x9f5cd2){var _0x11b49f,_0x4f6dfe;if(!isActiveDirectoryConfigured(config)){logger[_0x8d1a('0x12')](_0x8d1a('0x13'),_0x236a89);return _0x9f5cd2(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}return db[_0x8d1a('0x14')][_0x8d1a('0x15')]({'where':{'id':0x1},'attributes':[_0x8d1a('0x16'),_0x8d1a('0x17')],'raw':!![]})[_0x8d1a('0x18')](function(_0x14c108){_0x11b49f=_0x14c108;if(!_0x11b49f['adSsoEnabled']){logger[_0x8d1a('0x12')]('Error\x20authenticate\x20%s:\x20Active\x20Directory\x20not\x20enabled',_0x236a89);throw new Error(_0x8d1a('0x10'));}return _0x503a2a['findOne']({'attributes':['id',_0x8d1a('0x19'),'password',_0x8d1a('0x1a'),_0x8d1a('0x1b'),_0x8d1a('0x1c'),'blocked',_0x8d1a('0x1d'),_0x8d1a('0x1e')],'where':{'name':_0x236a89,'role':{'$or':[_0x8d1a('0x1f'),'user','agent']},'adSsoEnabled':!![]}});})[_0x8d1a('0x18')](function(_0x4899ca){if(!_0x4899ca||_0x4899ca&&_0x4899ca[_0x8d1a('0x19')]!==_0x236a89){throw new Error(_0x8d1a('0x10'));}_0x4f6dfe=_0x4899ca;var _0x578f5b=_0x4f6dfe[_0x8d1a('0x19')]+'@'+config[_0x8d1a('0xa')][_0x8d1a('0xd')];return adAuthenticate(config[_0x8d1a('0xa')],_0x578f5b,_0x53a628);})[_0x8d1a('0x18')](function(_0x57c803){if(_0x4f6dfe[_0x8d1a('0x1c')]){throw new Error(_0x8d1a('0x10'));}if(_0x11b49f[_0x8d1a('0x17')]>0x0){if(_0x4f6dfe[_0x8d1a('0x20')]){if(moment(_0x4f6dfe[_0x8d1a('0x1d')])[_0x8d1a('0x21')](_0x11b49f['blockDuration'],'minutes')>moment()){throw new Error('Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.');}return utils[_0x8d1a('0x22')](_0x4f6dfe,0x0,![],null)[_0x8d1a('0x18')](function(){return utils[_0x8d1a('0x23')](_0x4f6dfe);})[_0x8d1a('0x18')](function(){return _0x9f5cd2(null,_0x4f6dfe);});}else{return utils['getLicense'](_0x4f6dfe)[_0x8d1a('0x18')](function(){return _0x9f5cd2(null,_0x4f6dfe);});}}else{return utils[_0x8d1a('0x23')](_0x4f6dfe)[_0x8d1a('0x18')](function(){return _0x9f5cd2(null,_0x4f6dfe);});}})[_0x8d1a('0x24')](function(_0x102bfd){return _0x9f5cd2(null,![],_0x102bfd);});}function handleError(_0x17f5cf,_0x42d510,_0x1548d5){return _0x17f5cf[_0x8d1a('0x25')](_0x42d510||0x1f4)[_0x8d1a('0x26')]({'message':_0x1548d5?_0x1548d5[_0x8d1a('0x27')]||_0x1548d5:''});}exports[_0x8d1a('0x28')]=function(_0xee839b,_0xae3f73,_0x431891){passport[_0x8d1a('0xe')](_0x8d1a('0x29'),function(_0x181744,_0x131c6f,_0x44e534){var _0x3034b6=_0x181744||_0x44e534;if(_0x3034b6){return handleError(_0xae3f73,0x191,_0x3034b6);}if(!_0x131c6f){return handleError(_0xae3f73,0x194,{'message':_0x8d1a('0x2a')});}else{var _0x1e4ba4={'payload':{'id':_0x131c6f['id'],'role':_0x131c6f[_0x8d1a('0x1b')]},'options':{'expiresIn':0x15180}};return authService[_0x8d1a('0x2b')](_0x1e4ba4)[_0x8d1a('0x18')](function(_0x530586){_0xae3f73[_0x8d1a('0x2c')]({'id':_0x131c6f['id'],'token':_0x530586,'statusCall':'','isAlreadyLogged':_0x131c6f[_0x8d1a('0x1e')]});});}})(_0xee839b,_0xae3f73,_0x431891);};passport[_0x8d1a('0x2d')](_0x8d1a('0x29'),new LocalStrategy({'usernameField':_0x8d1a('0x19'),'passwordField':'password'},function(_0xd54ab1,_0x54dffc,_0x528672){return ActiveDirectoryAuthenticate(db['User'],_0xd54ab1,_0x54dffc,_0x528672);}));
\ No newline at end of file
+var _0x8332=['domain','add','minutes','getLicense','status','send','login','authenticate','ad-login','Something\x20went\x20wrong,\x20please\x20try\x20again.','signToken','json','use','User','passport','passport-local','Strategy','activedirectory2','bluebird','util','../../mysqldb','../../components/auth/service','../../config/utils','../../config/environment','../../config/logger','activedirectory','undefined','url','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','adSsoEnabled','blockDuration','Error\x20authenticate\x20%s:\x20Active\x20Directory\x20not\x20enabled','password','salt','role','disabled','blocked','online','admin','user','agent','then','name'];(function(_0x2745d7,_0x23b55a){var _0x537ad2=function(_0x396ae4){while(--_0x396ae4){_0x2745d7['push'](_0x2745d7['shift']());}};_0x537ad2(++_0x23b55a);}(_0x8332,0x134));var _0x2833=function(_0x3b42ca,_0x9d516c){_0x3b42ca=_0x3b42ca-0x0;var _0x116219=_0x8332[_0x3b42ca];return _0x116219;};'use strict';var passport=require(_0x2833('0x0'));var LocalStrategy=require(_0x2833('0x1'))[_0x2833('0x2')];var moment=require('moment');var ActiveDirectory=require(_0x2833('0x3'));var BPromise=require(_0x2833('0x4'));var util=require(_0x2833('0x5'));var db=require(_0x2833('0x6'))['db'];var authService=require(_0x2833('0x7'));var utils=require(_0x2833('0x8'));var config=require(_0x2833('0x9'));var logger=require(_0x2833('0xa'))('api');function isActiveDirectoryConfigured(_0x75c69b){var _0x4494d2=![];if(typeof _0x75c69b[_0x2833('0xb')]!==_0x2833('0xc')){_0x4494d2=_0x75c69b[_0x2833('0xb')]['baseDN']&&_0x75c69b[_0x2833('0xb')][_0x2833('0xd')]&&_0x75c69b[_0x2833('0xb')]['domain'];}return _0x4494d2;}function adAuthenticate(_0x59c9f4,_0x388712,_0x271235){return new BPromise(function(_0x1bed10,_0x455d49){try{var _0x43ef2b=new ActiveDirectory(_0x59c9f4);_0x43ef2b['authenticate'](_0x388712,_0x271235,function(_0x14db43,_0x55dbe0){if(_0x14db43){logger[_0x2833('0xe')]('Error\x20authenticate\x20%s:\x20%s',_0x388712,util[_0x2833('0xf')](_0x14db43,{'showHidden':![],'depth':null}));_0x455d49(_0x2833('0x10'));}else if(!_0x55dbe0){logger[_0x2833('0xe')](_0x2833('0x11'),_0x388712);_0x455d49(_0x2833('0x10'));}else{_0x1bed10(_0x55dbe0);}});}catch(_0x104e2b){_0x455d49(_0x104e2b);}});}function ActiveDirectoryAuthenticate(_0x55cde6,_0x392d1d,_0x497c5f,_0x426c14){var _0x47731c,_0xcd6845;if(!isActiveDirectoryConfigured(config)){logger[_0x2833('0xe')](_0x2833('0x12'),_0x392d1d);return _0x426c14(null,![],{'message':_0x2833('0x10')});}return db[_0x2833('0x13')][_0x2833('0x14')]({'where':{'id':0x1},'attributes':[_0x2833('0x15'),_0x2833('0x16')],'raw':!![]})['then'](function(_0x33c3c8){_0x47731c=_0x33c3c8;if(!_0x47731c[_0x2833('0x15')]){logger[_0x2833('0xe')](_0x2833('0x17'),_0x392d1d);throw new Error(_0x2833('0x10'));}return _0x55cde6[_0x2833('0x14')]({'attributes':['id','name',_0x2833('0x18'),_0x2833('0x19'),_0x2833('0x1a'),_0x2833('0x1b'),_0x2833('0x1c'),'blockedAt',_0x2833('0x1d')],'where':{'name':_0x392d1d,'role':{'$or':[_0x2833('0x1e'),_0x2833('0x1f'),_0x2833('0x20')]},'adSsoEnabled':!![]}});})[_0x2833('0x21')](function(_0x3a7d8b){if(!_0x3a7d8b||_0x3a7d8b&&_0x3a7d8b[_0x2833('0x22')]!==_0x392d1d){throw new Error('Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.');}_0xcd6845=_0x3a7d8b;var _0x3a12e1=_0xcd6845[_0x2833('0x22')]+'@'+config[_0x2833('0xb')][_0x2833('0x23')];return adAuthenticate(config[_0x2833('0xb')],_0x3a12e1,_0x497c5f);})[_0x2833('0x21')](function(_0x28d335){if(_0xcd6845[_0x2833('0x1b')]){throw new Error(_0x2833('0x10'));}if(_0x47731c[_0x2833('0x16')]>0x0){if(_0xcd6845[_0x2833('0x1c')]){if(moment(_0xcd6845['blockedAt'])[_0x2833('0x24')](_0x47731c[_0x2833('0x16')],_0x2833('0x25'))>moment()){throw new Error('Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.');}return utils['clearBlockUser'](_0xcd6845,0x0,![],null)['then'](function(){return utils[_0x2833('0x26')](_0xcd6845);})[_0x2833('0x21')](function(){return _0x426c14(null,_0xcd6845);});}else{return utils[_0x2833('0x26')](_0xcd6845)[_0x2833('0x21')](function(){return _0x426c14(null,_0xcd6845);});}}else{return utils[_0x2833('0x26')](_0xcd6845)[_0x2833('0x21')](function(){return _0x426c14(null,_0xcd6845);});}})['catch'](function(_0x43de77){return _0x426c14(null,![],_0x43de77);});}function handleError(_0x44ca2d,_0x5a739c,_0x16fbf8){return _0x44ca2d[_0x2833('0x27')](_0x5a739c||0x1f4)[_0x2833('0x28')]({'message':_0x16fbf8?_0x16fbf8['message']||_0x16fbf8:''});}exports[_0x2833('0x29')]=function(_0x5cf629,_0x597b66,_0xc37c12){passport[_0x2833('0x2a')](_0x2833('0x2b'),function(_0xa998e8,_0x3eba13,_0x4e4c6c){var _0x4bc466=_0xa998e8||_0x4e4c6c;if(_0x4bc466){return handleError(_0x597b66,0x191,_0x4bc466);}if(!_0x3eba13){return handleError(_0x597b66,0x194,{'message':_0x2833('0x2c')});}else{var _0x3ba4d7={'payload':{'id':_0x3eba13['id'],'role':_0x3eba13['role']},'options':{'expiresIn':0x15180}};return authService[_0x2833('0x2d')](_0x3ba4d7)['then'](function(_0x5f415e){_0x597b66[_0x2833('0x2e')]({'id':_0x3eba13['id'],'token':_0x5f415e,'statusCall':'','isAlreadyLogged':_0x3eba13[_0x2833('0x1d')]});});}})(_0x5cf629,_0x597b66,_0xc37c12);};passport[_0x2833('0x2f')](_0x2833('0x2b'),new LocalStrategy({'usernameField':'name','passwordField':_0x2833('0x18')},function(_0x56b803,_0x285cfe,_0x5093f8){return ActiveDirectoryAuthenticate(db[_0x2833('0x30')],_0x56b803,_0x285cfe,_0x5093f8);}));
\ No newline at end of file