mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-01 11:35:55 +01:00
Merge remote-tracking branch 'origin/master' into develop
This commit is contained in:
15
CHANGELOG.md
15
CHANGELOG.md
@@ -1,3 +1,18 @@
|
|||||||
|
#### v3.0.1 (2023-05-02)
|
||||||
|
|
||||||
|
##### Chores
|
||||||
|
|
||||||
|
* incrementing version number - v3.0.0 (224e08cd)
|
||||||
|
* update changelog for v3.0.0 (56ad381f)
|
||||||
|
|
||||||
|
##### Bug Fixes
|
||||||
|
|
||||||
|
* #11554, email requirement bypass by sending in whitespace (2b8dd3d2)
|
||||||
|
* update openapi spec to specify optional `expiry` argument available to be passed in via request body. (b3787bd5)
|
||||||
|
* #11545, wrong message shown to new users re: email confirmation (2b70063e)
|
||||||
|
* black on red coloration on error when a bad reset code is received (604a8f7e)
|
||||||
|
* use query param sort over user setting if it's set (9484ddc3)
|
||||||
|
|
||||||
#### v3.0.0 (2023-04-26)
|
#### v3.0.0 (2023-04-26)
|
||||||
|
|
||||||
##### Breaking Changes
|
##### Breaking Changes
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "nodebb",
|
"name": "nodebb",
|
||||||
"license": "GPL-3.0",
|
"license": "GPL-3.0",
|
||||||
"description": "NodeBB Forum",
|
"description": "NodeBB Forum",
|
||||||
"version": "3.0.0",
|
"version": "3.0.1",
|
||||||
"homepage": "https://www.nodebb.org",
|
"homepage": "https://www.nodebb.org",
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
|
|||||||
@@ -11,6 +11,17 @@ put:
|
|||||||
required: true
|
required: true
|
||||||
description: a valid topic id
|
description: a valid topic id
|
||||||
example: 1
|
example: 1
|
||||||
|
requestBody:
|
||||||
|
required: false
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
expiry:
|
||||||
|
type: number
|
||||||
|
description: A UNIX timestamp representing the moment the topic will be unpinned.
|
||||||
|
example: 1585337827953
|
||||||
responses:
|
responses:
|
||||||
'200':
|
'200':
|
||||||
description: Topic successfully pinned
|
description: Topic successfully pinned
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ define('messages', ['bootbox', 'translator', 'storage', 'alerts', 'hooks'], func
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
if (!app.user.email) {
|
if (!app.user.email && !app.user.isEmailConfirmSent) {
|
||||||
msg.message = '[[error:no-email-to-confirm]]';
|
msg.message = '[[error:no-email-to-confirm]]';
|
||||||
msg.clickfn = function () {
|
msg.clickfn = function () {
|
||||||
alerts.remove('email_confirm');
|
alerts.remove('email_confirm');
|
||||||
|
|||||||
@@ -48,6 +48,10 @@ Interstitials.email = async (data) => {
|
|||||||
hasPending,
|
hasPending,
|
||||||
},
|
},
|
||||||
callback: async (userData, formData) => {
|
callback: async (userData, formData) => {
|
||||||
|
if (formData.email) {
|
||||||
|
formData.email = String(formData.email).trim();
|
||||||
|
}
|
||||||
|
|
||||||
// Validate and send email confirmation
|
// Validate and send email confirmation
|
||||||
if (userData.uid) {
|
if (userData.uid) {
|
||||||
const isSelf = parseInt(userData.uid, 10) === parseInt(data.req.uid, 10);
|
const isSelf = parseInt(userData.uid, 10) === parseInt(data.req.uid, 10);
|
||||||
|
|||||||
@@ -31,7 +31,7 @@
|
|||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
{{{ else }}}
|
{{{ else }}}
|
||||||
<div class="card bg-danger">
|
<div class="card text-bg-danger">
|
||||||
<h5 class="card-header">
|
<h5 class="card-header">
|
||||||
[[reset_password:wrong_reset_code.title]]
|
[[reset_password:wrong_reset_code.title]]
|
||||||
</h5>
|
</h5>
|
||||||
|
|||||||
@@ -448,7 +448,10 @@ describe('API', async () => {
|
|||||||
|
|
||||||
let body = {};
|
let body = {};
|
||||||
let type = 'json';
|
let type = 'json';
|
||||||
if (context[method].hasOwnProperty('requestBody') && context[method].requestBody.content['application/json']) {
|
if (
|
||||||
|
context[method].hasOwnProperty('requestBody') &&
|
||||||
|
context[method].requestBody.required !== false &&
|
||||||
|
context[method].requestBody.content['application/json']) {
|
||||||
body = buildBody(context[method].requestBody.content['application/json'].schema.properties);
|
body = buildBody(context[method].requestBody.content['application/json'].schema.properties);
|
||||||
} else if (context[method].hasOwnProperty('requestBody') && context[method].requestBody.content['multipart/form-data']) {
|
} else if (context[method].hasOwnProperty('requestBody') && context[method].requestBody.content['multipart/form-data']) {
|
||||||
type = 'form';
|
type = 'form';
|
||||||
|
|||||||
Reference in New Issue
Block a user