Commit Graph

1473 Commits (507f9e562956d6b29191321a9a2068c503a5e2d8)

Author SHA1 Message Date
Julian Lam 17836f2a3a
Re-introduce lodash into src/package-install.js ()
* test: add failing test for if package.json is non-existant, fix tests' beforeEach method

* Revert "fix: , 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/
Barış Soner Uşaklı 58b5781cea feat: closes
asset_base_url in nconf
keep assetBaseUrl in config for backwards compat
Julian Lam fb78570c13 test: fix topic thumb tests and topic thumbs to work properly with post upload assoc.
Julian Lam d5ed8736aa feat: deleting a user upload dissociates from posts, and vice versa
Julian Lam 8c2752bab1 test: user uploads.js tests
Julian Lam 11275d6809 test: testing user upload methods, already fixed one bug
Julian Lam b9edee143e fix: local deleteUploads() method in `src/user/delete.js` to call `User.deleteUpload()`
Julian Lam 6489e9fd9e refactor: change the post uploads' hash seeds to have the `files/` prefix
Julian Lam 84dfda59e6 fix: , automatically delete uploads from disk on post purge, ACP option to keep uploads on disk if desired
Julian Lam d92da828a3 refactor: move post upload tests to its own file
Barış Soner Uşaklı 2dbdd1818f test: fix occasional test failure
Julian Lam a2c7d69e1b fix: remove extraneous devDependencies on package merge
/cc @pitaj
Julian Lam 9e4147f07c chore: use source and current local vars, + docs
Julian Lam 0f788b8eaa fix: , topic thumbs not deleting on topic deletion
Julian Lam 606808760e
test: add test to verify that a sorted set is automatically deleted if its last element is removed ()
* 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 0ac73244bb6ffd802007a252a35844c589ce8721.

* fix: altered behaviour in module.exists instead of zrem
Julian Lam d34471f69f fix: regression in package.json merging logic that caused extraneous packages to not be removed
Julian Lam 689c125cd3 fix: , package merging should deep merge nested objects
+ tests
Julian Lam a0a3870611 fix: use fs.promises
Julian Lam 1b8eeaf840 feat: more tests for ensuring downvoted posts are added to the :votes zset
Julian Lam aa8914a153 feat: v3 user email tests
Julian Lam d1b1f50bb2 test: stricter isValidationPending check
Julian Lam fc2c755c64 fix: properly unregister hooks in emailer tests
Julian Lam dee9cca3c8 fix: email ban tests
Julian Lam e25c0313d1 Revert "refactor: emailer.send and emailer.sendToEmail returns Boolean based on message being successfully sent"
This reverts commit f0e32ff182.
Julian Lam ea27eaf166 feat: no more sending emails to banned users, + feature flag
Julian Lam f0e32ff182 refactor: emailer.send and emailer.sendToEmail returns Boolean based on message being successfully sent
Note that of course this doesn't mean the message was _delivered_, just sent off.

This will stop issues where emailer errors crash NodeBB
Barış Soner Uşaklı 680e36da67 test: fix derp
Barış Soner Uşaklı a214f9a61b test: up acp plugin page timeout
Barış Soner Uşaklı 10949184ca
test: add failing guest csrf test ()
* test: add failing guest csrf test

* test: use correct var

* fix: use applyCsrf for guests as well
Barış Soner Uşaklı 6c1e184c74 test: fix util test
Barış Soner Uşaklı 9b75b1ede2 test: update tag tests, fix linux symlink error
Julian Lam d95b4ee29a fix: assertion check to ensure messages are in the room when editing/deleting, etc
Julian Lam 82768fcf6e chore: remove debug logs in test/api.js
Julian Lam aaa6f752d0 refactor: put message api calls behind `/messages` prefix,
Julian Lam e747998cba test: fix user tests calling deprecated socket methods
Julian Lam 16ba16cdc4 fix: deprecate chats.leave
Julian Lam fe17c94c35 feat: `DELETE /api/v3/chats/:roomId/users` and `DELETE /api/v3/chats/:roomId/users/:uid`
Julian Lam 6294beea0b fix: re-allow kicking of the other party in a 1-to-1 chat
Julian Lam d62ee84637 feat: `POST /chats/:roomId/users`
Julian Lam 6eea6451d2 feat: `GET /chats/:roomId/users` [breaking]
Julian Lam b292960594 feat: `GET /chats/:roomId/:mid`
Julian Lam f48ed3658a feat: `PUT /chats/:roomId/:mid`
Julian Lam 140f9d2481 fix: isFinite check for room assertion, more test migrating
Julian Lam e745e21242 chore: use apiv3 for room rename tests
Julian Lam c990211cf2 refactor: rewrite messaging tests to use API v3 calls when available, rewrote a bunch of tests to async..await
Julian Lam eeffb9d978 feat: `POST /api/v3/chats/:roomId`
Barış Soner Uşaklı 1264dcb555 test: add email interstitial tests
Barış Soner Uşaklı 5e08f7e604 test: don't use csrf_token for get,head, options
Barış Soner Uşaklı 0e273ab25a test: fix tests
Barış Soner Uşaklı 1f063058f0 breaking: remove socket.emit('user.exists')
remove socket.emit('user.deleteAccount')
remove socket.emit('user.follow')
remove socket.emit('user.unfollow')
remove socket.emit('user.saveSettings')
Barış Soner Uşaklı 6b45dee9c5 breaking: remove socket.emit('user.changeUsernameEmail')
remove socket.emit('user.changePassword')
remove socket.emit('user.updateProfile')
Barış Soner Uşaklı f918a38164 breaking: remove socket.emit('topics.follow')
remove socket.emit('topics.changeWatching')
Barış Soner Uşaklı 68fd087567 test: remove old test
Barış Soner Uşaklı 6ad0472106 breaking: remove socket.emit('topics.post')
remove socket.emit('topics.search')
remove socket.emit('topics.getTopic')
Barış Soner Uşaklı 49641a3217 breaking: remove socket.emit('user.banUsers');
remove socket.emit('user.unbanUsers');
Barış Soner Uşaklı 4604a5724c breaking: remove socket.emit('posts.reply')
remove socket.emit('posts.getPost')
Barış Soner Uşaklı 6d95684bc8 breaking: remove socket.emit('user.changePicture')
Barış Soner Uşaklı 0d694c781c breaking: remove socket.emit('user.search')
Barış Soner Uşaklı 02ea17ea1b breaking: remove deprecated groups socket calls
socket.emit('groups.join') removed use `PUT /api/v3/groups/:slug/membership/:uid`
socket.emit('groups.leave') removed use `DELETE /api/v3/groups/:slug/membership/:uid`
socket.emit('groups.grant') removed, `PUT /api/v3/groups/:slug/ownership/:uid`
socket.emit('groups.rescind') removed, `DELETE /api/v3/groups/:slug/ownership/:uid`
socket.emit('groups.update') removed, `PUT /api/v3/groups/:slug`
socket.emit('groups.create') removed, `POST /api/v3/groups`
socket.emit('groups.delete') removed, `DELETE /api/v3/groups`
Julian Lam bc7707aa88 fix: show user history only to admins and gmods
Baris Usakli 20e76699a2 lint: missing ;
Baris Usakli 0d1e57dce0 breaking: remove deprecated methods
socket.emit('topics.delete') removed use `DELETE /api/v3/topics/state`
socket.emit('topics.restore') removed use `PUT /api/v3/topics/state`
socket.emit('topics.purge') removed use `DELETE /api/v3/topics`
socket.emit('topics.lock') removed use `PUT /api/v3/topics/lock`
socket.emit('topics.unlock') removed use `DELETE /api/v3/topics/lock`
socket.emit('topics.pin') removed use `PUT /api/v3/topics/pin`
socket.emit('topics.unpin') removed use `DELETE /api/v3/topics/pin`
Barış Soner Uşaklı bd1cb2d4f9 breaking: remove socket.emit('posts.delete')
remove socket.emit('posts.restore')
remove socket.emit('posts.purge')
remove socket.emit('posts.deletePosts')
remove socket.emit('posts.purgePosts')
Barış Soner Uşaklı ec1d5e38da breaking: remove socket.emit('posts.upvote')
socket.emit('posts.downvote')
socket.emit('posts.unvote')
Barış Soner Uşaklı 8427c5d9db breaking: remove socket.emit('posts.move')
Barış Soner Uşaklı 4247f62441 breaking: remove socket.emit('posts.edit')
Barış Soner Uşaklı f7418ccd47 breaking: remove socket.emit('posts.bookmark/unbookmark')
Barış Soner Uşaklı 5c3d5f1f40 test: make it async
Barış Soner Uşaklı 26f00ffb60 test: fix
Barış Soner Uşaklı e3c0f0be0a refactor: remove unused
Barış Soner Uşaklı 07e2741ea6 breaking: remove deprecated admin.groups methods
Barış Soner Uşaklı a8afdc6019 fix: , don't modify fields array
use a single setObjectFields for the profile update
Barış Soner Uşaklı 830166d120 fix: , count posts instead of incr/decr
Barış Soner Uşaklı 45d755b6ae breaking: remove socket.emit('categories.getCategory')
Barış Soner Uşaklı cc3f82bc83 breaking: remove socket.emit('admin.categories.setPrivilege') and socket.emit('admin.categories.getPrivilegeSettings')
Barış Soner Uşaklı 0b9c01f9a0 breaking: remove deprecated socket.emit('admin.categories.update')
Barış Soner Uşaklı ba5d2e7b81 breaking: remove deprecated socket.emit('admin.categories.purge')
Barış Soner Uşaklı b335372348 breaking: remove deprecated socket.emit('admin.categories.create')
Barış Soner Uşaklı 10c19af2ad breaking: remove deprecated socket.emit('admin.categories.getAll')
Barış Soner Uşaklı f8f0a83b52 test: one more getTopicPosts test
Barış Soner Uşaklı 906dc5675e fix: handle start=0 stop=0 for topics.getTopicPosts
add more tests
Barış Soner Uşaklı a29535833f fix: , dont use spaces in tag class name
Barış Soner Uşaklı 6ea3b51f12
Zincrybulk ()
* feat: zincry bulk

* feat: psql bulk incr placeholder

* test: redis test fix

* test: redis test
Barış Soner Uşaklı 7b99dc46eb test: utils.params
Barış Soner Uşaklı 1cdb0b1e19 fix: don't crash if tid is falsy
Barış Soner Uşaklı cd2040ac6b test: regular user shouldn't see admin:privileges
Barış Soner Uşaklı 5843122178 test: add missing tests
Barış Soner Uşaklı 8117b7f22f breaking: remove deprecated post diff socket calls
Barış Soner Uşaklı 7434cbf66f test: add api token tests
Julian Lam 6c07433dea
refactor: use routePrefixMap instead of routeRegexpMap, +tests ()
* 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>
Barış Soner Uşaklı 404a877408 test: add missing tests
Barış Soner Uşaklı 2bdb4906ec test: upgrade.runParticular
Barış Soner Uşaklı 6dcdf1d342 breaking: remove setTopicSort/setCategorySort
Barış Soner Uşaklı c17ec996e0 test: add missing acp root category test
Barış Soner Uşaklı a7d1dfb65c breaking: remove deprecated socket user create/delete functions
add missing tests
Barış Soner Uşaklı 217aae4c81 test: cache dump test
Barış Soner Uşaklı c93d7fdbdd breaking: remove deprecated uploads.delete
Barış Soner Uşaklı 79de48c57f breaking: remove deprecated methods
Barış Soner Uşaklı bc120dba68 test: add missing controllers
Barış Soner Uşaklı edf7c647e8 test: fix tpl name
Barış Soner Uşaklı 6d186ff10d test: add mising email.test tpls
Barış Soner Uşaklı 754cdab896 test: debug routes in dev
Barış Soner Uşaklı 1280d9ae85 test: add digest route test
Barış Soner Uşaklı 2473d5d873 fix: , properly auto confirm first user
Barış Soner Uşaklı f11bc33ac5 test: digest
Barış Soner Uşaklı 0e72512509 test: fix function name
Barış Soner Uşaklı d375dcb873 test: submitUsage
Barış Soner Uşaklı d7c32ccbc2 test: remove log
Barış Soner Uşaklı 29b3587d91 test: middleware/expose.js
Barış Soner Uşaklı fa1ac04dc6 lint: fix
Barış Soner Uşaklı c5f08fdc81 breaking: remove socket.io/flags.js
refactor: helpers.loginUser returns a single object {jar, csrf_token}
Barış Soner Uşaklı fb363957d1 refactor: tab rules
Barış Soner Uşaklı 4359e5c97c refactor: remove tabs after declaration
Barış Soner Uşaklı aac0792ab8 test: mainPost removed from inf scroll
Barış Soner Uşaklı 8379c11b22 refactor: setObjectBulk to match sortedSetAddBulk
Barış Soner Uşaklı ae64b9f495 test: add another assert for random failing test
Barış Soner Uşaklı e3f5b706a5 test: show body when test fails
Julian Lam b912a564e3 fix: accidentally not clearing email when said email is confirmed for a different uid
Barış Soner Uşaklı 30cce14204 test: fix tpl test
Barış Soner Uşaklı 3386893b58 test: dbsearch no longer has staticDir
Barış Soner Uşaklı 4ac9270a2a test: increase timeout
Barış Soner Uşaklı 66e7cdac7a fix: , ignore if assigning to same parent
Barış Soner Uşaklı d27c9696e3
feat: add node 16 ()
* feat: add node 16

* fix: check errors in fork

* test: add use-spawn

* test: another test

* Revert "test: another test"

This reverts commit 606efe26fe1decd5d9269d63d5b649441ba2203b.

* test: another test

* fix: lint

* fix: remove spawn-wrap

* test: comment out plugin installs

* fix: lint

* test: uncomment all tests except npm i

* fix: lint

* test: bring back tests

* test: remove leftover override
Barış Soner Uşaklı 67cb249122 fix:
Julian Lam 10bb8cf747 test: fix account export test routes
Barış Soner Uşaklı 62ac9a8bbb test: add test aliases.buildTargets
Barış Soner Uşaklı bda5d14425 test: empty query params for search
Barış Soner Uşaklı 25ebbd6563 fix: windows tests
Barış Soner Uşaklı c8b2fc46dc fix: translator path traversal
Julian Lam fa1afbcf4a test: restore commented-out i18n test
Barış Soner Uşaklı f7967bdf68 feat: , biweekly digest option
Julian Lam 35af763418 feat: added failing i18n tests
Julian Lam bd893cdaa3
fix: extra debug log
Julian Lam 154ffea01b test: moved topic event and topic thumb tests to subfolder for better organisation
Barış Soner Uşaklı 63109c0705 test: possible fix to timeout
Barış Soner Uşaklı 8654a996d3 test: increase timeout
Barış Soner Uşaklı e6a17a6349
Psql multikey ()
* perf: convert promise.all to single query

* perf: single query for removeBulk

* perf: list
Barış Soner Uşaklı ea04aeded4
perf: convert promise.all to single query ()
Julian Lam be43cd2597
Topic Linkbacks ()
* feat: WIP topic linkbacks, + failing tests

* test: don't accidentally comment out all of the post tests

* fix: rename to "backlinks"

* feat: more stub code, more failing tests

* feat: backend methods and passing tests for topic backlinks

* test: uncomment test/posts.js again

* fix: missing quotation mark in topic event helper

* fix: superfluous usage of Promise.all

* test: fix broken test -- used hardcoded (and incorrect) url

* test: parseInt shenanigans
Peter Jaszkowiak ff84d6c52f
Add more chat hooks, replace toobig.jpg ()
* feat: more hooks for messaging

for use in global chat plugin

* fix: replace toobig.jpg

toobig.png is a real 10000x10000 image
Barış Soner Uşaklı ff850b2431 fix: lint
Barış Soner Uşaklı 4f8647a59c test: dashboard
Barış Soner Uşaklı 9fe9ab0869 test: add tests for admin privileges
Barış Soner Uşaklı 123354ca36 fix: psql tests
Barış Soner Uşaklı 3605ac811d fix: possible test fix for subfolder redirect
Barış Soner Uşaklı 3479832593 test: add missing tests
Julian Lam 8cb475482a test: remove debug log
Julian Lam 4eacfef02b fix: missing relative path in test
Julian Lam 58e0a366c8 fix: , missing null email check on new registrations, added tests
Julian Lam cb69934ad0 test: no need to create fake interstitial as NodeBB comes with some by default
Barış Soner Uşaklı 07859f7e8c fix: ban info test
Barış Soner Uşaklı 896ff2152f fix: up timeout for psql tests
Barış Soner Uşaklı 2657804c1f fix: , fix sorting of more than one page of pinned topics
Barış Soner Uşaklı 397835a05a feat: allow removing multiple items from list
Barış Soner Uşaklı 0ce4b87d85
fix: ()
Julian Lam 8cbad61e8a test: added test for external image via new change picture API
gasoved 3df79683f5
feat: create folders in ACP uploads ()
* feat: create folders in ACP uploads 

* fix: openapi

* test: missing tests

* fix: eslint

* fix: tests
Barış Soner Uşaklı e59d357533
feat: als ()
* feat: als

* fix: up test timeout

* fix: don't overwrite caller if it already exists

* fix: up test timeout for psql
Barış Soner Uşaklı 162ebacf5b fix: parseInt tids
Barış Soner Uşaklı 0c81642997 fix: , update posts in queue if target tid is merged
Julian Lam caf8968791 fix: accidental early return in confirmByCode, tests, race condition
A race condition caused mongo/psql tests to fail.
gasoved a917210c5b feat: invites no longer require email
Julian Lam 81611ae1c4 fix(emails): broken test for api/user/email/:email
+ fixed broken tests due to unexpected behaviour for email confirmation
Julian Lam 6694bdd550 fix(emails): registration tests, email no longer passed-in, API tests (confirm email for test accounts)
Julian Lam 087e6020e4 refactor(email): validation checking methods, +tests fix
Julian Lam ab9b671693 fix(emails): broken test due to sticky registration interstitial
Julian Lam a3a3b10fb3 test(emails): fixing broken tests introduced by e5ff68acd
Julian Lam 12b2a979a0 feat: removal of emailExists socket listener
Julian Lam 2c06ac9a45 fix: test :shipit:
Julian Lam f71f29510d fix: failing test from d1959a2
Julian Lam cc6cbfcdc4
Flags API ()
* 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
Barış Soner Uşaklı 4a56388ec3
feat: store topic tags in topic hash ()
* feat: store topic tags in topic hash

breaking: remove color info from tags (use css)

* fix: remove unused tag modal

* fix: tag search
Julian Lam 0960a81468 fix: tests
gasoved 97c8569a79 fix: hide private user data in api/v3/users/[uid]
Barış Soner Uşaklı 84e065752f
fix: ()
dont allow regular user to remove system tags
gasoved 8168c6c407
fix: purge uploaded images accordingly ()
* fix: purge uploaded images accordingly

* fix: tests

* fix: relative paths
Julian Lam f9728aff2c feat: clear reset tokens on successful login
Julian Lam 5c42b3eab0 test: fixed broken tests from , removed token clean on token usage as it is superceded by token clean on generation (+ associated test)
Julian Lam 16e0bca570 fix: improper use of filename extensions
Barış Soner Uşaklı 2c22b06feb fix: isObjectField(s) empty field
Barış Soner Uşaklı 084c985117 feat: guard against multiple resolves
Barış Soner Uşaklı 5fe97b9c2e revert: sync hooks
Barış Soner Uşaklı 308252f566 fix: , dont error in markUnread if room doesnt exist
this prevents deleting the user if they are the only person in the chat room
Barış Soner Uşaklı 1029a06a87 test: fix tests
Barış Soner Uşaklı 01956af43a feat: remove sync hooks support
Barış Soner Uşaklı 92de49be00 test: add test for undefined fields in getObjectsFields
gasoved 8b79c7f139
fix: regress. rescheduling shouldn't add to sets that pinning removed… ()
* fix: regress. rescheduling shouldn't add to sets that pinning removed from

* test: remove the also from tests
Barış Soner Uşaklı 435067aa5f test: remove logs
Barış Soner Uşaklı 2ea468daa3 test: clear cache between runs, require middleware later in helpers
Barış Soner Uşaklı 2f401d7d74 test: test times
psychobunny 4dd3844680 fix: logic is hard
psychobunny bc0ca61c6a fix: run in series
Barış Soner Uşaklı 80ef108220 test: log
psychobunny 13fa983e61 fix: accidentally committed this
psychobunny eb240c905f fix: tests
psychobunny ea22cd302a fix: use req.ip instead, since guests can upload as well
psychobunny a9978fcfd2 feat: rate limit file uploads
Barış Soner Uşaklı 36f119a96a fix: , keep query params on redirect
Julian Lam f4c5050a16 fix: failure on session reroll 🍣 test
Julian Lam a3a7ab3ae1 test: added test for session id reroll on login