Skip to content

Commit

Permalink
fix: #12320, .text() gets \n\t characters
Browse files Browse the repository at this point in the history
add name check in order active plugins
use single db call to set order
  • Loading branch information
barisusakli committed Jan 31, 2024
1 parent 6e6c397 commit 67c8bd9
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 3 deletions.
4 changes: 2 additions & 2 deletions public/src/admin/extend/plugins.js
Expand Up @@ -195,7 +195,7 @@ define('admin/extend/plugins', [
let html = '';
activePlugins.forEach(function (plugin) {
html += `
<li class="d-flex justify-content-between gap-1 pointer border-bottom pb-2">
<li class="d-flex justify-content-between gap-1 pointer border-bottom pb-2" data-plugin="${plugin}">
${plugin}
<div class="d-flex gap-1">
<div class="btn-ghost-sm move-up">
Expand Down Expand Up @@ -233,7 +233,7 @@ define('admin/extend/plugins', [
const plugins = $('#order-active-plugins-modal .plugin-list').children();
const data = [];
plugins.each(function (index, el) {
data.push({ name: $(el).text(), order: index });
data.push({ name: $(el).attr('data-plugin'), order: index });
});

socket.emit('admin.plugins.orderActivePlugins', data, function (err) {
Expand Down
10 changes: 9 additions & 1 deletion src/socket.io/admin/plugins.js
Expand Up @@ -5,6 +5,7 @@ const nconf = require('nconf');
const plugins = require('../../plugins');
const events = require('../../events');
const db = require('../../database');
const { pluginNamePattern } = require('../../constants');

const Plugins = module.exports;

Expand Down Expand Up @@ -41,7 +42,14 @@ Plugins.orderActivePlugins = async function (socket, data) {
throw new Error('[[error:plugins-set-in-configuration]]');
}
data = data.filter(plugin => plugin && plugin.name);
await Promise.all(data.map(plugin => db.sortedSetAdd('plugins:active', plugin.order || 0, plugin.name)));

data.forEach((plugin) => {
if (!pluginNamePattern.test(plugin.name)) {
throw new Error('[[error:invalid-plugin-id]]');
}
});

await db.sortedSetAdd('plugins:active', data.map(p => p.order || 0), data.map(p => p.name));
};

Plugins.upgrade = async function (socket, data) {
Expand Down

0 comments on commit 67c8bd9

Please sign in to comment.