Merge remote-tracking branch 'origin/develop' into release-candidate

pull/19048/head
Diego Sampaio 5 years ago
commit 9c100ff3cf
No known key found for this signature in database
GPG Key ID: E060152B30502562
  1. 5
      app/authorization/server/streamer/permissions/emitter.js
  2. 2
      app/federation/server/endpoints/dispatch.js
  3. 5
      app/federation/server/handler/index.js
  4. 15
      app/federation/server/lib/callbacks.js
  5. 4
      server/publications/settings/emitter.js

@ -32,7 +32,10 @@ Permissions.on('change', ({ clientAction, id, data, diff }) => {
// if the permission changes, the effect on the visible settings depends on the role affected.
// The selected-settings-based consumers have to react accordingly and either add or remove the
// setting from the user's collection
const setting = Settings.findOneById(data.settingId);
const setting = Settings.findOneNotHiddenById(data.settingId);
if (!setting) {
return;
}
Notifications.notifyLoggedInThisInstance(
'private-settings-changed',
'updated',

@ -444,7 +444,7 @@ const eventHandlers = {
},
};
API.v1.addRoute('federation.events.dispatch', { authRequired: false }, {
API.v1.addRoute('federation.events.dispatch', { authRequired: false, rateLimiterOptions: { numRequestsAllowed: 30, intervalTimeInMS: 1000 } }, {
async post() {
if (!isFederationEnabled()) {
return API.v1.failure('Federation not enabled');

@ -67,10 +67,7 @@ export function dispatchEvents(domains, events) {
}
export function dispatchEvent(domains, event) {
// Ensure the domain list is distinct to avoid excessive events
const distinctDomains = [...new Set(domains)].filter((domain) => domain === event.origin);
dispatchEvents(distinctDomains, [event]);
dispatchEvents([...new Set(domains)], [event]);
}
export function getUpload(domain, fileId) {

@ -1,14 +1,23 @@
import { callbacks } from '../../../callbacks/server';
import { settings } from '../../../settings/server';
const callbackDefinitions = [];
export function registerCallback(callbackDefition) {
callbackDefinitions.push(callbackDefition);
function enableCallback(definition) {
callbacks.add(definition.hook, definition.callback, callbacks.priority.LOW, definition.id);
}
export function registerCallback(callbackDefinition) {
callbackDefinitions.push(callbackDefinition);
if (settings.get('FEDERATION_Enabled')) {
enableCallback(callbackDefinition);
}
}
export function enableCallbacks() {
for (const definition of callbackDefinitions) {
callbacks.add(definition.hook, definition.callback, callbacks.priority.LOW, definition.id);
enableCallback(definition);
}
}

@ -22,6 +22,10 @@ Settings.on('change', ({ clientAction, id, data, diff }) => {
SettingsEvents.emit('change-setting', setting, value);
if (setting.hidden) {
return;
}
if (setting.public === true) {
Notifications.notifyAllInThisInstance('public-settings-changed', clientAction, value);
}

Loading…
Cancel
Save