diff --git a/install/package.json b/install/package.json index cd318c495b..192e4eb8bb 100644 --- a/install/package.json +++ b/install/package.json @@ -98,7 +98,7 @@ "multiparty": "4.2.3", "nconf": "0.12.1", "nodebb-plugin-2factor": "7.5.6", - "nodebb-plugin-composer-default": "10.2.42", + "nodebb-plugin-composer-default": "10.2.43", "nodebb-plugin-dbsearch": "6.2.5", "nodebb-plugin-emoji": "5.1.15", "nodebb-plugin-emoji-android": "4.0.0", diff --git a/public/openapi/read/user/userslug/chats/roomid.yaml b/public/openapi/read/user/userslug/chats/roomid.yaml index bd0ae278fd..dd853f882d 100644 --- a/public/openapi/read/user/userslug/chats/roomid.yaml +++ b/public/openapi/read/user/userslug/chats/roomid.yaml @@ -171,6 +171,8 @@ get: type: number canReply: type: boolean + canUpload: + type: boolean groupChat: type: boolean usernames: diff --git a/src/controllers/accounts/chats.js b/src/controllers/accounts/chats.js index d0b99b4041..ee6ed262d6 100644 --- a/src/controllers/accounts/chats.js +++ b/src/controllers/accounts/chats.js @@ -67,8 +67,11 @@ chatsController.get = async function (req, res, next) { room.title = room.roomName || room.usernames || '[[pages:chats]]'; room.bodyClasses = ['chat-loaded']; - room.canViewInfo = await privileges.global.can('view:users:info', uid); - + const [canViewInfo, canUploadImage, canUploadFile] = await privileges.global.can([ + 'view:users:info', 'upload:post:image', 'upload:post:file', + ], uid); + room.canViewInfo = canViewInfo; + room.canUpload = (canUploadImage || canUploadFile) && (meta.config.maximumFileSize > 0 || room.isAdmin); res.render('chats', { ...payload, ...room, diff --git a/src/views/partials/chats/composer.tpl b/src/views/partials/chats/composer.tpl index dc88f12616..48d78a89a4 100644 --- a/src/views/partials/chats/composer.tpl +++ b/src/views/partials/chats/composer.tpl @@ -3,7 +3,9 @@