Do not duplicate app descriptor in app eventlog

This commit is contained in:
Johannes Zellner
2021-10-19 16:23:44 +02:00
parent dceb748fbe
commit 9e483a317d
2 changed files with 51 additions and 47 deletions

View File

@@ -3061,7 +3061,7 @@ angular.module('Application').service('Client', ['$http', '$interval', '$timeout
// ----------------------------------------------
// Eventlog helpers
// ----------------------------------------------
Client.prototype.eventLogDetails = function (eventLog) {
Client.prototype.eventLogDetails = function (eventLog, redactAppDescriptor) {
var ACTION_ACTIVATE = 'cloudron.activate';
var ACTION_PROVISION = 'cloudron.provision';
var ACTION_RESTORE = 'cloudron.restore';
@@ -3136,8 +3136,12 @@ angular.module('Application').service('Client', ['$http', '$interval', '$timeout
var errorMessage = data.errorMessage;
var details, app;
function appName(app) {
return (app.label || app.fqdn || app.location) + ' (' + app.manifest.title + ')';
function appName(pre, app) {
if (redactAppDescriptor) return '';
pre = pre ? (pre + ' ') : '';
return pre + (app.label || app.fqdn || app.location) + ' (' + app.manifest.title + ') ';
}
switch (eventLog.action) {
@@ -3159,81 +3163,81 @@ angular.module('Application').service('Client', ['$http', '$interval', '$timeout
};
if ('accessRestriction' in data) { // since it can be null
return 'Access restriction of ' + appName(app) + ' was changed';
return 'Access restriction ' + appName('of', app) + ' was changed';
} else if ('operators' in data) {
return 'Operators of ' + appName(app) + ' was changed';
return 'Operators ' + appName('of', app) + ' was changed';
} else if (data.label) {
return 'Label of ' + appName(app) + ' was set to ' + q(data.label);
return 'Label ' + appName('of', app) + ' was set to ' + q(data.label);
} else if (data.tags) {
return 'Tags of ' + appName(app) + ' was set to ' + q(data.tags.join(','));
return 'Tags ' + appName('of', app) + ' was set to ' + q(data.tags.join(','));
} else if (data.icon) {
return 'Icon of ' + appName(app) + ' was changed';
return 'Icon ' + appName('of', app) + ' was changed';
} else if (data.memoryLimit) {
return 'Memory limit of ' + appName(app) + ' was set to ' + data.memoryLimit;
return 'Memory limit ' + appName('of', app) + ' was set to ' + data.memoryLimit;
} else if (data.cpuShares) {
return 'CPU shares of ' + appName(app) + ' was set to ' + Math.round((data.cpuShares * 100)/1024) + '%';
return 'CPU shares ' + appName('of', app) + ' was set to ' + Math.round((data.cpuShares * 100)/1024) + '%';
} else if (data.env) {
return 'Env vars of ' + appName(app) + ' was changed';
return 'Env vars ' + appName('of', app) + ' was changed';
} else if ('debugMode' in data) { // since it can be null
if (data.debugMode) {
return appName(app) + ' was placed in repair mode';
return appName('', app) + ' was placed in repair mode';
} else {
return appName(app) + ' was taken out of repair mode';
return appName('', app) + ' was taken out of repair mode';
}
} else if ('enableBackup' in data) {
return 'Automatic backups of ' + appName(app) + ' was ' + (data.enableBackup ? 'enabled' : 'disabled');
return 'Automatic backups ' + appName('of', app) + ' were ' + (data.enableBackup ? 'enabled' : 'disabled');
} else if ('enableAutomaticUpdate' in data) {
return 'Automatic updates of ' + appName(app) + ' was ' + (data.enableAutomaticUpdate ? 'enabled' : 'disabled');
return 'Automatic updates ' + appName('of', app) + ' were ' + (data.enableAutomaticUpdate ? 'enabled' : 'disabled');
} else if ('reverseProxyConfig' in data) {
return 'Reverse proxy configuration of ' + appName(app) + ' was updated';
return 'Reverse proxy configuration ' + appName('of', app) + ' was updated';
} else if ('cert' in data) {
if (data.cert) {
return 'Custom certificate was set for ' + appName(app);
return 'Custom certificate was set ' + appName('for', app);
} else {
return 'Certificate of ' + appName(app) + ' was reset';
return 'Certificate ' + appName('of', app) + ' was reset';
}
} else if (data.location) {
if (data.fqdn !== data.app.fqdn) {
return 'Location of ' + appName(app) + ' was changed to ' + data.fqdn;
return 'Location ' + appName('of', app) + ' was changed to ' + data.fqdn;
} else if (!angular.equals(data.alternateDomains, data.app.alternateDomains)) {
var altFqdns = data.alternateDomains.map(function (a) { return a.fqdn; });
return 'Alternate domains of ' + appName(app) + ' was ' + (altFqdns.length ? 'set to ' + altFqdns.join(', ') : 'reset');
return 'Alternate domains ' + appName('of', app) + ' was ' + (altFqdns.length ? 'set to ' + altFqdns.join(', ') : 'reset');
} else if (!angular.equals(data.aliasDomains, data.app.aliasDomains)) {
var aliasDomains = data.aliasDomains.map(function (a) { return a.fqdn; });
return 'Alias domains of ' + appName(app) + ' was ' + (aliasDomains.length ? 'set to ' + aliasDomains.join(', ') : 'reset');
return 'Alias domains ' + appName('of', app) + ' was ' + (aliasDomains.length ? 'set to ' + aliasDomains.join(', ') : 'reset');
} else if (!angular.equals(data.portBindings, data.app.portBindings)) {
return 'Port bindings of ' + appName(app) + ' was changed';
return 'Port bindings ' + appName('of', app) + ' was changed';
}
} else if ('dataDir' in data) {
if (data.dataDir) {
return 'Data directory of ' + appName(app) + ' was set ' + data.dataDir;
return 'Data directory ' + appName('of', app) + ' was set ' + data.dataDir;
} else {
return 'Data directory of ' + appName(app) + ' was reset';
return 'Data directory ' + appName('of', app) + ' was reset';
}
} else if ('icon' in data) {
if (data.icon) {
return 'Icon of ' + appName(app) + ' was set';
return 'Icon ' + appName('of', app) + ' was set';
} else {
return 'Icon of ' + appName(app) + ' was reset';
return 'Icon ' + appName('of', app) + ' was reset';
}
} else if (('mailboxName' in data) && data.mailboxName !== data.app.mailboxName) {
if (data.mailboxName) {
return 'Mailbox of ' + appName(app) + ' was set to ' + q(data.mailboxName);
return 'Mailbox ' + appName('of', app) + ' was set to ' + q(data.mailboxName);
} else {
return 'Mailbox of ' + appName(app) + ' was reset';
return 'Mailbox ' + appName('of', app) + ' was reset';
}
}
return appName(app) + ' was re-configured';
return appName('', app) + 'was re-configured';
}
case ACTION_APP_INSTALL:
if (!data.app) return '';
return data.app.manifest.title + ' (package v' + data.app.manifest.version + ') was installed at ' + appName(data.app);
return data.app.manifest.title + ' (package v' + data.app.manifest.version + ') was installed ' + appName('at', data.app);
case ACTION_APP_RESTORE:
if (!data.app) return '';
details = appName(data.app) + ' was restored';
details = appName('', data.app) + 'was restored';
// older versions (<3.5) did not have these fields
if (data.fromManifest) details += ' from version ' + data.fromManifest.version;
if (data.toManifest) details += ' to version ' + data.toManifest.version;
@@ -3242,40 +3246,40 @@ angular.module('Application').service('Client', ['$http', '$interval', '$timeout
case ACTION_APP_IMPORT:
if (!data.app) return '';
details = appName(data.app) + ' was imported';
details = appName('', data.app) + 'was imported';
if (data.toManifest) details += ' to version ' + data.toManifest.version;
if (data.backupId) details += ' using backup ' + data.backupId;
return details;
case ACTION_APP_UNINSTALL:
if (!data.app) return '';
return appName(data.app) + ' (package v' + data.app.manifest.version + ') was uninstalled';
return appName('', data.app) + ' (package v' + data.app.manifest.version + ') was uninstalled';
case ACTION_APP_UPDATE:
if (!data.app) return '';
return 'Update of ' + appName(data.app) + ' started from v' + data.fromManifest.version + ' to v' + data.toManifest.version;
return 'Update ' + appName('of', data.app) + ' started from v' + data.fromManifest.version + ' to v' + data.toManifest.version;
case ACTION_APP_UPDATE_FINISH:
if (!data.app) return '';
return appName(data.app) + ' was updated to v' + data.app.manifest.version;
return appName('', data.app) + 'was updated to v' + data.app.manifest.version;
case ACTION_APP_BACKUP:
if (!data.app) return '';
return 'Backup of ' + appName(data.app) + ' started';
return 'Backup ' + appName('of', data.app) + ' started';
case ACTION_APP_BACKUP_FINISH:
if (!data.app) return '';
if (data.errorMessage) {
return 'Backup of ' + appName(data.app) + ' failed: ' + data.errorMessage;
return 'Backup ' + appName('of', data.app) + ' failed: ' + data.errorMessage;
} else {
return 'Backup of ' + appName(data.app) + ' succeeded with backup id ' + data.backupId;
return 'Backup ' + appName('of', data.app) + ' succeeded with backup id ' + data.backupId;
}
case ACTION_APP_CLONE:
return appName(data.newApp) + ' was cloned from ' + appName(data.oldApp) + ' using backup ' + data.backupId + ' with v' + data.oldApp.manifest.version;
return appName('', data.newApp, 'was') + ' cloned ' + appName('from', data.oldApp) + ' using backup ' + data.backupId + ' with v' + data.oldApp.manifest.version;
case ACTION_APP_REPAIR:
return 'App ' + appName(data.app) + ' was re-configured'; // re-configure of email apps is more common?
return 'App ' + appName('', data.app) + 'was re-configured'; // re-configure of email apps is more common?
case ACTION_APP_LOGIN: {
app = this.getCachedAppSync(data.appId);
@@ -3285,27 +3289,27 @@ angular.module('Application').service('Client', ['$http', '$interval', '$timeout
case ACTION_APP_OOM:
if (!data.app) return '';
return appName(data.app) + ' ran out of memory';
return appName('', data.app) + ' ran out of memory';
case ACTION_APP_DOWN:
if (!data.app) return '';
return appName(data.app) + ' is down';
return appName('', data.app) + ' is down';
case ACTION_APP_UP:
if (!data.app) return '';
return appName(data.app) + ' is back online';
return appName('', data.app) + ' is back online';
case ACTION_APP_START:
if (!data.app) return '';
return appName(data.app) + ' was started';
return appName('', data.app) + ' was started';
case ACTION_APP_STOP:
if (!data.app) return '';
return appName(data.app) + ' was stopped';
return appName('', data.app) + ' was stopped';
case ACTION_APP_RESTART:
if (!data.app) return '';
return appName(data.app) + ' was restarted';
return appName('', data.app) + ' was restarted';
case ACTION_BACKUP_START:
return 'Backup started';