Built motion from commit (unavailable).|2.0.73
[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 _0x8a59=['split','createDecipher','aes-256-ctr','format','%s:%s:%s','utf8','parse','use','License','findOne','count','then','status','json','Maximum\x20%s\x20limit\x20have\x20been\x20reached','catch','users','User','admin','user','isUserLimit','crypto','../../mysqldb','data1','license'];(function(_0x37e82b,_0x4400ec){var _0x940bf6=function(_0x314581){while(--_0x314581){_0x37e82b['push'](_0x37e82b['shift']());}};_0x940bf6(++_0x4400ec);}(_0x8a59,0x1a5));var _0x98a5=function(_0xf0bcac,_0x531755){_0xf0bcac=_0xf0bcac-0x0;var _0x4e4c65=_0x8a59[_0xf0bcac];return _0x4e4c65;};'use strict';var crypto=require(_0x98a5('0x0'));var util=require('util');var compose=require('composable-middleware');var db=require(_0x98a5('0x1'))['db'];var config=require('../../config/environment');function getValueFromLicense(_0x2c3563,_0x5d71ae){if(_0x2c3563&&_0x5d71ae){if(_0x5d71ae[_0x98a5('0x2')]&&_0x5d71ae['license']){var _0x2f881d=_0x5d71ae[_0x98a5('0x2')];var _0x37674d=_0x5d71ae[_0x98a5('0x3')];var _0x491545=_0x2f881d[_0x98a5('0x4')]('-')[0x4];var _0x49657c=_0x2f881d[_0x98a5('0x4')]('-')[0x0];var _0x51984c=crypto[_0x98a5('0x5')](_0x98a5('0x6'),util[_0x98a5('0x7')](_0x98a5('0x8'),_0x491545,_0x2f881d,_0x49657c));var _0x57722d=_0x51984c['update'](_0x37674d,'base64','utf8');_0x57722d+=_0x51984c['final'](_0x98a5('0x9'));var _0x333eb6=JSON[_0x98a5('0xa')](_0x57722d);return _0x333eb6['hasOwnProperty'](_0x2c3563)?_0x333eb6[_0x2c3563]:null;}}return null;}function isLimit(_0x2d6895,_0x5c5e63,_0x55dc31,_0x570b8d){var _0x32fed8=_0x5c5e63;return compose()[_0x98a5('0xb')](function(_0x3a8ec7,_0x461c39,_0x3eaab9){return db[_0x98a5('0xc')][_0x98a5('0xd')]({'where':{'id':0x1},'raw':!![]})['then'](function(_0x45aa99){var _0xbbf3e5=getValueFromLicense(_0x2d6895,_0x45aa99);return _0xbbf3e5?_0xbbf3e5:_0x32fed8;})['then'](function(_0x4e9e16){_0x32fed8=_0x4e9e16;return _0x55dc31[_0x98a5('0xe')](_0x570b8d);})[_0x98a5('0xf')](function(_0x169f52){if(_0x169f52>=_0x32fed8){return _0x461c39[_0x98a5('0x10')](0x193)[_0x98a5('0x11')]({'message':util[_0x98a5('0x7')](_0x98a5('0x12'),_0x2d6895)});}_0x3eaab9();})[_0x98a5('0x13')](function(_0xadefcd){_0x3eaab9(_0xadefcd);});});}function isUserLimit(){return isLimit(_0x98a5('0x14'),0x1,db[_0x98a5('0x15')],{'where':{'$or':[{'role':_0x98a5('0x16')},{'role':_0x98a5('0x17')}]}});}exports[_0x98a5('0x18')]=isUserLimit;