f703ec84c64173fc382662f73c8c31132377c449
[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 _0x138f=['crypto','util','../../mysqldb','../../config/environment','data1','license','split','createDecipher','aes-256-ctr','format','update','base64','utf8','final','parse','hasOwnProperty','use','then','json','Maximum\x20%s\x20limit\x20have\x20been\x20reached','catch','User','admin','user','isUserLimit'];(function(_0x3799b2,_0x3728da){var _0x1d7571=function(_0x4993b3){while(--_0x4993b3){_0x3799b2['push'](_0x3799b2['shift']());}};_0x1d7571(++_0x3728da);}(_0x138f,0x113));var _0xf138=function(_0x1accf6,_0x4a9854){_0x1accf6=_0x1accf6-0x0;var _0x24e446=_0x138f[_0x1accf6];return _0x24e446;};'use strict';var crypto=require(_0xf138('0x0'));var util=require(_0xf138('0x1'));var compose=require('composable-middleware');var db=require(_0xf138('0x2'))['db'];var config=require(_0xf138('0x3'));function getValueFromLicense(_0x20a792,_0x979b8c){if(_0x20a792&&_0x979b8c){if(_0x979b8c[_0xf138('0x4')]&&_0x979b8c[_0xf138('0x5')]){var _0x5c507=_0x979b8c['data1'];var _0x46296c=_0x979b8c[_0xf138('0x5')];var _0x59fc0b=_0x5c507[_0xf138('0x6')]('-')[0x4];var _0x1dbf9d=_0x5c507[_0xf138('0x6')]('-')[0x0];var _0x381330=crypto[_0xf138('0x7')](_0xf138('0x8'),util[_0xf138('0x9')]('%s:%s:%s',_0x59fc0b,_0x5c507,_0x1dbf9d));var _0x52f52b=_0x381330[_0xf138('0xa')](_0x46296c,_0xf138('0xb'),_0xf138('0xc'));_0x52f52b+=_0x381330[_0xf138('0xd')](_0xf138('0xc'));var _0x13c9e2=JSON[_0xf138('0xe')](_0x52f52b);return _0x13c9e2[_0xf138('0xf')](_0x20a792)?_0x13c9e2[_0x20a792]:null;}}return null;}function isLimit(_0x316cc9,_0x576a20,_0x2e2255,_0x4f82a1){var _0x1e684d=_0x576a20;return compose()[_0xf138('0x10')](function(_0x2704f3,_0x1dd2a9,_0x56b95a){return db['License']['findOne']({'where':{'id':0x1},'raw':!![]})[_0xf138('0x11')](function(_0x4d91b9){var _0x54f685=getValueFromLicense(_0x316cc9,_0x4d91b9);return _0x54f685?_0x54f685:_0x1e684d;})[_0xf138('0x11')](function(_0x8da97e){_0x1e684d=_0x8da97e;return _0x2e2255['count'](_0x4f82a1);})['then'](function(_0x1c3ceb){if(_0x1c3ceb>=_0x1e684d){return _0x1dd2a9['status'](0x193)[_0xf138('0x12')]({'message':util[_0xf138('0x9')](_0xf138('0x13'),_0x316cc9)});}_0x56b95a();})[_0xf138('0x14')](function(_0x4fb210){_0x56b95a(_0x4fb210);});});}function isUserLimit(){return isLimit('users',0x1,db[_0xf138('0x15')],{'where':{'$or':[{'role':_0xf138('0x16')},{'role':_0xf138('0x17')}]}});}exports[_0xf138('0x18')]=isUserLimit;