Built motion from commit 0900f080.|2.5.45
[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 _0x4b46=['status','json','Maximum\x20%s\x20limit\x20have\x20been\x20reached','catch','users','User','admin','isUserLimit','util','../../mysqldb','../../config/environment','data1','license','split','aes-256-ctr','format','%s:%s:%s','base64','utf8','final','parse','hasOwnProperty','use','then'];(function(_0x2160a9,_0x3cbd9e){var _0xa88cf7=function(_0x51ab6f){while(--_0x51ab6f){_0x2160a9['push'](_0x2160a9['shift']());}};_0xa88cf7(++_0x3cbd9e);}(_0x4b46,0xf8));var _0x64b4=function(_0x2d0807,_0x392f02){_0x2d0807=_0x2d0807-0x0;var _0x308e66=_0x4b46[_0x2d0807];return _0x308e66;};'use strict';var crypto=require('crypto');var util=require(_0x64b4('0x0'));var compose=require('composable-middleware');var db=require(_0x64b4('0x1'))['db'];var config=require(_0x64b4('0x2'));function getValueFromLicense(_0x2cadc4,_0x38a7db){if(_0x2cadc4&&_0x38a7db){if(_0x38a7db[_0x64b4('0x3')]&&_0x38a7db[_0x64b4('0x4')]){var _0x1c6e24=_0x38a7db[_0x64b4('0x3')];var _0x340f77=_0x38a7db[_0x64b4('0x4')];var _0x4838fc=_0x1c6e24[_0x64b4('0x5')]('-')[0x4];var _0x43457d=_0x1c6e24[_0x64b4('0x5')]('-')[0x0];var _0x4e7a87=crypto['createDecipher'](_0x64b4('0x6'),util[_0x64b4('0x7')](_0x64b4('0x8'),_0x4838fc,_0x1c6e24,_0x43457d));var _0x5cfdee=_0x4e7a87['update'](_0x340f77,_0x64b4('0x9'),_0x64b4('0xa'));_0x5cfdee+=_0x4e7a87[_0x64b4('0xb')]('utf8');var _0x47b4b3=JSON[_0x64b4('0xc')](_0x5cfdee);return _0x47b4b3[_0x64b4('0xd')](_0x2cadc4)?_0x47b4b3[_0x2cadc4]:null;}}return null;}function isLimit(_0x545c4b,_0x57e029,_0x5c1066,_0xa80366){var _0x3cc7ce=_0x57e029;return compose()[_0x64b4('0xe')](function(_0x10ec03,_0x5c328d,_0x199303){return db['License']['findOne']({'where':{'id':0x1},'raw':!![]})['then'](function(_0x22d5fb){var _0x22f079=getValueFromLicense(_0x545c4b,_0x22d5fb);return _0x22f079?_0x22f079:_0x3cc7ce;})[_0x64b4('0xf')](function(_0x9ac58a){_0x3cc7ce=_0x9ac58a;return _0x5c1066['count'](_0xa80366);})['then'](function(_0x4db728){if(_0x4db728>=_0x3cc7ce){return _0x5c328d[_0x64b4('0x10')](0x193)[_0x64b4('0x11')]({'message':util[_0x64b4('0x7')](_0x64b4('0x12'),_0x545c4b)});}_0x199303();})[_0x64b4('0x13')](function(_0x53d21a){_0x199303(_0x53d21a);});});}function isUserLimit(){return isLimit(_0x64b4('0x14'),0x1,db[_0x64b4('0x15')],{'where':{'$or':[{'role':_0x64b4('0x16')},{'role':'user'}]}});}exports[_0x64b4('0x17')]=isUserLimit;