Commit Graph

1470 Commits (c638186b33265b5cdf51330a7c7208a55a600b3b)

Author SHA1 Message Date
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
Barış Soner Uşaklı 161081e960 fix: escape flag reason
Barış Soner Uşaklı f9df6431c9 revert: revert tag sort
Barış Soner Uşaklı 05f2236193 feat: add reverse of recent to getSortedTopics