Commit Graph

185 Commits (2e623dd2713aa71daf8d94ac972e0384c9a2e02c)

Author SHA1 Message Date
Julian Lam 8cbad61e8a test: added test for external image via new change picture API
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 087e6020e4 refactor(email): validation checking methods, +tests fix
Julian Lam a3a3b10fb3 test(emails): fixing broken tests introduced by e5ff68acd
Julian Lam 12b2a979a0 feat: removal of emailExists socket listener
Julian Lam 0960a81468 fix: tests
gasoved 97c8569a79 fix: hide private user data in api/v3/users/[uid]
gasoved 8168c6c407
fix: purge uploaded images accordingly ()
* fix: purge uploaded images accordingly

* fix: tests

* fix: relative paths
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)
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ı 8ef38cb252 test: add missing test
Barış Soner Uşaklı 0af9d26fe5 feat: change uploadCroppedPicture to use updateProfile as well
Barış Soner Uşaklı a598abcd8e feat: use updateProfile for picture change
so it triggers action:user:updateProfile
Julian Lam d3a9e76ae2 test(user): added additional tests for icon background colour
Peter Jaszkowiak dab3b23575 chore: eslint no-var, vars-on-top
Peter Jaszkowiak b56d9e12b5 chore: eslint prefer-arrow-callback
Peter Jaszkowiak 707b55b6a5 chore: eslint prefer-template
gasoved 53e0d4d2e0 feat: banned-users group
Barış Soner Uşaklı 647d3ba810 fix: removed methods
Julian Lam f2a5cd0b67 fix: tests for
Peter Jaszkowiak 2be396ff6e fix: email testing and settings change from ACP
- changing email SMTP settings wouldn't apply the first time
- "Send Test Email" now will report emailer errors in most cases
Barış Soner Uşaklı 80de572aa1 feat: add user.email.confirmByUid for sso plugins
Barış Soner Uşaklı 557f0f5631 feat: use correct code
Barış Soner Uşaklı f25000cb60 fix: pwd reset test
Barış Soner Uşaklı 5080f35752 fix: , logout on password reset, dont verify email if password expired
dont allow same password on reset
Barış Soner Uşaklı e32cd31ec6 fix:
gasoved 3ccebf112e
feat: invites regardless of registration type, invite privilege, groups to join on acceptance ()
* feat: allow invites in normal registration mode + invite privilege

* feat: select groups to join from an invite

* test: check if groups from invitations have been joined

* fix: remove unused variable

* feat: write API versions of socket calls

* docs: openapi specs for the new routes

* test: iron out mongo redis difference

* refactor: move inviteGroups endpoint into write API

* refactor: use GET /api/v3/users/:uid/invites/groups

Instead of GET /api/v3/users/:uid/inviteGroups

* fix: no need for /api/v3 prefix when using api module

* fix: tests

* refactor: change POST /api/v3/users/invite

To POST /api/v3/users/:uid/invites

* refactor: make helpers.invite awaitable

* fix: restrict invite API to self-use only

* fix: move invite groups controller to write api, +tests

* fix: tests

Co-authored-by: Julian Lam <julian@nodebb.org>
Julian Lam 512f6de6de
feat: allow passwords with length > 73 characters ()
* feat: allow passwords longer than 73 characters

Context: A bcrypt/blowfish limitation means that password length is capped at 72 characters. We can get around this without compromising on security
by hashing all incoming passwords with SHA512, and then sending that to bcrypt.

https://dropbox.tech/security/how-dropbox-securely-stores-your-passwords

* feat: add additional test for passwords > 73 chars

* fix: remove 'password-too-long' error message and all invocations

* test: added test to show that a super long password won't bring down NodeBB

* fix: remove debug log

* Revert "fix: remove 'password-too-long' error message and all invocations"

This reverts commit 1e312bf7ef7e119fa0f1bd3517d756ca013d5e79.

* fix: added back password length checks, but at 512 chars

As processing a large string still uses a lot of memory
Barış Soner Uşaklı a05905f196
performance improvements ()
* perf: nconf/winston/render

cache nconf.get calls
modify middleware.pageView to call next earlier
don't call winston.verbose on every hook see https://github.com/winstonjs/winston/issues/1669
translate header/footer separately and cache results for guests

* fix: copy paste fail

* refactor: style and fire hook only log in dev mode

* fix: cache key, header changes based on template

* perf: change replace

* fix: add missing await

* perf: category

* perf: lodash clone

* perf: remove escapeRegexChars
Julian Lam e98285dbbb fix: reimplementing isPrivilegedOrSelfAndPasswordMatch
Barış Soner Uşaklı 84a179f48c Merge branch 'master' of https://github.com/NodeBB/NodeBB
Julian Lam 222b4c9533 fix: broken tests from api change
Barış Soner Uşaklı 7d86be2bc2 fix: tests
Barış Soner Uşaklı 872bacf1c4
Admin/users ()
* feat: wip admin/users

* feat: more work

* feat: more fixes

* feat: , verified/unverified user groups

* feat: add filter

* feat: change user search to use filters array

* refactor: remove unused search call

* fix: tests

* fix: cant join system groups

* fix: upgrade script
Barış Soner Uşaklı 1ee9384875 fix: , allow all slashes in category route
Barış Soner Uşaklı ac43cd8b6f fix: , trim email before checking validity
Barış Soner Uşaklı 38d3982bf1 fix:
allow updating other profile fields when username isnt being changed
Barış Soner Uşaklı 4be693f2e7
feat: fullname search ()
* feat: fullname search

* fix: take last element

* fix: attempt to fix psql like query

* feat: upgrade sript, another fix attempt

* fix: psql test

* fix: psql scan

* feat: add debug for test

* feat: test collate

* feat: cleanup

* fix: upgrade script
Barış Soner Uşaklı 5f10d67db5
Remove sounds ()
* feat: remove sounds

* feat: remove more sounds

* feat: disable sounds plugin

* fix: openapi
Barış Soner Uşaklı 9f9164a9be fix:
Barış Soner Uşaklı 846b7d2430 refactor: change pwd change logic
add one more test
Barış Soner Uşaklı a333cb6ca4 feat: one more test
Barış Soner Uşaklı ecda4ad8ad feat: tests for password change
Barış Soner Uşaklı b9cff5775c fix: edge case in test
if user is created the other one will be renamed
Barış Soner Uşaklı 02ac44cc5a fix: dont allow searching by ip/banned/flagged for regular users
Barış Soner Uşaklı 48b41debe6
fix: vulnerability in cover and admin uploads ()
* fix: vulnerability in cover and admin uploads

* fix: remove old test

* fix: update tests
Barış Soner Uşaklı bef37e27cb
fix: test lock for user create ()
* fix: test lock for user create

* fix: redis hdel with undefined

* feat: add test for undefined key in deleteObjectFields
Barış Soner Uşaklı 18d892398f fix: add timestamp to initial username history