Commit Graph

1292 Commits

Author SHA1 Message Date
Barış Soner Uşaklı
4fa44da667 get rid of verbose logs 2026-03-09 13:53:13 -04:00
Barış Soner Uşaklı
8ec1ccccfe fix: promises in groups.leave
speed up user.delete

user.delete calls `groups.leaveAllGroups` which calls rejectMembership with 500+ groups. This function then tries to remove the user from `group:<group>:pending` and `group:<group>:invited` sets so a total for 1k sets. You can't be invited or request membership to privilege groups so filter the groups before sending to rejectMembership

clearGroupTitleIfSet function tries to remove the group title from the user. It was only skipping privilege groups and registered-users, but unverified-users & verified users weren't added to the check

Messaging.leaveRooms, make a single call to isUserInRoom and passing an array of roomIds

In user.delete, check utils.isNumber(uid) once.

Call deleteVotes/deleteChats/revokeAllSessions in Promise.all

If user is local dont call activitypub.actors.remove(), this saves a db call to `await db.isSortedSetMember('usersRemote:lastCrawled', id);`
2026-03-09 13:47:26 -04:00
Barış Soner Uşaklı
06bf2abfc4 fix: #14033, fix gif profile images
add test
2026-03-01 19:48:53 -05:00
Barış Uşaklı
e4c945f636 refactor: allow passing an array to topics.purge and topics.purgePost… (#14018)
* refactor: allow passing an array to topics.purge and topics.purgePostsAndTopic

deprecate action:topic.purge, add action:topics.purge with array of deleted topics
update usage of topics.purge to pass in an array
fix an issue in posts/delete where cids were passed to parseInt, caused AP cids to get saved into category:NaN

* lint

* refactor: change style

* use array of tids
2026-02-26 13:09:42 -05:00
Barış Soner Uşaklı
1dae3d222f feat: add invitedBy to user info page, closes #13972, closes #13997 2026-02-17 19:58:10 -05:00
Barış Soner Uşaklı
2015777fd1 fix: when registering through an invite, prepopulate the email field on /register/complete with the email 2026-02-17 19:07:28 -05:00
Barış Soner Uşaklı
8c6ce198e1 feat: allow configuring unreadCutoff per user, closes #6811 2026-02-16 22:57:00 -05:00
Barış Soner Uşaklı
0e2a42d547 test: fix spec 2026-02-12 23:22:10 -05:00
Barış Soner Uşaklı
0b7df274c3 fix: unbans not triggering if user data is loaded wit 'banned' property only
this was happening because of `fieldsToRemove` running before unban logic and clearing out 'banned:expire' field to undefined
2026-02-12 22:49:55 -05:00
Barış Soner Uşaklı
9ac507e5b4 feat: track all caches created in acp
closes #13979
2026-02-12 10:31:18 -05:00
Barış Soner Uşaklı
b95cd88214 fix: regression from refactor of uploadedpicture refactor 2026-02-11 21:14:50 -05:00
Barış Soner Uşaklı
d52b135954 test: fix hasOwn 2026-02-10 21:43:44 -05:00
Barış Soner Uşaklı
ffc4c0dd99 test: group members test 2026-02-10 21:39:57 -05:00
Barış Soner Uşaklı
9a198c382e refactor: run searches in parallel 2026-02-10 21:12:41 -05:00
Barış Soner Uşaklı
dcbbc187ab fx: filter at the end of user.search
remove commented out code
2026-02-10 17:58:04 -05:00
Barış Uşaklı
62d88555ae feat: eslint10 (#13967)
* feat: eslint10

* lint: no-useless-assignment
2026-02-10 12:39:11 -05:00
Barış Soner Uşaklı
e4d852b4ca test: dont return cover:url if its not requested 2026-02-08 20:46:16 -05:00
Barış Soner Uşaklı
db07456bc0 test: fix username test
move cover:url code to user/data.js like uploadedpicture
2026-02-08 20:30:01 -05:00
Barış Soner Uşaklı
fb460725ad error:invalid-username doesnt have params 2026-02-08 13:14:33 -05:00
Barış Uşaklı
7703140b7c Xregexp remove, dont allow invalid slugs (#13963)
* feat: remove xregexp

add slugify tests,
dont accept invalid slugs like `.`, `..`
add isSlugValid function

* test: add more tests, check slug on rename as well
2026-02-08 13:11:40 -05:00
Barış Soner Uşaklı
0eaf2beeb2 feat: closes #13961, rename ban-reasons to custom reasons
use them for ban, mute and post queue depending on the type selected
if type is set to all, the reason is displayed in ban/mute and post queue
move reason label + dropdown + textarea  to a partial
2026-02-07 21:41:11 -05:00
Barış Uşaklı
d086ed2c27 feat: ban/mute reasons (#13960)
add acp page to create reasons
add dropdown to insert them into reason
change reason field into textarea
translate and parse reason before sending ban email
2026-02-07 14:32:05 -05:00
Barış Soner Uşaklı
01f56e6cdf Merge branch 'master' into develop 2026-01-28 12:42:33 -05:00
Barış Soner Uşaklı
eab4025bdd fix: pagination always getting set to default
dont allow 0 or negative
2026-01-28 10:48:09 -05:00
Barış Soner Uşaklı
fe081ebd7b Merge branch 'master' into develop 2026-01-23 12:35:35 -05:00
Barış Soner Uşaklı
e231c010f6 refactor: get rid of map, move parallel calls into promise.all 2026-01-22 11:49:16 -05:00
Barış Soner Uşaklı
f29c9f064b fix: closes #13258, dont mark digest as delivered if it fails
show fail count and sent count separately
2026-01-22 11:31:59 -05:00
Barış Soner Uşaklı
3272ea576f fix missing await on appendFile 2026-01-21 18:42:31 -05:00
Barış Soner Uşaklı
1b08aef2d0 fix: wrap fields in quotes in user csv export 2026-01-21 18:31:58 -05:00
Barış Soner Uşaklı
beb3f8ff94 Merge branch 'master' into develop 2026-01-20 20:15:07 -05:00
Barış Soner Uşaklı
07d2c9463e fix: remove bidi chars from displayname
fixes chat teasers and probably every other place where display name is shown
2026-01-20 18:42:31 -05:00
Barış Soner Uşaklı
6b3ec63621 refactor: add guards against bad data & infi loops 2026-01-20 12:05:52 -05:00
Barış Soner Uşaklı
37675689f8 refactor: move username check to createOrQueue 2026-01-19 22:43:39 -05:00
Barış Soner Uşaklı
7e27da61ab refactor: checkUsername function https://github.com/NodeBB/NodeBB/issues/10864 2026-01-19 22:26:09 -05:00
Barış Uşaklı
e2e1744824 User create / registeration queue refactor (#13905)
* feat: add options parameter to User.create

add emailVerification: ('send'|'verify'|'skip') param to User.create to control email verification

add a new method User.createOrQueue(). store options that will be passed to User.create() when registration is accepted in _opts

If there is no password passed to registration queue(SSO register) don't store hashedPassword

removed the isFirstUser hack in user.create, when creating the admin user in install.js passing `emailVerification: 'verify'` to immediately verify the email, same with all the hacks in tests

auth: if an SSO plugin sends back an info object, redirect to root and display the message

* refactor: make function private

* refactor: destruct return

* test: fix flag test

* test: group tests

* feat: show ssoIcon if available in register queue

* add icon/title
2026-01-19 18:40:48 -05:00
Barış Uşaklı
7b793527f9 Change owner rest route (#13881)
* fix: dont use sass-embedded on freebsd, #13867

* fix: #13715, dont reduce hardcap if usersPerPage is < 50

* fix: closes #13872, use translator.compile for notification text

so commas don't cause issues

* fix: remove bidiControls from notification.bodyShort

* refactor: move change owner call to rest api

deprecate socket method

* fix spec

* test: one more fix

* test: add 404

* test: fix tests :rage1:

* test: update test to use new method
2026-01-11 14:38:14 -05:00
Julian Lam
3ede64d8a1 refactor: move all methods in src/api/activitypub.js to src/activitypub.out.js 2025-10-22 14:41:56 -04:00
Barış Soner Uşaklı
312df52393 fix: only process unique slugs 2025-08-25 11:18:04 -04:00
Barış Soner Uşaklı
5a5ca8a5fb fix: closes #13526, dont send multiple emails when user is invited 2025-07-02 17:38:35 -04:00
Barış Soner Uşaklı
6c3e2a8e22 refactor: create date once per digest.send 2025-05-15 09:42:55 -04:00
Barış Soner Uşaklı
3faae559a8 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2025-05-15 09:38:49 -04:00
Barış Soner Uşaklı
3d96afb2d1 feat: use local date string for digest subject
closes #13420
2025-05-15 09:38:43 -04:00
Julian Lam
7e25946cd7 breaking: removal of filter:user.verify.code 2025-05-06 13:38:42 -04:00
Julian Lam
28b7a20339 lint: yup. 2025-04-29 15:13:22 -04:00
Julian Lam
f02d96614a fix: remote bare hash for remote users on prune as well 2025-04-29 10:28:18 -04:00
Julian Lam
4d1d7c3dca fix: remote categories should not show up in a user's follow lists 2025-04-29 10:28:18 -04:00
Barış Soner Uşaklı
97a232e9d5 dont make db call if ap disabled 2025-04-29 10:28:17 -04:00
Barış Soner Uşaklı
74661381d8 refactor: use promise.all 2025-04-29 10:28:17 -04:00
Barış Soner Uşaklı
c1b7196429 fix: spread fail, @julianlam
add ap check
2025-04-29 10:28:17 -04:00
Julian Lam
6e374200e5 send ap follow/undo-follow if remote category watch state changes 2025-04-29 10:28:17 -04:00