0fc17a6520cb32f5b9bbdc63f953699185d57c13
[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 _0xac47=['count','status','json','Maximum\x20%s\x20limit\x20have\x20been\x20reached','users','admin','user','isUserLimit','util','composable-middleware','../../mysqldb','../../config/environment','data1','license','split','aes-256-ctr','format','update','base64','utf8','parse','use','then'];(function(_0x41a45d,_0x1e61c3){var _0x24b1d6=function(_0x5d1f8b){while(--_0x5d1f8b){_0x41a45d['push'](_0x41a45d['shift']());}};_0x24b1d6(++_0x1e61c3);}(_0xac47,0x11c));var _0x7ac4=function(_0x5a7d41,_0x4447e2){_0x5a7d41=_0x5a7d41-0x0;var _0x98d8fa=_0xac47[_0x5a7d41];return _0x98d8fa;};'use strict';var crypto=require('crypto');var util=require(_0x7ac4('0x0'));var compose=require(_0x7ac4('0x1'));var db=require(_0x7ac4('0x2'))['db'];var config=require(_0x7ac4('0x3'));function getValueFromLicense(_0x550e08,_0x55336a){if(_0x550e08&&_0x55336a){if(_0x55336a[_0x7ac4('0x4')]&&_0x55336a[_0x7ac4('0x5')]){var _0x10e258=_0x55336a[_0x7ac4('0x4')];var _0x1b6d5c=_0x55336a[_0x7ac4('0x5')];var _0x19f29b=_0x10e258[_0x7ac4('0x6')]('-')[0x4];var _0x361523=_0x10e258['split']('-')[0x0];var _0x48f935=crypto['createDecipher'](_0x7ac4('0x7'),util[_0x7ac4('0x8')]('%s:%s:%s',_0x19f29b,_0x10e258,_0x361523));var _0x43f353=_0x48f935[_0x7ac4('0x9')](_0x1b6d5c,_0x7ac4('0xa'),'utf8');_0x43f353+=_0x48f935['final'](_0x7ac4('0xb'));var _0x3a0d2b=JSON[_0x7ac4('0xc')](_0x43f353);return _0x3a0d2b['hasOwnProperty'](_0x550e08)?_0x3a0d2b[_0x550e08]:null;}}return null;}function isLimit(_0x1af264,_0x16c5c8,_0x596af5,_0x464704){var _0x34f8a8=_0x16c5c8;return compose()[_0x7ac4('0xd')](function(_0x478765,_0x179ebc,_0x551f59){return db['License']['findOne']({'where':{'id':0x1},'raw':!![]})[_0x7ac4('0xe')](function(_0x55bafe){var _0x1b1bbc=getValueFromLicense(_0x1af264,_0x55bafe);return _0x1b1bbc?_0x1b1bbc:_0x34f8a8;})[_0x7ac4('0xe')](function(_0x107df1){_0x34f8a8=_0x107df1;return _0x596af5[_0x7ac4('0xf')](_0x464704);})[_0x7ac4('0xe')](function(_0x3efa56){if(_0x3efa56>=_0x34f8a8){return _0x179ebc[_0x7ac4('0x10')](0x193)[_0x7ac4('0x11')]({'message':util[_0x7ac4('0x8')](_0x7ac4('0x12'),_0x1af264)});}_0x551f59();})['catch'](function(_0x291546){_0x551f59(_0x291546);});});}function isUserLimit(){return isLimit(_0x7ac4('0x13'),0x1,db['User'],{'where':{'$or':[{'role':_0x7ac4('0x14')},{'role':_0x7ac4('0x15')}]}});}exports[_0x7ac4('0x16')]=isUserLimit;