nodeBB v1.18.0 Release Notes

Release Date: 2021-08-25 // 3 months ago
  • πŸ’₯ Breaking Changes
    • emails: restore ability for admins to edit a user's email address [breaking] (c4e3362b)
    • #9670 return 4xx errors instead of 5xx on flag routes, when unauthenticated or not privileged [breaking] (d1959a25)
    • made TopicList.onTopicsLoaded private [breaking] (07f25d8c)
    • πŸ’… return proper API-style response if exception caught by error handler on v3 routes [breaking] (a54a3ee1)
    Chores
    • deps:
      • update dependency husky to v7.0.2 (324c7d48)
      • update dependency eslint-plugin-import to v2.24.2 (9a34fe18)
      • update dependency eslint-config-nodebb to v0.0.2 (cd85a55d)
      • update dependency mocha to v9.1.0 (c5a42273)
      • update dependency eslint-plugin-import to v2.24.1 (daca09d4)
      • update dependency @apidevtools/swagger-parser to v10.0.3 (ffdf61b8)
      • update dependency jsdom to v17 (#9700) (41855375)
      • update dependency eslint-plugin-import to v2.24.0 (23dafa20)
      • update dependency lint-staged to v11.1.2 (d47bdde2)
      • update dependency jsdom to v16.7.0 (9db28b4b)
      • update dependency eslint to v7.32.0 (03a98f4d)
      • update dependency mocha to v9.0.3 (40384fcb)
      • update dependency lint-staged to v11.1.1 (7588aae1)
      • update dependency lint-staged to v11.1.0 (cb5fe271)
      • update dependency mocha to v9 (f43291f5)
      • update dependency husky to v7 (702290c4)
      • update dependency eslint to v7.31.0 (f5a53b7f)
      • update dependency lint-staged to v11.0.1 (02101315)
    • 0️⃣ up markdown/composer-default, fixes: #9708 (b74eefac)
    • incrementing version number - v1.17.2 (46be2046)
    • ⚑️ update changelog for v1.17.2 (5c9c0605)
    πŸ“š Documentation Changes
    • πŸ—„ some hook deprecation notices (6bc090f8)
    πŸ†• New Features
    • add confirmation modal to topic event deletion (e803737a)
    • 0️⃣ allow changing default search in (794bf01b)
    • #9705, use radio buttons for flag reasons (382a4c27)
    • Client-side hooks - replace window.trigger (#9679) (342503e0)
    • closes #9684, allow event deletion (358ad740)
    • πŸ‘• replace eslint configs on server and client side to inherit rules from eslint-config-nodebb (f653a6ff)
    • re-add FontAwesome font for compatibility (a370c26f)
    • ⚑️ update to FontAwesome 5.15, resolve #6976 (41762e66)
    • 🚚 removed registerAndLoginUserCallback local helper, added handling if a bad interstitial doesn't go away nor throw errors (70a04bc1)
    • ⚑️ updated email confirmation alert to more closely reflect email usage, remembering dismissal (bbbacd86)
    • allow requirejs modules to be awaited (58adb762)
    • show instructional modal after email change request (0e05cbe1)
    • return back to profile after editing email (324a12b6)
    • allow registration interstitial abort to also follow returnTo (b3c91641)
    • plumb current session id into email removal/confirmation flow, so all other sessions are revoked except for the current session (96398faa)
    • allow revokeAllSessions method to revoke all sessions except that which is passed in (new arg) (b0a4a1d3)
    • return generic 404 on invalid confirm code (f53fc1ad)
    • invites no longer require email (a917210c)
    • show different registration intersitial lead text on new account vs. existing (74aaa0a9)
    • removal of emailExists socket listener (12b2a979)
    • add loggedin/guest class to body (04b1f702)
    • ♻️ convert _fireStaticHook to async function (auto-refactor by vscode) (21359eab)
    • store topic tags in topic hash (#9656) (4a56388e)
    • new hook action:topics.loading (in the same format as action:posts.loading) (e0db904b)
    • ⏱ schedule deprecation for action:category.loaded and action:category.loading. Use action:topics.loaded/ing instead (8ae4c300)
    • internationalize API error messages (7036c375)
    • #9651, change category desc to multiline (5fd190f7)
    • emails:
      • pass req in to filter:registration.interstitial (afd2d8da)
      • display current email in interstitial form (f5291999)
      • upgrade script for includeUnverifiedEmails (50517020)
      • +includeUnverifiedEmails ACP setting (be97aa6f)
    πŸ› Bug Fixes
    • πŸ‘• lint (55693ec1)
    • topic event deletion (1ee92c28)
    • πŸ”Œ pluginPaths (0743554d)
    • ⚠ #9730, show warning if plugin is active but not installed (13878e9f)
    • #9729, insert new posts after topic events (60bf5643)
    • #9719, only apply to non https (c354cde3)
    • #9727, addHandlers after hooks (77c3085a)
    • allow smaller than 5mins for admin relogin duration (a288f51f)
    • taskbar icon not pushed via composer/persona (3a81c8fd)
    • #9698, pass along query params in redirect (9de64bf5)
    • πŸ‘• lint (8bf2896d)
    • 🚚 remove unnecessary quote (093ac1c0)
    • πŸ“œ parseInt tids (162ebacf)
    • ⚑️ #9681, update posts in queue if target tid is merged (0c816429)
    • ⚑️ email update interstitial to not error on empty email field (on new registration) (4a521ea2)
    • ⚑️ updated ACP > Manage > Users to handle users with no email address (824a72b2)
    • allowed reset and reset_notify emails to go out to unconfirmed email addresses (d5b5b7d5)
    • bug where confirmation email was sent to the old email address, not the new one (414d733d)
    • πŸ›  email validation flow, so that it actually works, fixed event logging bug, new email verification template (3bcd1f14)
    • βœ… accidental early return in confirmByCode, tests, race condition (caf89687)
    • βœ… test :shipit: (2c06ac9a)
    • βœ… failing test from d1959a2 (f71f2951)
    • #9668, add raw info to psql database page (6c47a060)
    • use hooks module instead of window trigger (acb11cc7)
    • βœ… tests (0960a814)
    • translate language keys if passed in to formatApiResponse (415416d2)
    • πŸ‘• lint (ff78969c)
    • βœ… tests (55d7e558)
    • keep query string on redirects (47c8c692)
    • deps:
      • bump persona (12e7f8d5)
      • update dependency nodebb-theme-persona to v11.2.1 (#9734) (2e1562b8)
      • update dependency nodebb-theme-vanilla to v12.1.2 (#9735) (4bd66a7c)
      • update dependency nodebb-theme-slick to v1.4.8 (#9732) (096c5a58)
      • update dependency autoprefixer to v10.3.2 (d44e3a8e)
      • update dependency nodebb-theme-persona to v11.2.0 (116f9cb5)
      • update dependency ioredis to v4.27.8 (8461791a)
      • update dependency nodebb-theme-persona to v11.1.3 (ec103ce8)
      • update dependency sharp to v0.29.0 (626d5565)
      • update dependency connect-mongo to v4.5.0 (ce6039f2)
      • update dependency nodebb-theme-vanilla to v12.1.1 (de83f82e)
      • update dependency nodebb-theme-persona to v11.1.2 (ee10ae04)
      • update dependency yargs to v17.1.1 (38e38580)
      • update dependency nodebb-theme-persona to v11.1.1 (47941418)
      • update dependency mongodb to v3.6.11 (a0fd0268)
      • update dependency yargs to v17.1.0 (181c20ba)
      • update dependency ioredis to v4.27.7 (4c9d6b62)
      • update theme versions for #9607 (3b34571d)
      • update dependency postcss to v8.3.6 (ebdba8f1)
      • update dependency html-to-text to v8 (3f24746c)
      • update dependency yargs to v17 (1b6b1fe5)
      • bump composer-default to v7 (51458c75)
      • update dependency autoprefixer to v10.3.1 (0d3f74b7)
      • update dependency nodebb-plugin-markdown to v8.14.2 (b6a84712)
      • update dependency autoprefixer to v10.3.0 (72c9650f)
      • update socket.io packages to v4.1.3 (f14df0d4)
      • update dependency nodebb-plugin-composer-default to v6.5.34 (31dae04f)
      • update dependency nodebb-theme-persona to v11.0.26 (ae14016e)
      • update dependency nodebb-plugin-markdown to v8.14.1 (8b41684e)
    • emails:
      • broken test for api/user/email/:email (81611ae1)
      • dont allow retrieving user data if showemail is false @julianlam (7d115c8e)
      • registration tests, email no longer passed-in, API tests (confirm email for test accounts) (6694bdd5)
      • don't automatically associate email during user creation if passed in at registration (e726048e)
      • remove debug log (b4b65ecd)
      • broken test due to sticky registration interstitial (ab9b6716)
    ♻️ Refactors
    • 🚚 remove promisify from redis, ioredis supports promises nati… (#9728) (6659e95a)
    • get rid of async.waterfall/each (8fb53252)
    • 🚚 remove unused async (42dbd402)
    • 🚚 remove waterfall (6b6a7d4b)
    • 🚚 move interstitials into its own file in src/user/ (e95df2f0)
    • ⚑️ added user.email.remove method, updated email interstitial to handle email removal (ccf004f1)
    • client-side to use flag notes API (ef4e74bf)
    • fix wording (6ed7e937)
    • email: validation checking methods, +tests fix (087e6020)
    • emails:
      • more work in update email interstitial, interstitial skipping, email change on confirmation, deprecation of requireEmailConfirmation (69c96dd2)
      • interstitial for adding/updating email (f365bc46)
      • remove email validation on client and server side (7c1d1c77)
    πŸ’… Code Style Changes
    • πŸ‘• eslint (d2492ef4)
    • πŸ‘• lint fix (340ccb24)
    • πŸ‘• lint (52229172)
    βœ… Tests
    • emails: fixing broken tests introduced by e5ff68acd (a3a3b10f)