Built motion from commit 3e059bc2.|2.5.32
[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 _0x47cc=['User','admin','user','composable-middleware','../../mysqldb','../../config/environment','data1','license','split','createDecipher','aes-256-ctr','format','%s:%s:%s','base64','utf8','final','parse','hasOwnProperty','use','findOne','count','status','json','catch','users'];(function(_0x2ac399,_0x53b606){var _0x297258=function(_0x4b5a46){while(--_0x4b5a46){_0x2ac399['push'](_0x2ac399['shift']());}};_0x297258(++_0x53b606);}(_0x47cc,0xcb));var _0xc47c=function(_0x443b94,_0x2c43e3){_0x443b94=_0x443b94-0x0;var _0x791283=_0x47cc[_0x443b94];return _0x791283;};'use strict';var crypto=require('crypto');var util=require('util');var compose=require(_0xc47c('0x0'));var db=require(_0xc47c('0x1'))['db'];var config=require(_0xc47c('0x2'));function getValueFromLicense(_0x63c092,_0x39f236){if(_0x63c092&&_0x39f236){if(_0x39f236[_0xc47c('0x3')]&&_0x39f236[_0xc47c('0x4')]){var _0x2a2d38=_0x39f236[_0xc47c('0x3')];var _0x5f1565=_0x39f236[_0xc47c('0x4')];var _0x156e82=_0x2a2d38[_0xc47c('0x5')]('-')[0x4];var _0x51b46a=_0x2a2d38['split']('-')[0x0];var _0x4582c2=crypto[_0xc47c('0x6')](_0xc47c('0x7'),util[_0xc47c('0x8')](_0xc47c('0x9'),_0x156e82,_0x2a2d38,_0x51b46a));var _0x1aca02=_0x4582c2['update'](_0x5f1565,_0xc47c('0xa'),_0xc47c('0xb'));_0x1aca02+=_0x4582c2[_0xc47c('0xc')](_0xc47c('0xb'));var _0x4979c1=JSON[_0xc47c('0xd')](_0x1aca02);return _0x4979c1[_0xc47c('0xe')](_0x63c092)?_0x4979c1[_0x63c092]:null;}}return null;}function isLimit(_0x139c30,_0x3dc6a9,_0x4d3f88,_0x214ac5){var _0x390d59=_0x3dc6a9;return compose()[_0xc47c('0xf')](function(_0x182bf8,_0xfc313d,_0x334f38){return db['License'][_0xc47c('0x10')]({'where':{'id':0x1},'raw':!![]})['then'](function(_0x30d3a4){var _0xb2a303=getValueFromLicense(_0x139c30,_0x30d3a4);return _0xb2a303?_0xb2a303:_0x390d59;})['then'](function(_0x45db21){_0x390d59=_0x45db21;return _0x4d3f88[_0xc47c('0x11')](_0x214ac5);})['then'](function(_0x50d454){if(_0x50d454>=_0x390d59){return _0xfc313d[_0xc47c('0x12')](0x193)[_0xc47c('0x13')]({'message':util[_0xc47c('0x8')]('Maximum\x20%s\x20limit\x20have\x20been\x20reached',_0x139c30)});}_0x334f38();})[_0xc47c('0x14')](function(_0x568ccb){_0x334f38(_0x568ccb);});});}function isUserLimit(){return isLimit(_0xc47c('0x15'),0x1,db[_0xc47c('0x16')],{'where':{'$or':[{'role':_0xc47c('0x17')},{'role':_0xc47c('0x18')}]}});}exports['isUserLimit']=isUserLimit;