Commit Graph

1498 Commits

Author SHA1 Message Date
Julian Lam
9ee1afbb0f Merge branch 'master' into develop 2022-08-04 16:04:09 -04:00
Julian Lam
06f089afda test: fix user email tests 2022-08-04 16:02:16 -04:00
Julian Lam
3b296c3aa4 Merge remote-tracking branch 'origin/master' into develop 2022-08-04 14:26:07 -04:00
Julian Lam
f93a0b83bb test: fix tests so that when user.create is called, email is set prior to confirmation 2022-08-04 14:24:30 -04:00
Julian Lam
1ca09b63ed fix: #10809, test runner to only run tests for plugins included in test_plugins 2022-08-04 14:20:36 -04:00
Opliko
23cb67a112 feat: Allow defining active plugins in config (#10767)
* Revert "Revert "feat: cross origin opener policy options (#10710)""

This reverts commit 46050ace1a.

* Revert "Revert "chore(i18n): fallback strings for new resources: nodebb.admin-settings-advanced""

This reverts commit 9f291c07d3.

* feat: closes #10719, don't trim children if category is marked section

* feat: fire hook to allow plugins to filter the pids returned in a user profile

/cc julianlam/nodebb-plugin-support-forum#14

* fix: use `user.hidePrivateData();` more consistently across user retrieval endpoints

* feat: Allow defining active plugins in config

resolves #10766

* fix: assign the db result to files properly

* test: add tests with plugins in config

* feat: better theme change handling

* feat: add visual indication that plugins can't be activated

* test: correct hooks

* test: fix test definitions

* test: remove instead of resetting nconf to avoid affecting other tests

* test: ... I forgot how nconf worked

* fix: remove negation

* docs: improve wording of error message

* feat: reduce code duplication

* style: remove a redundant space

* fix: remove unused imports

* fix: use nconf instead of requiring config.json

* fix: await...

* fix: second missed await

* fix: move back from getActiveIds to getActive

* fix: use paths again?

* fix: typo

* fix: move require into the function

* fix: forgot to change back to getActive

* test: getActive returns only id

* test: accedently commented out some stuff

* feat: added note to top of plugins page if \!canChangeState

Co-authored-by: Julian Lam <julian@nodebb.org>
Co-authored-by: Barış Soner Uşaklı <barisusakli@gmail.com>
2022-07-26 14:27:17 -04:00
Julian Lam
05c30677f5 test: fix i18n tests 2022-06-17 14:26:12 -04:00
Julian Lam
22368b996e refactor: move orphan cleaning logic to its own method, added tests for getOrphans and cleanOrphans 2022-06-15 15:22:51 -04:00
Barış Soner Uşaklı
ea1ed66717 test: add more asserts to failing test 2022-06-13 18:45:27 -04:00
Barış Soner Uşaklı
6677efd7b5 test: fix UUID test 2022-05-26 12:42:09 -04:00
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ı
424db9ff37 fix: upload test for latest sharp 2022-04-19 13:17:03 -04:00
Barış Soner Uşaklı
c52401da02 fix: #10491, don't leak deleted message in cleanedContent 2022-04-12 15:36:06 -04:00
Barış Soner Uşaklı
767973717b perf: WIP #10449, allow array of pids for posts.purge (#10465)
* perf: WIP #10449, allow array of pids for posts.purge

* refactor: deletePostDiffs

* perf: deletePostFromReplies/deletePostFromGroups

* refactor: upload

* refactor: deleteFromCategoryRecentPosts

deleteFromUsersBookmarks
deleteFromUsersVotes

* feat: closes #10468, add incrObjectFieldByBulk

* refactor: allow nids for notifications.rescind

* refactor: allow uids array for user.updatePostCount

* refactor: rewrite deleteFromTopicUserNotification to work with an array

* feat: deprecate action:post.purge as well

* lint: add missing comma
2022-04-07 14:06:25 -04:00
CommanderRoot
200f0b2e4f refactor: replace deprecated String.prototype.substr() (#10432)
.substr() is deprecated so we replace it with .slice() which works similarily but isn't deprecated

Signed-off-by: Tobias Speicher <rootcommander@gmail.com>
2022-03-31 13:49:56 -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
e578c60566 test: skip i18n tests if the github event is a pull request 2022-03-15 15:15:38 -04:00
Barış Soner Uşaklı
24c1f879a5 test: fix middleware test 2022-03-11 23:50:28 -05:00
Barış Soner Uşaklı
6344c3b689 test: fix category tests 2022-03-11 23:45:01 -05:00
Barış Soner Uşaklı
a551142593 test: fix one more test 2022-03-11 13:46:01 -05:00
Barış Soner Uşaklı
3414a23bce feat: min:rep:upvote, and other limits similar to downvotes
closes #10380
2022-03-11 13:34:36 -05:00
Barış Soner Uşaklı
10a5901e4a fix: persona test fail 2022-02-20 13:43:50 -05:00
Barış Soner Uşaklı
9db90a3098 test: log configJSON 2022-02-17 15:11:24 -05:00
Barış Soner Uşaklı
32f693019b test: check contents of config.json in tests 2022-02-17 14:47:23 -05:00
Julian Lam
17836f2a3a Re-introduce lodash into src/package-install.js (#10315)
* test: add failing test for if package.json is non-existant, fix tests' beforeEach method

* Revert "fix: #10289, remove lodash dependency in src/cli/package-install.js"

This reverts commit 81fa2e22bc.

* fix: regression caused by 94b79ce402

`./nodebb setup` was no longer able to be called without arguments or env vars

* fix: .updatePackageFile() throwing if no package.json

* fix: removing unneeded code in src/cli/index.js that seemed to be used to handle cases where package.json was missing (initial install)

... However, as .updatePackageFile() now handled cases where there is no package.json, it should be ok to remove this code

* fix: handle missing package.json or node_modules/
2022-02-17 14:10:24 -05:00
Barış Soner Uşaklı
58b5781cea feat: closes #10296
asset_base_url in nconf
keep assetBaseUrl in config for backwards compat
2022-02-15 19:22:34 -05:00
Julian Lam
fb78570c13 test: fix topic thumb tests and topic thumbs to work properly with post upload assoc. 2022-02-14 15:02:07 -05:00
Julian Lam
d5ed8736aa feat: deleting a user upload dissociates from posts, and vice versa 2022-02-14 15:02:07 -05:00
Julian Lam
8c2752bab1 test: user uploads.js tests 2022-02-14 15:02:07 -05:00
Julian Lam
11275d6809 test: testing user upload methods, already fixed one bug 2022-02-14 15:02:07 -05:00
Julian Lam
b9edee143e fix: local deleteUploads() method in src/user/delete.js to call User.deleteUpload() 2022-02-14 15:02:07 -05:00
Julian Lam
6489e9fd9e refactor: change the post uploads' hash seeds to have the files/ prefix 2022-02-14 15:02:07 -05:00
Julian Lam
84dfda59e6 fix: #10144, automatically delete uploads from disk on post purge, ACP option to keep uploads on disk if desired 2022-02-14 15:02:07 -05:00
Julian Lam
d92da828a3 refactor: move post upload tests to its own file 2022-02-14 15:02:07 -05:00
Barış Soner Uşaklı
2dbdd1818f test: fix occasional test failure 2022-02-08 17:36:28 -05:00
Julian Lam
a2c7d69e1b fix: remove extraneous devDependencies on package merge
/cc @pitaj
2022-02-08 11:13:51 -05:00
Julian Lam
9e4147f07c chore: use source and current local vars, + docs 2022-02-08 11:00:35 -05:00
Julian Lam
0f788b8eaa fix: #10257, topic thumbs not deleting on topic deletion 2022-02-07 17:29:34 -05:00
Julian Lam
606808760e test: add test to verify that a sorted set is automatically deleted if its last element is removed (#10261)
* test: add test to verify that a sorted set is automatically deleted if its last element is removed

* fix: remote empty zsets when all elements have been removed #yolo

* Revert "fix: remote empty zsets when all elements have been removed #yolo"

This reverts commit 0ac73244bb.

* fix: altered behaviour in module.exists instead of zrem
2022-02-07 17:16:50 -05:00
Julian Lam
d34471f69f fix: regression in package.json merging logic that caused extraneous packages to not be removed 2022-02-04 16:20:31 -05:00
Julian Lam
689c125cd3 fix: #10229, package merging should deep merge nested objects
+ tests
2022-02-04 16:20:31 -05:00
Julian Lam
a0a3870611 fix: use fs.promises 2022-02-04 16:20:31 -05:00
Julian Lam
1b8eeaf840 feat: more tests for ensuring downvoted posts are added to the :votes zset 2022-02-04 14:33:58 -05:00
Julian Lam
aa8914a153 feat: v3 user email tests 2022-02-04 10:20:46 -05:00
Julian Lam
d1b1f50bb2 test: stricter isValidationPending check 2022-02-04 10:20:46 -05:00
Julian Lam
fc2c755c64 fix: properly unregister hooks in emailer tests 2022-01-28 15:46:28 -05:00
Julian Lam
dee9cca3c8 fix: email ban tests 2022-01-28 15:41:27 -05:00
Julian Lam
e25c0313d1 Revert "refactor: emailer.send and emailer.sendToEmail returns Boolean based on message being successfully sent"
This reverts commit f0e32ff182.
2022-01-28 15:41:27 -05:00
Julian Lam
ea27eaf166 feat: no more sending emails to banned users, + feature flag 2022-01-28 15:16:41 -05:00