mirror of
https://github.com/ONLYOFFICE/server.git
synced 2026-04-07 14:04:35 +08:00
asc_coAuthV -> buildVersion
send version with auth
This commit is contained in:
@ -32,7 +32,7 @@
|
||||
|
||||
'use strict';
|
||||
|
||||
var constants = require('./constants');
|
||||
const constants = require('./constants');
|
||||
|
||||
function InputCommand(data) {
|
||||
if (data) {
|
||||
@ -634,7 +634,7 @@ function OutputMailMerge(mailMergeSendData) {
|
||||
this['message'] = mailMergeSendData.getMessage();
|
||||
this['subject'] = mailMergeSendData.getSubject();
|
||||
this['title'] = mailMergeSendData.getFileName();
|
||||
var mailFormat = mailMergeSendData.getMailFormat();
|
||||
const mailFormat = mailMergeSendData.getMailFormat();
|
||||
switch (mailFormat) {
|
||||
case constants.AVS_OFFICESTUDIO_FILE_OTHER_HTMLZIP :
|
||||
this['type'] = 0;
|
||||
@ -687,7 +687,7 @@ function OutputAction(type, userid) {
|
||||
this['type'] = type;
|
||||
this['userid'] = userid;
|
||||
}
|
||||
var c_oPublishType = {
|
||||
const c_oPublishType = {
|
||||
drop : 0,
|
||||
releaseLock : 1,
|
||||
participantsState : 2,
|
||||
@ -702,7 +702,7 @@ var c_oPublishType = {
|
||||
meta: 11,
|
||||
forceSave: 12
|
||||
};
|
||||
var c_oAscCsvDelimiter = {
|
||||
const c_oAscCsvDelimiter = {
|
||||
None: 0,
|
||||
Tab: 1,
|
||||
Semicolon: 2,
|
||||
@ -710,7 +710,7 @@ var c_oAscCsvDelimiter = {
|
||||
Comma: 4,
|
||||
Space: 5
|
||||
};
|
||||
var c_oAscEncodings = [
|
||||
const c_oAscEncodings = [
|
||||
[ 0, 28596, "ISO-8859-6", "Arabic (ISO 8859-6)" ],
|
||||
[ 1, 720, "DOS-720", "Arabic (OEM 720)" ],
|
||||
[ 2, 1256, "windows-1256", "Arabic (Windows)" ],
|
||||
@ -782,13 +782,13 @@ var c_oAscEncodings = [
|
||||
[ 50, 12000, "UTF-32", "Unicode (UTF-32)" ],
|
||||
[ 51, 12001, "UTF-32BE", "Unicode (UTF-32 Big Endian)" ]
|
||||
];
|
||||
var c_oAscEncodingsMap = {"437": 43, "720": 1, "737": 21, "775": 5, "850": 39, "852": 15, "855": 12, "857": 35, "858": 40, "860": 41, "861": 30, "862": 25, "863": 42, "865": 31, "866": 13, "869": 22, "874": 32, "932": 27, "936": 18, "949": 28, "950": 17, "1200": 48, "1201": 49, "1250": 16, "1251": 14, "1252": 44, "1253": 23, "1254": 36, "1255": 26, "1256": 2, "1257": 6, "1258": 45, "10007": 11, "12000": 50, "12001": 51, "20866": 9, "21866": 10, "28591": 37, "28592": 19, "28593": 33, "28594": 3, "28595": 8, "28596": 0, "28597": 20, "28598": 24, "28599": 34, "28603": 4, "28604": 7, "28605": 38, "51949": 29, "65000": 47, "65001": 46}
|
||||
var c_oAscCodePageUtf8 = 46;//65001
|
||||
var c_oAscUserAction = {
|
||||
const c_oAscEncodingsMap = {"437": 43, "720": 1, "737": 21, "775": 5, "850": 39, "852": 15, "855": 12, "857": 35, "858": 40, "860": 41, "861": 30, "862": 25, "863": 42, "865": 31, "866": 13, "869": 22, "874": 32, "932": 27, "936": 18, "949": 28, "950": 17, "1200": 48, "1201": 49, "1250": 16, "1251": 14, "1252": 44, "1253": 23, "1254": 36, "1255": 26, "1256": 2, "1257": 6, "1258": 45, "10007": 11, "12000": 50, "12001": 51, "20866": 9, "21866": 10, "28591": 37, "28592": 19, "28593": 33, "28594": 3, "28595": 8, "28596": 0, "28597": 20, "28598": 24, "28599": 34, "28603": 4, "28604": 7, "28605": 38, "51949": 29, "65000": 47, "65001": 46}
|
||||
const c_oAscCodePageUtf8 = 46;//65001
|
||||
const c_oAscUserAction = {
|
||||
Out: 0,
|
||||
In: 1
|
||||
};
|
||||
var c_oAscServerCommandErrors = {
|
||||
const c_oAscServerCommandErrors = {
|
||||
NoError: 0,
|
||||
DocumentIdError: 1,
|
||||
ParseError: 2,
|
||||
@ -798,7 +798,7 @@ var c_oAscServerCommandErrors = {
|
||||
Token: 6,
|
||||
TokenExpire: 7
|
||||
};
|
||||
var c_oAscForceSaveTypes = {
|
||||
const c_oAscForceSaveTypes = {
|
||||
Command: 0,
|
||||
Button: 1,
|
||||
Timeout: 2
|
||||
|
||||
@ -53,12 +53,12 @@ const redisKeyLicense = cfgRedisPrefix + ((constants.PACKAGE_TYPE_OS === oPackag
|
||||
exports.readLicense = function*() {
|
||||
const c_LR = constants.LICENSE_RESULT;
|
||||
const resMax = {count: 999999, type: c_LR.Success};
|
||||
var res = {count: 1, type: c_LR.Error, light: false, packageType: oPackageType, trial: false, branding: false};
|
||||
var checkFile = false;
|
||||
const res = {count: 1, type: c_LR.Error, light: false, packageType: oPackageType, trial: false, branding: false};
|
||||
let checkFile = false;
|
||||
try {
|
||||
var oFile = fs.readFileSync(configL.get('license_file')).toString();
|
||||
const oFile = fs.readFileSync(configL.get('license_file')).toString();
|
||||
checkFile = true;
|
||||
var oLicense = JSON.parse(oFile);
|
||||
const oLicense = JSON.parse(oFile);
|
||||
const sign = oLicense['signature'];
|
||||
delete oLicense['signature'];
|
||||
|
||||
@ -125,7 +125,7 @@ function* _getFileState() {
|
||||
return true;
|
||||
}
|
||||
|
||||
var now = new Date();
|
||||
let now = new Date();
|
||||
now.setMonth(now.getMonth() - 1);
|
||||
return (0 >= (now - new Date(val)));
|
||||
}
|
||||
|
||||
@ -72,96 +72,94 @@
|
||||
|
||||
'use strict';
|
||||
|
||||
var sockjs = require('sockjs');
|
||||
var _ = require('underscore');
|
||||
var https = require('https');
|
||||
var http = require('http');
|
||||
var url = require('url');
|
||||
const sockjs = require('sockjs');
|
||||
const _ = require('underscore');
|
||||
const https = require('https');
|
||||
const http = require('http');
|
||||
const url = require('url');
|
||||
const fs = require('fs');
|
||||
var cron = require('cron');
|
||||
var co = require('co');
|
||||
const cron = require('cron');
|
||||
const co = require('co');
|
||||
const jwt = require('jsonwebtoken');
|
||||
const jwa = require('jwa');
|
||||
const ms = require('ms');
|
||||
var storage = require('./../../Common/sources/storage-base');
|
||||
var logger = require('./../../Common/sources/logger');
|
||||
const storage = require('./../../Common/sources/storage-base');
|
||||
const logger = require('./../../Common/sources/logger');
|
||||
const constants = require('./../../Common/sources/constants');
|
||||
var utils = require('./../../Common/sources/utils');
|
||||
var commonDefines = require('./../../Common/sources/commondefines');
|
||||
var statsDClient = require('./../../Common/sources/statsdclient');
|
||||
const utils = require('./../../Common/sources/utils');
|
||||
const commonDefines = require('./../../Common/sources/commondefines');
|
||||
const statsDClient = require('./../../Common/sources/statsdclient');
|
||||
const configCommon = require('config');
|
||||
const config = configCommon.get('services.CoAuthoring');
|
||||
var sqlBase = require('./baseConnector');
|
||||
var canvasService = require('./canvasservice');
|
||||
var converterService = require('./converterservice');
|
||||
var taskResult = require('./taskresult');
|
||||
var redis = require(config.get('redis.name'));
|
||||
var pubsubRedis = require('./pubsubRedis');
|
||||
var pubsubService = require('./' + config.get('pubsub.name'));
|
||||
var queueService = require('./../../Common/sources/taskqueueRabbitMQ');
|
||||
var cfgSpellcheckerUrl = config.get('server.editor_settings_spellchecker_url');
|
||||
var cfgCallbackRequestTimeout = config.get('server.callbackRequestTimeout');
|
||||
const sqlBase = require('./baseConnector');
|
||||
const canvasService = require('./canvasservice');
|
||||
const converterService = require('./converterservice');
|
||||
const taskResult = require('./taskresult');
|
||||
const redis = require(config.get('redis.name'));
|
||||
const pubsubRedis = require('./pubsubRedis');
|
||||
const pubsubService = require('./' + config.get('pubsub.name'));
|
||||
const queueService = require('./../../Common/sources/taskqueueRabbitMQ');
|
||||
const cfgSpellcheckerUrl = config.get('server.editor_settings_spellchecker_url');
|
||||
const cfgCallbackRequestTimeout = config.get('server.callbackRequestTimeout');
|
||||
//The waiting time to document assembly when all out(not 0 in case of F5 in the browser)
|
||||
var cfgAscSaveTimeOutDelay = config.get('server.savetimeoutdelay');
|
||||
const cfgAscSaveTimeOutDelay = config.get('server.savetimeoutdelay');
|
||||
|
||||
var cfgPubSubMaxChanges = config.get('pubsub.maxChanges');
|
||||
const cfgPubSubMaxChanges = config.get('pubsub.maxChanges');
|
||||
|
||||
var cfgRedisPrefix = config.get('redis.prefix');
|
||||
var cfgExpSaveLock = config.get('expire.saveLock');
|
||||
var cfgExpPresence = config.get('expire.presence');
|
||||
var cfgExpLocks = config.get('expire.locks');
|
||||
var cfgExpChangeIndex = config.get('expire.changeindex');
|
||||
var cfgExpLockDoc = config.get('expire.lockDoc');
|
||||
var cfgExpMessage = config.get('expire.message');
|
||||
var cfgExpLastSave = config.get('expire.lastsave');
|
||||
var cfgExpForceSave = config.get('expire.forcesave');
|
||||
var cfgExpSaved = config.get('expire.saved');
|
||||
var cfgExpDocumentsCron = config.get('expire.documentsCron');
|
||||
var cfgExpSessionIdle = ms(config.get('expire.sessionidle'));
|
||||
var cfgExpSessionAbsolute = ms(config.get('expire.sessionabsolute'));
|
||||
var cfgExpSessionCloseCommand = ms(config.get('expire.sessionclosecommand'));
|
||||
var cfgSockjsUrl = config.get('server.sockjsUrl');
|
||||
var cfgTokenEnableBrowser = config.get('token.enable.browser');
|
||||
var cfgTokenEnableRequestInbox = config.get('token.enable.request.inbox');
|
||||
var cfgTokenEnableRequestOutbox = config.get('token.enable.request.outbox');
|
||||
var cfgTokenSessionAlgorithm = config.get('token.session.algorithm');
|
||||
var cfgTokenSessionExpires = ms(config.get('token.session.expires'));
|
||||
var cfgTokenInboxHeader = config.get('token.inbox.header');
|
||||
var cfgTokenInboxPrefix = config.get('token.inbox.prefix');
|
||||
var cfgSecretSession = config.get('secret.session');
|
||||
var cfgForceSaveTimeout = ms(config.get('forcesave.timeout'));
|
||||
var cfgForceSaveMinExpiration = ms(config.get('forcesave.minRetentionPeriod'));
|
||||
var cfgQueueRetentionPeriod = configCommon.get('queue.retentionPeriod');
|
||||
const cfgRedisPrefix = config.get('redis.prefix');
|
||||
const cfgExpSaveLock = config.get('expire.saveLock');
|
||||
const cfgExpPresence = config.get('expire.presence');
|
||||
const cfgExpLocks = config.get('expire.locks');
|
||||
const cfgExpChangeIndex = config.get('expire.changeindex');
|
||||
const cfgExpLockDoc = config.get('expire.lockDoc');
|
||||
const cfgExpMessage = config.get('expire.message');
|
||||
const cfgExpLastSave = config.get('expire.lastsave');
|
||||
const cfgExpForceSave = config.get('expire.forcesave');
|
||||
const cfgExpSaved = config.get('expire.saved');
|
||||
const cfgExpDocumentsCron = config.get('expire.documentsCron');
|
||||
const cfgExpSessionIdle = ms(config.get('expire.sessionidle'));
|
||||
const cfgExpSessionAbsolute = ms(config.get('expire.sessionabsolute'));
|
||||
const cfgExpSessionCloseCommand = ms(config.get('expire.sessionclosecommand'));
|
||||
const cfgSockjsUrl = config.get('server.sockjsUrl');
|
||||
const cfgTokenEnableBrowser = config.get('token.enable.browser');
|
||||
const cfgTokenEnableRequestInbox = config.get('token.enable.request.inbox');
|
||||
const cfgTokenEnableRequestOutbox = config.get('token.enable.request.outbox');
|
||||
const cfgTokenSessionAlgorithm = config.get('token.session.algorithm');
|
||||
const cfgTokenSessionExpires = ms(config.get('token.session.expires'));
|
||||
const cfgTokenInboxHeader = config.get('token.inbox.header');
|
||||
const cfgTokenInboxPrefix = config.get('token.inbox.prefix');
|
||||
const cfgSecretSession = config.get('secret.session');
|
||||
const cfgForceSaveTimeout = ms(config.get('forcesave.timeout'));
|
||||
const cfgForceSaveMinExpiration = ms(config.get('forcesave.minRetentionPeriod'));
|
||||
const cfgQueueRetentionPeriod = configCommon.get('queue.retentionPeriod');
|
||||
|
||||
var redisKeySaveLock = cfgRedisPrefix + constants.REDIS_KEY_SAVE_LOCK;
|
||||
var redisKeyPresenceHash = cfgRedisPrefix + constants.REDIS_KEY_PRESENCE_HASH;
|
||||
var redisKeyPresenceSet = cfgRedisPrefix + constants.REDIS_KEY_PRESENCE_SET;
|
||||
var redisKeyLocks = cfgRedisPrefix + constants.REDIS_KEY_LOCKS;
|
||||
var redisKeyChangeIndex = cfgRedisPrefix + constants.REDIS_KEY_CHANGES_INDEX;
|
||||
var redisKeyLockDoc = cfgRedisPrefix + constants.REDIS_KEY_LOCK_DOCUMENT;
|
||||
var redisKeyMessage = cfgRedisPrefix + constants.REDIS_KEY_MESSAGE;
|
||||
var redisKeyDocuments = cfgRedisPrefix + constants.REDIS_KEY_DOCUMENTS;
|
||||
var redisKeyLastSave = cfgRedisPrefix + constants.REDIS_KEY_LAST_SAVE;
|
||||
var redisKeyForceSave = cfgRedisPrefix + constants.REDIS_KEY_FORCE_SAVE;
|
||||
var redisKeyForceSaveTimeout = cfgRedisPrefix + constants.REDIS_KEY_FORCE_SAVE_TIMEOUT;
|
||||
var redisKeySaved = cfgRedisPrefix + constants.REDIS_KEY_SAVED;
|
||||
const redisKeySaveLock = cfgRedisPrefix + constants.REDIS_KEY_SAVE_LOCK;
|
||||
const redisKeyPresenceHash = cfgRedisPrefix + constants.REDIS_KEY_PRESENCE_HASH;
|
||||
const redisKeyPresenceSet = cfgRedisPrefix + constants.REDIS_KEY_PRESENCE_SET;
|
||||
const redisKeyLocks = cfgRedisPrefix + constants.REDIS_KEY_LOCKS;
|
||||
const redisKeyChangeIndex = cfgRedisPrefix + constants.REDIS_KEY_CHANGES_INDEX;
|
||||
const redisKeyLockDoc = cfgRedisPrefix + constants.REDIS_KEY_LOCK_DOCUMENT;
|
||||
const redisKeyMessage = cfgRedisPrefix + constants.REDIS_KEY_MESSAGE;
|
||||
const redisKeyDocuments = cfgRedisPrefix + constants.REDIS_KEY_DOCUMENTS;
|
||||
const redisKeyLastSave = cfgRedisPrefix + constants.REDIS_KEY_LAST_SAVE;
|
||||
const redisKeyForceSave = cfgRedisPrefix + constants.REDIS_KEY_FORCE_SAVE;
|
||||
const redisKeyForceSaveTimeout = cfgRedisPrefix + constants.REDIS_KEY_FORCE_SAVE_TIMEOUT;
|
||||
const redisKeySaved = cfgRedisPrefix + constants.REDIS_KEY_SAVED;
|
||||
|
||||
var EditorTypes = {
|
||||
const EditorTypes = {
|
||||
document : 0,
|
||||
spreadsheet : 1,
|
||||
presentation : 2
|
||||
};
|
||||
|
||||
var defaultHttpPort = 80, defaultHttpsPort = 443; // Порты по умолчанию (для http и https)
|
||||
var connections = []; // Активные соединения
|
||||
var redisClient = pubsubRedis.getClientRedis();
|
||||
var pubsub;
|
||||
var queue;
|
||||
var clientStatsD = statsDClient.getClient();
|
||||
var licenseInfo = {type: constants.LICENSE_RESULT.Error, light: false, branding: false};
|
||||
var shutdownFlag = false;
|
||||
|
||||
var asc_coAuthV = '4.3.0'; // Версия сервера совместного редактирования
|
||||
const defaultHttpPort = 80, defaultHttpsPort = 443; // Порты по умолчанию (для http и https)
|
||||
const redisClient = pubsubRedis.getClientRedis();
|
||||
const clientStatsD = statsDClient.getClient();
|
||||
let connections = []; // Активные соединения
|
||||
let pubsub;
|
||||
let queue;
|
||||
let licenseInfo = {type: constants.LICENSE_RESULT.Error, light: false, branding: false};
|
||||
let shutdownFlag = false;
|
||||
|
||||
const FORCE_SAVE_EXPIRATION = Math.min(Math.max(cfgForceSaveTimeout, cfgForceSaveMinExpiration),
|
||||
cfgQueueRetentionPeriod * 1000);
|
||||
@ -192,7 +190,7 @@ DocumentChanges.prototype.concat = function(item) {
|
||||
this.arrChanges = this.arrChanges.concat(item);
|
||||
};
|
||||
|
||||
var c_oAscServerStatus = {
|
||||
const c_oAscServerStatus = {
|
||||
NotFound: 0,
|
||||
Editing: 1,
|
||||
MustSave: 2,
|
||||
@ -203,15 +201,15 @@ var c_oAscServerStatus = {
|
||||
CorruptedForce: 7
|
||||
};
|
||||
|
||||
var c_oAscChangeBase = {
|
||||
const c_oAscChangeBase = {
|
||||
No: 0,
|
||||
Delete: 1,
|
||||
All: 2
|
||||
};
|
||||
|
||||
var c_oAscLockTimeOutDelay = 500; // Время ожидания для сохранения, когда зажата база данных
|
||||
const c_oAscLockTimeOutDelay = 500; // Время ожидания для сохранения, когда зажата база данных
|
||||
|
||||
var c_oAscRecalcIndexTypes = {
|
||||
const c_oAscRecalcIndexTypes = {
|
||||
RecalcIndexAdd: 1,
|
||||
RecalcIndexRemove: 2
|
||||
};
|
||||
@ -220,7 +218,7 @@ var c_oAscRecalcIndexTypes = {
|
||||
* lock types
|
||||
* @const
|
||||
*/
|
||||
var c_oAscLockTypes = {
|
||||
const c_oAscLockTypes = {
|
||||
kLockTypeNone: 1, // никто не залочил данный объект
|
||||
kLockTypeMine: 2, // данный объект залочен текущим пользователем
|
||||
kLockTypeOther: 3, // данный объект залочен другим(не текущим) пользователем
|
||||
@ -228,12 +226,12 @@ var c_oAscLockTypes = {
|
||||
kLockTypeOther3: 5 // данный объект был залочен (обновления пришли) и снова стал залочен
|
||||
};
|
||||
|
||||
var c_oAscLockTypeElem = {
|
||||
const c_oAscLockTypeElem = {
|
||||
Range: 1,
|
||||
Object: 2,
|
||||
Sheet: 3
|
||||
};
|
||||
var c_oAscLockTypeElemSubType = {
|
||||
const c_oAscLockTypeElemSubType = {
|
||||
DeleteColumns: 1,
|
||||
InsertColumns: 2,
|
||||
DeleteRows: 3,
|
||||
@ -241,7 +239,7 @@ var c_oAscLockTypeElemSubType = {
|
||||
ChangeProperties: 5
|
||||
};
|
||||
|
||||
var c_oAscLockTypeElemPresentation = {
|
||||
const c_oAscLockTypeElemPresentation = {
|
||||
Object: 1,
|
||||
Slide: 2,
|
||||
Presentation: 3
|
||||
@ -1001,7 +999,6 @@ function checkJwtPayloadHash(docId, hash, body, token) {
|
||||
return res;
|
||||
}
|
||||
|
||||
exports.version = asc_coAuthV;
|
||||
exports.c_oAscServerStatus = c_oAscServerStatus;
|
||||
exports.sendData = sendData;
|
||||
exports.parseUrl = parseUrl;
|
||||
@ -1682,12 +1679,6 @@ exports.install = function(server, callbackFunction) {
|
||||
}
|
||||
|
||||
function* auth(conn, data) {
|
||||
// Проверка версий
|
||||
if (data.version !== asc_coAuthV) {
|
||||
sendFileError(conn, 'Old Version Sdk');
|
||||
return;
|
||||
}
|
||||
|
||||
//TODO: Do authorization etc. check md5 or query db
|
||||
if (data.token && data.user) {
|
||||
var docId = data.docid;
|
||||
@ -1913,20 +1904,21 @@ exports.install = function(server, callbackFunction) {
|
||||
}
|
||||
|
||||
function* sendAuthInfo(objChangesDocument, changesIndex, conn, participantsMap) {
|
||||
var docId = conn.docId;
|
||||
var docLock;
|
||||
const docId = conn.docId;
|
||||
let docLock;
|
||||
if(EditorTypes.document == conn.editorType){
|
||||
docLock = {};
|
||||
var allLocks = yield* getAllLocks(docId);
|
||||
for(var i = 0 ; i < allLocks.length; ++i) {
|
||||
var elem = allLocks[i];
|
||||
docLock[elem.block] =elem;
|
||||
let elem;
|
||||
const allLocks = yield* getAllLocks(docId);
|
||||
for(let i = 0 ; i < allLocks.length; ++i) {
|
||||
elem = allLocks[i];
|
||||
docLock[elem.block] = elem;
|
||||
}
|
||||
} else {
|
||||
docLock = yield* getAllLocks(docId);
|
||||
}
|
||||
var allMessages = yield utils.promiseRedis(redisClient, redisClient.lrange, redisKeyMessage + docId, 0, -1);
|
||||
var allMessagesParsed = undefined;
|
||||
const allMessages = yield utils.promiseRedis(redisClient, redisClient.lrange, redisKeyMessage + docId, 0, -1);
|
||||
let allMessagesParsed = undefined;
|
||||
if(allMessages && allMessages.length > 0) {
|
||||
allMessagesParsed = allMessages.map(function (val) {
|
||||
return JSON.parse(val);
|
||||
@ -1944,7 +1936,7 @@ exports.install = function(server, callbackFunction) {
|
||||
}
|
||||
}
|
||||
}
|
||||
var sendObject = {
|
||||
const sendObject = {
|
||||
type: 'auth',
|
||||
result: 1,
|
||||
sessionId: conn.sessionId,
|
||||
@ -1957,7 +1949,9 @@ exports.install = function(server, callbackFunction) {
|
||||
indexUser: conn.user.indexUser,
|
||||
jwt: cfgTokenEnableBrowser ? {token: fillJwtByConnection(conn), expires: cfgTokenSessionExpires} : undefined,
|
||||
g_cAscSpellCheckUrl: cfgSpellcheckerUrl,
|
||||
lastForceSaveTime: lastForceSaveTime
|
||||
lastForceSaveTime: lastForceSaveTime,
|
||||
buildVersion: commonDefines.buildVersion,
|
||||
buildNumber: commonDefines.buildNumber
|
||||
};
|
||||
sendData(conn, sendObject);//Or 0 if fails
|
||||
}
|
||||
@ -2360,12 +2354,12 @@ exports.install = function(server, callbackFunction) {
|
||||
return co(function* () {
|
||||
try {
|
||||
const c_LR = constants.LICENSE_RESULT;
|
||||
var licenseType = licenseInfo.type;
|
||||
let licenseType = licenseInfo.type;
|
||||
if (constants.PACKAGE_TYPE_OS === licenseInfo.packageType && c_LR.Error === licenseType) {
|
||||
licenseType = c_LR.SuccessLimit;
|
||||
|
||||
var count = constants.LICENSE_CONNECTIONS;
|
||||
var cursor = '0', sum = 0, scanRes, tmp, length, i, users;
|
||||
const count = constants.LICENSE_CONNECTIONS;
|
||||
let cursor = '0', sum = 0, scanRes, tmp, length, i, users;
|
||||
while (true) {
|
||||
scanRes = yield utils.promiseRedis(redisClient, redisClient.scan, cursor, 'MATCH', redisKeyPresenceHash + '*');
|
||||
tmp = scanRes[1];
|
||||
@ -2393,10 +2387,10 @@ exports.install = function(server, callbackFunction) {
|
||||
}
|
||||
}
|
||||
|
||||
var rights = constants.RIGHTS.Edit;
|
||||
let rights = constants.RIGHTS.Edit;
|
||||
if (config.get('server.edit_singleton')) {
|
||||
// ToDo docId from url ?
|
||||
var docIdParsed = urlParse.exec(conn.url);
|
||||
const docIdParsed = urlParse.exec(conn.url);
|
||||
if (docIdParsed && 1 < docIdParsed.length) {
|
||||
const participantsMap = yield* getParticipantMap(docIdParsed[1]);
|
||||
for (let i = 0; i < participantsMap.length; ++i) {
|
||||
@ -2417,6 +2411,7 @@ exports.install = function(server, callbackFunction) {
|
||||
trial: constants.PACKAGE_TYPE_OS === licenseInfo.packageType ? false : licenseInfo.trial,
|
||||
rights: rights,
|
||||
buildVersion: commonDefines.buildVersion,
|
||||
buildNumber: commonDefines.buildNumber,
|
||||
branding: licenseInfo.branding
|
||||
}
|
||||
});
|
||||
@ -2673,11 +2668,11 @@ exports.setLicenseInfo = function(data) {
|
||||
// Команда с сервера (в частности teamlab)
|
||||
exports.commandFromServer = function (req, res) {
|
||||
return co(function* () {
|
||||
var result = commonDefines.c_oAscServerCommandErrors.NoError;
|
||||
var docId = 'commandFromServer';
|
||||
let result = commonDefines.c_oAscServerCommandErrors.NoError;
|
||||
let docId = 'commandFromServer';
|
||||
let version = undefined;
|
||||
try {
|
||||
var version = undefined;
|
||||
var params;
|
||||
let params;
|
||||
if (req.body && Buffer.isBuffer(req.body)) {
|
||||
params = JSON.parse(req.body.toString('utf8'));
|
||||
} else {
|
||||
@ -2685,7 +2680,7 @@ exports.commandFromServer = function (req, res) {
|
||||
}
|
||||
if (cfgTokenEnableRequestInbox) {
|
||||
result = commonDefines.c_oAscServerCommandErrors.Token;
|
||||
var checkJwtRes = checkJwtHeader(docId, req);
|
||||
const checkJwtRes = checkJwtHeader(docId, req);
|
||||
if (checkJwtRes) {
|
||||
if (checkJwtRes.decoded) {
|
||||
if (!utils.isEmptyObject(checkJwtRes.decoded.payload)) {
|
||||
@ -2715,7 +2710,7 @@ exports.commandFromServer = function (req, res) {
|
||||
switch (params.c) {
|
||||
case 'info':
|
||||
//If no files in the database means they have not been edited.
|
||||
var selectRes = yield taskResult.select(docId);
|
||||
const selectRes = yield taskResult.select(docId);
|
||||
if (selectRes.length > 0) {
|
||||
result = yield* bindEvents(docId, params.callback, utils.getBaseUrlByRequest(req), undefined, params.userdata);
|
||||
} else {
|
||||
@ -2726,7 +2721,7 @@ exports.commandFromServer = function (req, res) {
|
||||
if (params.userid) {
|
||||
yield* publish({type: commonDefines.c_oPublishType.drop, docId: docId, users: [params.userid], description: params.description});
|
||||
} else if (params.users) {
|
||||
var users = (typeof params.users === 'string') ? JSON.parse(params.users) : params.users;
|
||||
const users = (typeof params.users === 'string') ? JSON.parse(params.users) : params.users;
|
||||
yield* dropUsersFromDocument(docId, users);
|
||||
} else {
|
||||
result = commonDefines.c_oAscServerCommandErrors.UnknownCommand;
|
||||
@ -2766,9 +2761,9 @@ exports.commandFromServer = function (req, res) {
|
||||
logger.error('Error commandFromServer: docId = %s\r\n%s', docId, err.stack);
|
||||
} finally {
|
||||
//undefined value are excluded in JSON.stringify
|
||||
var output = JSON.stringify({'key': docId, 'error': result, 'version': version});
|
||||
const output = JSON.stringify({'key': docId, 'error': result, 'version': version});
|
||||
logger.debug('End commandFromServer: docId = %s %s', docId, output);
|
||||
var outputBuffer = new Buffer(output, 'utf8');
|
||||
const outputBuffer = new Buffer(output, 'utf8');
|
||||
res.setHeader('Content-Type', 'application/json');
|
||||
res.setHeader('Content-Length', outputBuffer.length);
|
||||
res.send(outputBuffer);
|
||||
|
||||
@ -129,6 +129,7 @@ if (cluster.isMaster) {
|
||||
const fileUploaderService = require('./fileuploaderservice');
|
||||
const constants = require('./../../Common/sources/constants');
|
||||
const utils = require('./../../Common/sources/utils');
|
||||
const commonDefines = require('./../../Common/sources/commondefines');
|
||||
const configStorage = configCommon.get('storage');
|
||||
const app = express();
|
||||
const server = http.createServer(app);
|
||||
@ -182,7 +183,8 @@ if (cluster.isMaster) {
|
||||
});
|
||||
|
||||
app.get('/index.html', (req, res) => {
|
||||
res.send('Server is functioning normally. Version: ' + docsCoServer.version);
|
||||
res.send('Server is functioning normally. Version: ' + commonDefines.buildVersion + '. Build: ' +
|
||||
commonDefines.buildNumber);
|
||||
});
|
||||
const rawFileParser = bodyParser.raw(
|
||||
{inflate: true, limit: config.get('server.limits_tempfile_upload'), type: '*/*'});
|
||||
|
||||
Reference in New Issue
Block a user