mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-27 09:06:15 +01:00
feat: #11814, dont check content len for admins
This commit is contained in:
@@ -160,7 +160,7 @@ define('uploadHelpers', ['alerts'], function (alerts) {
|
|||||||
if ((isImage && !app.user.privileges['upload:post:image']) || (!isImage && !app.user.privileges['upload:post:file'])) {
|
if ((isImage && !app.user.privileges['upload:post:image']) || (!isImage && !app.user.privileges['upload:post:file'])) {
|
||||||
return alerts.error('[[error:no-privileges]]');
|
return alerts.error('[[error:no-privileges]]');
|
||||||
}
|
}
|
||||||
if (files[i].size > parseInt(config.maximumFileSize, 10) * 1024) {
|
if (!app.user.isAdmin && files[i].size > parseInt(config.maximumFileSize, 10) * 1024) {
|
||||||
options.uploadForm[0].reset();
|
options.uploadForm[0].reset();
|
||||||
return alerts.error('[[error:file-too-big, ' + config.maximumFileSize + ']]');
|
return alerts.error('[[error:file-too-big, ' + config.maximumFileSize + ']]');
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -163,8 +163,8 @@ uploadsController.uploadFile = async function (uid, uploadedFile) {
|
|||||||
if (!uploadedFile) {
|
if (!uploadedFile) {
|
||||||
throw new Error('[[error:invalid-file]]');
|
throw new Error('[[error:invalid-file]]');
|
||||||
}
|
}
|
||||||
|
const isAdmin = await user.isAdministrator(uid);
|
||||||
if (uploadedFile.size > meta.config.maximumFileSize * 1024) {
|
if (!isAdmin && uploadedFile.size > meta.config.maximumFileSize * 1024) {
|
||||||
throw new Error(`[[error:file-too-big, ${meta.config.maximumFileSize}]]`);
|
throw new Error(`[[error:file-too-big, ${meta.config.maximumFileSize}]]`);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -80,23 +80,26 @@ module.exports = function (Topics) {
|
|||||||
data = await plugins.hooks.fire('filter:topic.post', data);
|
data = await plugins.hooks.fire('filter:topic.post', data);
|
||||||
const { uid } = data;
|
const { uid } = data;
|
||||||
|
|
||||||
data.title = String(data.title).trim();
|
const [categoryExists, canCreate, canTag, isAdmin] = await Promise.all([
|
||||||
data.tags = data.tags || [];
|
|
||||||
data.content = String(data.content || '').trimEnd();
|
|
||||||
|
|
||||||
Topics.checkTitle(data.title);
|
|
||||||
await Topics.validateTags(data.tags, data.cid, uid);
|
|
||||||
data.tags = await Topics.filterTags(data.tags, data.cid);
|
|
||||||
if (!data.fromQueue) {
|
|
||||||
Topics.checkContent(data.content);
|
|
||||||
}
|
|
||||||
|
|
||||||
const [categoryExists, canCreate, canTag] = await Promise.all([
|
|
||||||
categories.exists(data.cid),
|
categories.exists(data.cid),
|
||||||
privileges.categories.can('topics:create', data.cid, uid),
|
privileges.categories.can('topics:create', data.cid, uid),
|
||||||
privileges.categories.can('topics:tag', data.cid, uid),
|
privileges.categories.can('topics:tag', data.cid, uid),
|
||||||
|
privileges.users.isAdministrator(uid),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
data.title = String(data.title).trim();
|
||||||
|
data.tags = data.tags || [];
|
||||||
|
data.content = String(data.content || '').trimEnd();
|
||||||
|
if (!isAdmin) {
|
||||||
|
Topics.checkTitle(data.title);
|
||||||
|
}
|
||||||
|
|
||||||
|
await Topics.validateTags(data.tags, data.cid, uid);
|
||||||
|
data.tags = await Topics.filterTags(data.tags, data.cid);
|
||||||
|
if (!data.fromQueue && !isAdmin) {
|
||||||
|
Topics.checkContent(data.content);
|
||||||
|
}
|
||||||
|
|
||||||
if (!categoryExists) {
|
if (!categoryExists) {
|
||||||
throw new Error('[[error:no-category]]');
|
throw new Error('[[error:no-category]]');
|
||||||
}
|
}
|
||||||
@@ -159,7 +162,10 @@ module.exports = function (Topics) {
|
|||||||
const { tid } = data;
|
const { tid } = data;
|
||||||
const { uid } = data;
|
const { uid } = data;
|
||||||
|
|
||||||
const topicData = await Topics.getTopicData(tid);
|
const [topicData, isAdmin] = await Promise.all([
|
||||||
|
Topics.getTopicData(tid),
|
||||||
|
privileges.users.isAdministrator(uid),
|
||||||
|
]);
|
||||||
|
|
||||||
await canReply(data, topicData);
|
await canReply(data, topicData);
|
||||||
|
|
||||||
@@ -168,7 +174,7 @@ module.exports = function (Topics) {
|
|||||||
await guestHandleValid(data);
|
await guestHandleValid(data);
|
||||||
data.content = String(data.content || '').trimEnd();
|
data.content = String(data.content || '').trimEnd();
|
||||||
|
|
||||||
if (!data.fromQueue) {
|
if (!data.fromQueue && !isAdmin) {
|
||||||
await user.isReadyToPost(uid, data.cid);
|
await user.isReadyToPost(uid, data.cid);
|
||||||
Topics.checkContent(data.content);
|
Topics.checkContent(data.content);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user