ba302f61bca2ca038b71026895c381916e0149f3
[motion2.git] / server / components / license / service.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0x3b28=['status','json','catch','users','User','admin','user','crypto','util','../../mysqldb','../../config/environment','license','data1','split','aes-256-ctr','format','%s:%s:%s','update','utf8','final','parse','use','License','then'];(function(_0x29cc95,_0x7d586d){var _0x47ffcd=function(_0x3803ea){while(--_0x3803ea){_0x29cc95['push'](_0x29cc95['shift']());}};_0x47ffcd(++_0x7d586d);}(_0x3b28,0x19f));var _0x83b2=function(_0x129ba7,_0x103a94){_0x129ba7=_0x129ba7-0x0;var _0x46a696=_0x3b28[_0x129ba7];return _0x46a696;};'use strict';var crypto=require(_0x83b2('0x0'));var util=require(_0x83b2('0x1'));var compose=require('composable-middleware');var db=require(_0x83b2('0x2'))['db'];var config=require(_0x83b2('0x3'));function getValueFromLicense(_0x230fab,_0x8a1060){if(_0x230fab&&_0x8a1060){if(_0x8a1060['data1']&&_0x8a1060[_0x83b2('0x4')]){var _0x3b4d9d=_0x8a1060[_0x83b2('0x5')];var _0x77f2b0=_0x8a1060['license'];var _0xe152f7=_0x3b4d9d[_0x83b2('0x6')]('-')[0x4];var _0x17ac06=_0x3b4d9d[_0x83b2('0x6')]('-')[0x0];var _0x3b23b2=crypto['createDecipher'](_0x83b2('0x7'),util[_0x83b2('0x8')](_0x83b2('0x9'),_0xe152f7,_0x3b4d9d,_0x17ac06));var _0x1653e7=_0x3b23b2[_0x83b2('0xa')](_0x77f2b0,'base64',_0x83b2('0xb'));_0x1653e7+=_0x3b23b2[_0x83b2('0xc')](_0x83b2('0xb'));var _0x5270a9=JSON[_0x83b2('0xd')](_0x1653e7);return _0x5270a9['hasOwnProperty'](_0x230fab)?_0x5270a9[_0x230fab]:null;}}return null;}function isLimit(_0x4a3f57,_0x15231c,_0x570724,_0x54ecaa){var _0x560a44=_0x15231c;return compose()[_0x83b2('0xe')](function(_0x575cfc,_0x3571d5,_0x105333){return db[_0x83b2('0xf')]['findOne']({'where':{'id':0x1},'raw':!![]})[_0x83b2('0x10')](function(_0x246ff1){var _0x19ad09=getValueFromLicense(_0x4a3f57,_0x246ff1);return _0x19ad09?_0x19ad09:_0x560a44;})[_0x83b2('0x10')](function(_0x136d8e){_0x560a44=_0x136d8e;return _0x570724['count'](_0x54ecaa);})[_0x83b2('0x10')](function(_0x4184a7){if(_0x4184a7>=_0x560a44){return _0x3571d5[_0x83b2('0x11')](0x193)[_0x83b2('0x12')]({'message':util[_0x83b2('0x8')]('Maximum\x20%s\x20limit\x20have\x20been\x20reached',_0x4a3f57)});}_0x105333();})[_0x83b2('0x13')](function(_0x13632d){_0x105333(_0x13632d);});});}function isUserLimit(){return isLimit(_0x83b2('0x14'),0x1,db[_0x83b2('0x15')],{'where':{'$or':[{'role':_0x83b2('0x16')},{'role':_0x83b2('0x17')}]}});}exports['isUserLimit']=isUserLimit;