summaryrefslogtreecommitdiffstats
path: root/server/statistics.js
diff options
context:
space:
mode:
Diffstat (limited to 'server/statistics.js')
-rw-r--r--server/statistics.js138
1 files changed, 73 insertions, 65 deletions
diff --git a/server/statistics.js b/server/statistics.js
index 997fd86f..0ead840f 100644
--- a/server/statistics.js
+++ b/server/statistics.js
@@ -1,68 +1,76 @@
import { MongoInternals } from 'meteor/mongo';
-Meteor.methods({
- getStatistics() {
- const os = require('os');
- const pjson = require('/package.json');
- const statistics = {};
- let wekanVersion = pjson.version;
- wekanVersion = wekanVersion.replace('v', '');
- statistics.version = wekanVersion;
- statistics.os = {
- type: os.type(),
- platform: os.platform(),
- arch: os.arch(),
- release: os.release(),
- uptime: os.uptime(),
- loadavg: os.loadavg(),
- totalmem: os.totalmem(),
- freemem: os.freemem(),
- cpus: os.cpus(),
- };
- let nodeVersion = process.version;
- nodeVersion = nodeVersion.replace('v', '');
- statistics.process = {
- nodeVersion,
- pid: process.pid,
- uptime: process.uptime(),
- };
- // Remove beginning of Meteor release text METEOR@
- let meteorVersion = Meteor.release;
- meteorVersion = meteorVersion.replace('METEOR@', '');
- statistics.meteor = {
- meteorVersion,
- };
- // Thanks to RocketChat for MongoDB version detection !
- // https://github.com/RocketChat/Rocket.Chat/blob/develop/app/utils/server/functions/getMongoInfo.js
- let mongoVersion;
- let mongoStorageEngine;
- let mongoOplogEnabled;
- try {
- const { mongo } = MongoInternals.defaultRemoteCollectionDriver();
- oplogEnabled = Boolean(
- mongo._oplogHandle && mongo._oplogHandle.onOplogEntry,
- );
- const { version, storageEngine } = Promise.await(
- mongo.db.command({ serverStatus: 1 }),
- );
- mongoVersion = version;
- mongoStorageEngine = storageEngine.name;
- mongoOplogEnabled = oplogEnabled;
- } catch (e) {
- try {
- const { version } = Promise.await(mongo.db.command({ buildinfo: 1 }));
- mongoVersion = version;
- mongoStorageEngine = 'unknown';
- } catch (e) {
- mongoVersion = 'unknown';
- mongoStorageEngine = 'unknown';
+if (Meteor.isServer) {
+ Meteor.methods({
+ getStatistics() {
+ if (Meteor.user() && Meteor.user().isAdmin) {
+ const os = require('os');
+ const pjson = require('/package.json');
+ const statistics = {};
+ let wekanVersion = pjson.version;
+ wekanVersion = wekanVersion.replace('v', '');
+ statistics.version = wekanVersion;
+ statistics.os = {
+ type: os.type(),
+ platform: os.platform(),
+ arch: os.arch(),
+ release: os.release(),
+ uptime: os.uptime(),
+ loadavg: os.loadavg(),
+ totalmem: os.totalmem(),
+ freemem: os.freemem(),
+ cpus: os.cpus(),
+ };
+ let nodeVersion = process.version;
+ nodeVersion = nodeVersion.replace('v', '');
+ statistics.process = {
+ nodeVersion,
+ pid: process.pid,
+ uptime: process.uptime(),
+ };
+ // Remove beginning of Meteor release text METEOR@
+ let meteorVersion = Meteor.release;
+ meteorVersion = meteorVersion.replace('METEOR@', '');
+ statistics.meteor = {
+ meteorVersion,
+ };
+ // Thanks to RocketChat for MongoDB version detection !
+ // https://github.com/RocketChat/Rocket.Chat/blob/develop/app/utils/server/functions/getMongoInfo.js
+ let mongoVersion;
+ let mongoStorageEngine;
+ let mongoOplogEnabled;
+ try {
+ const { mongo } = MongoInternals.defaultRemoteCollectionDriver();
+ oplogEnabled = Boolean(
+ mongo._oplogHandle && mongo._oplogHandle.onOplogEntry,
+ );
+ const { version, storageEngine } = Promise.await(
+ mongo.db.command({ serverStatus: 1 }),
+ );
+ mongoVersion = version;
+ mongoStorageEngine = storageEngine.name;
+ mongoOplogEnabled = oplogEnabled;
+ } catch (e) {
+ try {
+ const { version } = Promise.await(
+ mongo.db.command({ buildinfo: 1 }),
+ );
+ mongoVersion = version;
+ mongoStorageEngine = 'unknown';
+ } catch (e) {
+ mongoVersion = 'unknown';
+ mongoStorageEngine = 'unknown';
+ }
+ }
+ statistics.mongo = {
+ mongoVersion,
+ mongoStorageEngine,
+ mongoOplogEnabled,
+ };
+ return statistics;
+ } else {
+ return false;
}
- }
- statistics.mongo = {
- mongoVersion,
- mongoStorageEngine,
- mongoOplogEnabled,
- };
- return statistics;
- },
-});
+ },
+ });
+}