Central check for enable/disabled web handlers, added some utility functions, etc.
This commit is contained in:
parent
99e9ebbec9
commit
127e9794ee
|
@ -0,0 +1,9 @@
|
||||||
|
const { WellKnownLocations } = require('./servers/content/web');
|
||||||
|
|
||||||
|
exports.buildSelfUrl = buildSelfUrl;
|
||||||
|
|
||||||
|
function buildSelfUrl(webServer, user, relPrefix) {
|
||||||
|
return webServer.buildUrl(
|
||||||
|
WellKnownLocations.Internal + `${relPrefix}${user.username}`
|
||||||
|
);
|
||||||
|
}
|
|
@ -5,7 +5,9 @@
|
||||||
const Log = require('../../logger.js').log;
|
const Log = require('../../logger.js').log;
|
||||||
const ServerModule = require('../../server_module.js').ServerModule;
|
const ServerModule = require('../../server_module.js').ServerModule;
|
||||||
const Config = require('../../config.js').get;
|
const Config = require('../../config.js').get;
|
||||||
const { Errors } = require('../../enig_error.js');
|
const { Errors, ErrorReasons } = require('../../enig_error.js');
|
||||||
|
const { loadModulesForCategory, moduleCategories } = require('../../module_util');
|
||||||
|
const WebHandlerModule = require('../../web_handler_module');
|
||||||
|
|
||||||
// deps
|
// deps
|
||||||
const http = require('http');
|
const http = require('http');
|
||||||
|
@ -17,8 +19,6 @@ const mimeTypes = require('mime-types');
|
||||||
const forEachSeries = require('async/forEachSeries');
|
const forEachSeries = require('async/forEachSeries');
|
||||||
const findSeries = require('async/findSeries');
|
const findSeries = require('async/findSeries');
|
||||||
|
|
||||||
const { loadModulesForCategory, moduleCategories } = require('../../module_util');
|
|
||||||
|
|
||||||
const ModuleInfo = (exports.moduleInfo = {
|
const ModuleInfo = (exports.moduleInfo = {
|
||||||
name: 'Web',
|
name: 'Web',
|
||||||
desc: 'Web Server',
|
desc: 'Web Server',
|
||||||
|
@ -166,6 +166,11 @@ exports.getModule = class WebServerModule extends ServerModule {
|
||||||
(module, nextModule) => {
|
(module, nextModule) => {
|
||||||
const moduleInst = new module.getModule();
|
const moduleInst = new module.getModule();
|
||||||
try {
|
try {
|
||||||
|
const normalizedName = _.camelCase(module.moduleInfo.name);
|
||||||
|
if (!WebHandlerModule.isEnabled(normalizedName)) {
|
||||||
|
return nextModule(null);
|
||||||
|
}
|
||||||
|
|
||||||
moduleInst.init(err => {
|
moduleInst.init(err => {
|
||||||
return nextModule(err);
|
return nextModule(err);
|
||||||
});
|
});
|
||||||
|
|
|
@ -2,6 +2,7 @@ const WebHandlerModule = require('../../../web_handler_module');
|
||||||
const Config = require('../../../config').get;
|
const Config = require('../../../config').get;
|
||||||
const { Errors, ErrorReasons } = require('../../../enig_error');
|
const { Errors, ErrorReasons } = require('../../../enig_error');
|
||||||
const { WellKnownLocations } = require('../web');
|
const { WellKnownLocations } = require('../web');
|
||||||
|
const { buildSelfUrl } = require('../../../activitypub_util');
|
||||||
|
|
||||||
const _ = require('lodash');
|
const _ = require('lodash');
|
||||||
const User = require('../../../user');
|
const User = require('../../../user');
|
||||||
|
@ -17,7 +18,7 @@ exports.moduleInfo = {
|
||||||
name: 'WebFinger',
|
name: 'WebFinger',
|
||||||
desc: 'A simple WebFinger Handler.',
|
desc: 'A simple WebFinger Handler.',
|
||||||
author: 'NuSkooler, CognitiveGears',
|
author: 'NuSkooler, CognitiveGears',
|
||||||
packageName: 'codes.l33t.enigma.web.handler.finger',
|
packageName: 'codes.l33t.enigma.web.handler.webfinger',
|
||||||
};
|
};
|
||||||
|
|
||||||
// :TODO: more info in default
|
// :TODO: more info in default
|
||||||
|
@ -41,10 +42,6 @@ exports.getModule = class WebFingerWebHandler extends WebHandlerModule {
|
||||||
init(cb) {
|
init(cb) {
|
||||||
const config = Config();
|
const config = Config();
|
||||||
|
|
||||||
if (!WebHandlerModule.isEnabled('webFinger')) {
|
|
||||||
return cb(null);
|
|
||||||
}
|
|
||||||
|
|
||||||
// we rely on the web server
|
// we rely on the web server
|
||||||
this.webServer = WebHandlerModule.getWebServer();
|
this.webServer = WebHandlerModule.getWebServer();
|
||||||
if (!this.webServer || !this.webServer.isEnabled()) {
|
if (!this.webServer || !this.webServer.isEnabled()) {
|
||||||
|
@ -251,9 +248,7 @@ exports.getModule = class WebFingerWebHandler extends WebHandlerModule {
|
||||||
}
|
}
|
||||||
|
|
||||||
_selfUrl(user) {
|
_selfUrl(user) {
|
||||||
return this.webServer.buildUrl(
|
return buildSelfUrl(this.webServer, user, '/ap/users/');
|
||||||
WellKnownLocations.Internal + `/ap/users/${user.username}`
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// :TODO: only if ActivityPub is enabled
|
// :TODO: only if ActivityPub is enabled
|
||||||
|
|
Loading…
Reference in New Issue