934 Commits (3d7e2e1e8ec67ec227fbcf91963e996043c403d7)

Author SHA1 Message Date
Barış Soner Uşaklı 86b7f8a5d4 fix: #8962, dont show null for purged targets 5 years ago
Barış Soner Uşaklı 5f0f476b57 feat: #9005, use timestamp in profile/cover images
delete current one if keepAllUserImages is turned off
fix typo in data
5 years ago
psychobunny 4317cdea34 fix: #9002 ban templates not user friendly 5 years ago
Barış Soner Uşaklı d46740f860 fix: #9007 revoke old sessions after adding 5 years ago
Barış Soner Uşaklı a4fe4d3cf5 fix: allow guests to see their replies immediately 5 years ago
Barış Soner Uşaklı 5080f35752 fix: #8991, logout on password reset, dont verify email if password expired
dont allow same password on reset
5 years ago
Barış Soner Uşaklı 7f5efc3e93 fix: #8992, set email:confirmed for first admin user 5 years ago
Barış Soner Uşaklı 6e6a7a8f8a fix: #8969, export csv to file 5 years ago
Barış Soner Uşaklı dadb2527da fix: #8974, with password login for approval queue 5 years ago
Julian Lam 21d6225ce0 fix: 'already-deleting' error on subsequent account content deletions 5 years ago
Barış Soner Uşaklı 4f37eddc5e feat: clear reset tokens on user delete 5 years ago
Barış Soner Uşaklı 0ca40af834 fix: #8939, fix username change notification getting filtered out 5 years ago
Julian Lam 6e2da9966e refactor: move plugin hook methods to plugin.hooks.* 5 years ago
Julian Lam 046d0b1637
feat: allow pins to expire (if set) (#8908)
* fix: add back topic assert middleware for pin route

* feat: server-side handling of pin expiries

* refactor: togglePin to not require uid parameter [breaking]

* feat: automatic unpinning if pin has expiration set

* feat: client-side modal for setting pin expiration

* refactor: categories.getPinnedTids to accept multiple cids

... in preparation for pin expiry logic, direct access to *:pinned zsets is discouraged

* fix: remove references to since-removed jobs file for topics

* feat: expire pins when getPinnedTids is called

* refactor: make the togglePin change non-breaking

The 'action:topic.pin' hook now sends uid again, as before. However, if it is a system action (that is, a pin that expired), 'system' will be sent in instead of a valid uid
5 years ago
Barış Soner Uşaklı 1be08b2e8b fix: guest displayname 5 years ago
Barış Soner Uşaklı dbd814c25f fix: spec, only call modifyUser on unique user objects 5 years ago
Barış Soner Uşaklı ae5d4405c0 fix: setting 5 years ago
Barış Soner Uşaklı 9ca44e6f54
feat: add displayname into user obj #8637 (#8909)
* feat: add displayname into user obj #8637

* fix: spec

* perf: dont load settings if acp setting is turned off
5 years ago
Julian Lam a0b7a82350
feat(api): account deletion routes for the Write API (#8881)
* feat(api): account deletion routes for the Write API

* refactor: rewrite client-side calls to account deletion to use api

* style: apply DRY
5 years ago
Barış Soner Uşaklı 1d6bcbebde feat: https://github.com/NodeBB/NodeBB/issues/8147 5 years ago
gasoved 3ccebf112e
feat: invites regardless of registration type, invite privilege, groups to join on acceptance (#8786)
* 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>
5 years ago
Barış Soner Uşaklı 51b7eca119 fix: run every hour, dont show message if average_time is 0 5 years ago
Opliko 04f4429f72
Resolve #7514 - optional timer for registration queue (#8796)
* feat: #7514 Optional timer for registration queue

* feat: show minutes in average time

* fix: don't show total number of minutes

* feat: implement requested changes

* fix: just store minutes instead of milliseconds

* feat: set default values
5 years ago
Julian Lam 512f6de6de
feat: allow passwords with length > 73 characters (#8818)
* 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
5 years ago
Barış Soner Uşaklı 4818ec377e fix: missing await 5 years ago
Barış Soner Uşaklı a02ae6f5df refactor: simpler check in user.blocks.filter 5 years ago
Julian Lam a6a52430ce fix: remove setCategorySort and setTopicSort 5 years ago
Julian Lam aa8faf58a0 refactor: remove /users/{uid}/settings/{setting} route
@baris Also, I am now allowing the following properties to be saved in User.saveSettings:
- categoryTopicSort
- topicPostSort
- setCategorySort
- setTopicSort
5 years ago
Barış Soner Uşaklı a05905f196
performance improvements (#8795)
* 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
5 years ago
Barış Soner Uşaklı db63f5e3f0 fix: #8781 5 years ago
Barış Soner Uşaklı 43afe7ffab refactor: async/await src/user/approval 5 years ago
Barış Soner Uşaklı 872bacf1c4
Admin/users (#8762)
* feat: wip admin/users

* feat: more work

* feat: more fixes

* feat: #8662, 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
5 years ago
Julian Lam 30b3fedca4 fix: password reset to invalidate all existing reset tokens for that uid 5 years ago
Barış Soner Uşaklı 1ee9384875 fix: #8757, allow all slashes in category route 5 years ago
Barış Soner Uşaklı dc29f4dca2 refactor: switch to using slugify module 5 years ago
cryptoethic b3ed26ac2c
feat: revoke user sessions above threshold (#8731)
* feat: revoke user sessions above threshold

* fix: removed translations from en-US

* fix: defined default maxUserSessions in install\data\defaults.json
5 years ago
Julian Lam a5af2dc819 feat: added PUT/DELETE /api/v1/users/:uid/ban routes 5 years ago
Barış Soner Uşaklı e60357d20d
feat: #6594, add top/popular sections to digest email (#8709) 5 years ago
Timothy Fike f85fe7faff
don't invite an already invited email (#8688)
* don't invite an already invited email

* add email-invited translation string
5 years ago
psychobunny b6f2f0e5d0 fix: #8681 change owner modal's search should check if user is banned 5 years ago
Barış Soner Uşaklı ac43cd8b6f fix: #8665, trim email before checking validity 5 years ago
Julian Lam 29b357bc66 refactor: expose new method for appending moderation note 5 years ago
Barış Soner Uşaklı 38d3982bf1 fix: #8418
allow updating other profile fields when username isnt being changed
5 years ago
Barış Soner Uşaklı 4be693f2e7
feat: fullname search (#8641)
* 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
5 years ago
Barış Soner Uşaklı 5f10d67db5
Remove sounds (#8617)
* feat: remove sounds

* feat: remove more sounds

* feat: disable sounds plugin

* fix: openapi
5 years ago
Barış Soner Uşaklı 54b497258f feat: add missing name to profile image upload 5 years ago
Barış Soner Uşaklı a263897627 fix: #8604 5 years ago
Barış Soner Uşaklı 9f9164a9be fix: #8582 5 years ago
Barış Soner Uşaklı 846b7d2430 refactor: change pwd change logic
add one more test
5 years ago
Julian Lam 16cee1b03b fix: improper targetUid check during password change 5 years ago