Commit Graph

778 Commits

Author SHA1 Message Date
Barış Soner Uşaklı
d20b07cfea Webpack5 (#10311)
* feat: webpack 5 part 1

* fix: gruntfile fixes

* fix: fix taskbar warning

add app.importScript
copy public/src/modules to build folder

* refactor: remove commented old code

* feat: reenable admin

* fix: acp settings pages, fix sortable on manage categories

embedded require in html not allowed

* fix: bundle serialize/deserizeli so plugins dont break

* test: fixe util tests

* test: fix require path

* test: more test fixes

* test: require correct utils module

* test: require correct utils

* test: log stack

* test: fix db require blowing up tests

* test: move and disable bundle test

* refactor: add aliases

* test: disable testing route

* fix: move webpack modules necessary for build, into `dependencies`

* test: fix one more test

remove 500-embed.tpl

* fix: restore use of assets/nodebb.min.js, at least for now

* fix: remove unnecessary line break

* fix: point to proper ACP bundle

* test: maybe fix build test

* test: composer

* refactor: dont need dist

* refactor: more cleanup

use everything from build/public folder

* get rid of conditional import in app.js

* fix: ace

* refactor: cropper alias

* test: lint and test fixes

* lint: fix

* refactor: rename function to app.require

* refactor: go back to using app.require

* chore: use github branch

* chore: use webpack branch

* feat: webpack webinstaller

* feat: add chunkFile name with contenthash

* refactor: move hooks to top

* refactor: get rid of template500Function

* fix(deps): use webpack5 branch of 2factor plugin

* chore: tagging v2.0.0-beta.0 pre-release version 💥 :shipit: 🎉 🚀

* refactor: disable cache on templates

loadTemplate is called once by benchpress and the result is cache internally

* refactor: add server side helpers.js

* feat: deprecate /plugins shorthand route, closes #10343

* refactor: use build/public for webpack

* test: fix filename

* fix: more specific selector

* lint: ignore

* refactor: fix comments

* test: add debug for random failing test

* refactor: cleanup

remove test page, remove dupe functions in utils.common

* lint: use relative path  for now

* chore: bump prerelease version

* feat: add translateKeys

* fix: optional params

* fix: get rid of extra timeago files

* refactor: cleanup, require timeago locale earlier

remove translator.prepareDOM, it is in header.tpl html tag

* refactor: privileges system to use a Map in the backend instead of separate objects for keys and labels (#10378)

* refactor: privileges system to use a Map in the backend instead of separate objects for keys and labels

- Existing hooks are preserved (to be deprecated at a later date, possibly)
- New init hooks are called on NodeBB start, and provide a one-stop shop to add new privileges, instead of having to add to four different hooks

* docs: fix typo in comment

* test: spec changes

* refactor: privileges system to use a Map in the backend instead of separate objects for keys and labels (#10378)

* refactor: privileges system to use a Map in the backend instead of separate objects for keys and labels

- Existing hooks are preserved (to be deprecated at a later date, possibly)
- New init hooks are called on NodeBB start, and provide a one-stop shop to add new privileges, instead of having to add to four different hooks

* docs: fix typo in comment

* test: spec changes

* feat: allow app.require('bootbox'/'benchpressjs')

* refactor: require server side utils

* test: jquery ready

* change istaller to use build/public

* test: use document.addEventListener

* refactor: closes #10301

* refactor: generateTopicClass

* fix: column counts for other privileges

* fix: #10443, regression where sorted-list items did not render into the DOM in the predicted order [breaking]

* fix: typo in hook name

* refactor: introduce a generic autocomplete.init() method that can be called to add nodebb-style autocompletion but using different data sources (e.g. not user/groups/tags)

* fix: crash if `delay` not passed in (as it cannot be destructured)

* refactor: replace substr

* feat: set --panel-offset style in html element based on stored value in localStorage

* refactor: addDropupHandler() logic to be less naive

- Take into account height of the menu
- Don't apply dropUp logic if there's nothing in the dropdown
- Remove 'hidden' class (added by default in Persona for post tools) when menu items are added

closes #10423

* refactor: simplify utils.params [breaking]

Retrospective analysis of the usage of this method suggests that the options passed in are superfluous, and that only `url` is required. Using a browser built-in makes more sense to accomplish what this method sets out to do.

* feat: add support for returning full URLSearchParams for utils.params

* fix: utils.params() fallback handling

* fix: default empty obj for params()

* fix: remove \'loggedin\' and \'register\' qs parameters once they have been used, delay invocation of messages until ajaxify.end

* fix: utils.params() not allowing relative paths to be passed in

* refactor(DRY): new assertPasswordValidity utils method

* fix: incorrect error message returned on insufficient privilege on flag edit

* fix: read/update/delete access to flags API should be limited for moderators to only post flags in categories they moderate

- added failing tests and patched up middleware.assert.flags to fix

* refactor: flag api v3 tests to create new post and flags on every round

* fix: missing error:no-flag language key

* refactor: flags.canView to check flag existence, simplify middleware.assert.flag

* feat: flag deletion API endpoint, #10426

* feat: UI for flag deletion, closes #10426

* chore: update plugin versions

* chore: up emoji

* chore: update markdown

* chore: up emoji-android

* fix: regression caused by utils.params() refactor, supports arrays and pipes all values through utils.toType, adjusts tests to type check

Co-authored-by: Julian Lam <julian@nodebb.org>
2022-04-29 21:39:33 -04:00
Barış Soner Uşaklı
ac125538d0 refactor: show invalid uri 2022-04-22 12:13:43 -04:00
Julian Lam
38ca73c493 fix(security): explicitly declare cache-control header instead of using middleware
This commit reverts 1f6f389ff2
2022-03-18 11:56:16 -04:00
Julian Lam
1f6f389ff2 fix(security): cache-control on all pages using setupPageRoute or setupApiRoute, and 404 controllers.
This commit also reverts e39cdd490b
2022-03-17 21:42:26 -04:00
Julian Lam
e39cdd490b fix(security): explicitly set cache-control 'private' on any page where a header is built 2022-03-17 16:24:03 -04:00
Barış Soner Uşaklı
dcb201dfa8 fix: https://github.com/NodeBB/NodeBB/issues/10242 2022-02-04 10:37:59 -05:00
Julian Lam
e1e1d5223e feat: push the theme name into body class 2022-01-27 13:23:51 -05:00
Barış Soner Uşaklı
10949184ca test: add failing guest csrf test (#10169)
* test: add failing guest csrf test

* test: use correct var

* fix: use applyCsrf for guests as well
2022-01-20 18:22:10 -05:00
Julian Lam
e9ee843b27 fix: CSRF handler to go back to saving in session (#10159) 2022-01-14 13:38:24 -05:00
Julian Lam
d89fc44c03 fix: move authenticateRequest before interstitial and maintenance mode middlewares, allowed plugins to disable authentication on certain routes
fixes #10112
2021-12-30 16:14:50 -05:00
Julian Lam
d95b4ee29a fix: assertion check to ensure messages are in the room when editing/deleting, etc 2021-12-22 14:58:42 -05:00
Julian Lam
90fcbe4416 feat: middleware.assert.message 2021-12-22 10:59:36 -05:00
Julian Lam
140f9d2481 fix: isFinite check for room assertion, more test migrating 2021-12-22 10:59:36 -05:00
Julian Lam
74f1905ea8 feat: allow API checkRequired middleware error to be internationalized 2021-12-22 10:59:36 -05:00
Julian Lam
02e878be72 feat: stub code for v3 chats api 2021-12-22 10:59:36 -05:00
Barış Soner Uşaklı
c4042c70de feat: #9506, allow seeing and editing your queued posts
allow regular users access to post queue
allow regular users to edit their queued post/topic title
allow regular users to remove their post from post queue
ability to send a notification to user without removing from post queue
allow accessing single post queue items from notifications
2021-12-16 22:25:39 -05:00
Barış Soner Uşaklı
41db9436e8 perf: only add middleware if relativePath is set 2021-12-01 17:18:38 -05:00
Julian Lam
a3bdb70617 feat: ensure that all requests handled by NodeBB fall under the relative_path as configured 2021-12-01 16:57:46 -05:00
Barış Soner Uşaklı
324262cbb5 refactor: DRY 2021-11-28 19:31:08 -05:00
Barış Soner Uşaklı
1a7fffc7e9 breaking: remove deprecated user middlewares 2021-11-28 18:58:17 -05:00
Barış Soner Uşaklı
941ecaf899 fix: keep query params on /me redirects 2021-11-28 18:48:52 -05:00
Barış Soner Uşaklı
65c5504193 fix: 403/400/500 page not generating csrf_token 2021-11-28 07:31:09 -05:00
Barış Soner Uşaklı
7434cbf66f test: add api token tests 2021-11-26 18:59:29 -05:00
Julian Lam
6c07433dea refactor: use routePrefixMap instead of routeRegexpMap, +tests (#10035)
* refactor: use routePrefixMap instead of routeRegexpMap, +tests

Currently tests fail because privilege pages resolve if passed garbage... hmm

* fix: priv check paths

remove /v3 from path as well

Co-authored-by: Barış Soner Uşaklı <barisusakli@gmail.com>
2021-11-26 13:53:53 -05:00
Barış Soner Uşaklı
29b3587d91 test: middleware/expose.js 2021-11-22 19:56:12 -05:00
Barış Soner Uşaklı
fb363957d1 refactor: tab rules 2021-11-18 16:42:18 -05:00
Barış Soner Uşaklı
e368feef51 refactor: dont expost entire res._locals to client side 2021-11-17 22:11:24 -05:00
Julian Lam
1719bff89c feat: use auto-generated meta and link tags in ACP, closes #9991 2021-11-09 10:39:48 -05:00
Julian Lam
dd4e66e22c fix: push back some deprecations, remove deprecated stuff scheduled for v1.18.0 2021-09-03 12:04:20 -04:00
gasoved
3df79683f5 feat: create folders in ACP uploads #9638 (#9750)
* feat: create folders in ACP uploads #9638

* fix: openapi

* test: missing tests

* fix: eslint

* fix: tests
2021-08-31 09:27:00 -04:00
Barış Soner Uşaklı
a288f51f42 fix: allow smaller than 5mins for admin relogin duration
setting the value to 1min in ACP wasn't working
2021-08-18 20:46:51 -04:00
Opliko
d509a307f0 Remove some deprecated/unnecessary code (#9688)
* refactor: remove mkdirp promisify

* refactor: remove old session deletion API route

* refactor: remove middleware.isAdmin

* refactor: remove templateValues.config.bootswatchSkin

* fix: unused dependencies
2021-08-01 22:03:19 -04:00
Julian Lam
afd2d8dab1 feat(emails): pass req in to filter:registration.interstitial 2021-07-30 13:29:13 -04:00
Julian Lam
b4b65ecd98 fix(emails): remove debug log 2021-07-30 13:29:13 -04:00
Julian Lam
087e6020e4 refactor(email): validation checking methods, +tests fix 2021-07-30 13:29:13 -04:00
Julian Lam
69c96dd23c refactor(emails): more work in update email interstitial, interstitial skipping, email change on confirmation, deprecation of requireEmailConfirmation 2021-07-30 13:29:13 -04:00
Barış Soner Uşaklı
04b1f702cd feat: add loggedin/guest class to body 2021-07-29 11:10:13 -04:00
Julian Lam
cc6cbfcdc4 Flags API (#9666)
* feat: new routes for flags API

+ flag get
+ flag creation, migration from socket method
+ flag update, migration from socket method
* fixed bug where you could not unassign someone from a flag

* feat: tests for new flags API

added missing files for schema update

* fix: flag tests to use Write API instead of sockets

* feat: flag notes API + tests

* chore: remove debug line

* test: fix breaking test on mongo
2021-07-16 13:44:42 -04:00
Julian Lam
7036c3751e feat: internationalize API error messages 2021-07-09 12:24:32 -04:00
Julian Lam
a54a3ee1ca fix: return proper API-style response if exception caught by error handler on v3 routes [breaking] 2021-07-09 12:24:32 -04:00
Barış Soner Uşaklı
3cd9434b56 fix: scope 2021-06-18 12:36:04 -04:00
Barış Soner Uşaklı
1eda538da5 fix: #9615, catch exceptions in renderOverride 2021-06-18 12:24:07 -04:00
Barış Soner Uşaklı
3d5fef6e80 feat: pass req.query to getUnreadData 2021-05-27 10:02:54 -04:00
Barış Soner Uşaklı
9ebfdeb7ee fix: #9580, proper 404 when ajaxifying 2021-05-25 12:44:17 -04:00
Barış Soner Uşaklı
3d6bdeb3df feat: add req.query to flags.list/getCount 2021-05-19 10:01:33 -04:00
Barış Soner Uşaklı
f6b583bb9d feat: #9533, allow redirect in build hooks 2021-05-07 09:32:06 -04:00
Barış Soner Uşaklı
6ed8890c2e fix: #9512, fix chat icon if no privileges 2021-04-27 10:00:52 -04:00
Barış Soner Uşaklı
a478dc7ee8 feat: add filter:middleware.autoLocale 2021-04-26 10:35:34 -04:00
Barış Soner Uşaklı
435067aa5f test: remove logs 2021-04-18 21:57:07 -04:00
Barış Soner Uşaklı
2ea468daa3 test: clear cache between runs, require middleware later in helpers 2021-04-18 21:57:07 -04:00