11889 Commits (23dafa204cf3b6e751998d762691fafea5d8bbfe)

Author SHA1 Message Date
Barış Soner Uşaklı 2ea468daa3 test: clear cache between runs, require middleware later in helpers 4 years ago
Barış Soner Uşaklı d15e27107e test: log 4 years ago
Barış Soner Uşaklı 354e0a822d test: remove equals 4 years ago
psychobunny 4dd3844680 fix: logic is hard 4 years ago
psychobunny 2e9efc0e8a fix: wrong variable for cache 4 years ago
psychobunny fa0c92a7c4 fix: eslint 4 years ago
psychobunny ea22cd302a fix: use req.ip instead, since guests can upload as well 4 years ago
psychobunny a9978fcfd2 feat: rate limit file uploads 4 years ago
Barış Soner Uşaklı 36f119a96a fix: #9492, keep query params on redirect 4 years ago
gasoved 8faa6e4515
feat: filter flags by username #8489 (#9451)
* feat: filter flags by username #8489

* feat: toggle flag filter text
4 years ago
Julian Lam 1fee6a702a fix: #9487, session data gathered during a session is lost upon login
e.g. returnTo, tids_viewed, etc.
4 years ago
Julian Lam 697ed3bf37 feat: roll session identifier on login, as security best practice
see: https://owasp.org/www-community/attacks/Session_fixation
4 years ago
Julian Lam e845c34b52 fix: registration interstitials not handling promise rejections properly 4 years ago
Barış Soner Uşaklı 4494728cf8 feat: allow different slugs 4 years ago
psychobunny 60eed8d89f fix: let recent replies respect oldest/newest sort settings 4 years ago
Barış Soner Uşaklı 6907837fce fix: #9483, fix events count display 4 years ago
Barış Soner Uşaklı 161081e960 fix: escape flag reason 4 years ago
Barış Soner Uşaklı fd3bc605c6 feat: remove sort again 4 years ago
Barış Soner Uşaklı 2dc3283f19 fix: updateCategoryTagsCount 4 years ago
Barış Soner Uşaklı f9df6431c9 revert: revert tag sort 4 years ago
Barış Soner Uşaklı 036f935fa9
fix: #9473 (#9476) 4 years ago
gasoved 397baf0254
refactor: widgets (#9471) 4 years ago
Julian Lam f65d2162f8 feat: update hook
Hook payload updated to pass login strategy (if overridden, this value will be something other than 'local'), and explicitly pass error if the login failed.
4 years ago
Barış Soner Uşaklı f32ea1737a fix: #9466, don't call leaveRoom in maintenance mode 4 years ago
gasoved a0dd90804c
fix: exempt ST from being del/res via last main posts (#9468) 4 years ago
Barış Soner Uşaklı 784600d930 fix: #9462, on install copy default favicon 4 years ago
Barış Soner Uşaklı 05f2236193 feat: add reverse of recent to getSortedTopics 4 years ago
Julian Lam 9c52fd2e74 fix: #9450 express session saved even if saveUninitialized explicitly passed in 4 years ago
Barış Soner Uşaklı 285aa36556 feat: allow exists methods to work with arrays and single id 4 years ago
Barış Soner Uşaklı d16b45fd2d feat: pass all data to filter:category.get 4 years ago
gasoved aa0137b1c4
feat: rescheduling (editing ST) (#9445) 4 years ago
psychobunny 9e1f72a435 feat: optional urlMethod param for loginStrategies 4 years ago
Peter Jaszkowiak 2a03012e2c
fix: ./nodebb help with commander@7 (#9434)
hopefully this one last as long as the last one did
4 years ago
Barış Soner Uşaklı 728ac5ff72 perf: increase batch size for notifs, run parallel 4 years ago
Barış Soner Uşaklı 344575dde1
feat: add hooks to language loading (#9426)
and flushNamespace method
4 years ago
Barış Soner Uşaklı edf80cfb3b fix: hide titleRaw for deleted topics as well 4 years ago
Barış Soner Uşaklı a1ee1a2a76 chore: remove log 4 years ago
Barış Soner Uşaklı c5dda64fa8 fix: #9410, fix post queue
items in the cache were parsed over and over again
4 years ago
Barış Soner Uşaklı 9052db930f fix: privilege tables 4 years ago
gasoved 077330b764
feat: scheduled topics (#9399)
* feat: scheduled topics

* refactor: linting fixes

* fix: tests

* fix(test): race condition

* fix: make a single request
4 years ago
Barış Soner Uşaklı 67b09cba5f fix: #9420, paginate after loading notifications 4 years ago
Barış Soner Uşaklı e42b152f16 fix: #9414, use posts:view_deleted 4 years ago
Barış Soner Uşaklı a94d96514e feat: show link if category is a link 4 years ago
Barış Soner Uşaklı 2ceda70a97 fix: preserve order when changing parent 4 years ago
Barış Soner Uşaklı d00268c9b8 refactor: style, no need to convert length to string 4 years ago
Julian Lam d8ff9851a3 fix: typo in switch..case 4 years ago
Barış Soner Uşaklı 801570e4cf fix: #9404, show signatures if the target user has signature privilege 4 years ago
Barış Soner Uşaklı 75553b246c fix: sorting when filtering by uid 4 years ago
Julian Lam 98b72ca572 fix: allow local (and overridden) login strategies to pass Error objects back 4 years ago
Barış Soner Uşaklı 6aa60b63b5 fix: category search not using uid 4 years ago
Barış Soner Uşaklı 56523aa148 revert: change toPid truthy 4 years ago
Barış Soner Uşaklı 90d64fe1df fix: #9398, crash on post flag 4 years ago
Barış Soner Uşaklı a8f7b24452
fix: #9395, pass all data from client to Topics.reply (#9396)
* fix: #9395, pass all data from client to Topics.reply

so plugins can set custom fields
refactor and use setDefaultPostData

* fix: circular json error

* refactor: change params
4 years ago
Barış Soner Uşaklı 4ac38ab2bc fix: lint 4 years ago
Barış Soner Uşaklı eb360351e5 fix: #9394, fix guest handles 4 years ago
Barış Soner Uşaklı 5c59354c58 fix: #9389, allow admins to add themselves to private groups 4 years ago
Barış Soner Uşaklı 4327a09d76
feat: allow optional fields argument on db.getObject(s) (#9385) 4 years ago
Barış Soner Uşaklı f316c4d4b8 refactor: remove uncessary check 4 years ago
Barış Soner Uşaklı e789fe8d2a fix: #9383, don't show deleted topic titles in inf scroll 4 years ago
Julian Lam cc489708ee fix: #9378, crash on verifyToken if API Token settings not saved (null case error) 4 years ago
Barış Soner Uşaklı 35700d1634 fix: closes #9382, fix digest topic links 4 years ago
Barış Soner Uşaklı 668508cc37 feat: closes #9380, add category filtering and topic tools to tag page 4 years ago
Barış Soner Uşaklı 34b9aaedee
feat: allow sync function (#9379)
* feat: allow sync function

* fix: remove async
4 years ago
Barış Soner Uşaklı e725beaa4a Revert "feat: allow filter functions that return promises or the data directly"
This reverts commit e6c52cf26c.
4 years ago
Barış Soner Uşaklı e6c52cf26c feat: allow filter functions that return promises or the data directly 4 years ago
Barış Soner Uşaklı 53f67ff396 fix: regression from filter hook change 4 years ago
Barış Soner Uşaklı 52082e1296 feat: add resolve flag to post tools 4 years ago
Julian Lam 2a939aad8d fix: regression via c1b3079d93
Also refactored privilege render logic so that it no longer needs a server-side hack to render column count
4 years ago
Julian Lam 4cbd13fd9c feat: hide revert button in ACP > Privileges until privileges change 4 years ago
Barış Soner Uşaklı 46270f9f20 feat: bring back static hook timeout 4 years ago
Barış Soner Uşaklı d05d7091ae refactor: remove async.each/reduce from hooks for better stack traces 4 years ago
Barış Soner Uşaklı 0d3979efd0 refactor: use hooks.fire 4 years ago
Barış Soner Uşaklı 9382fc6dc5 fix: #9370, show correct teaser index if sorting is newest to oldest 4 years ago
Barış Soner Uşaklı 1982edfde3 refactor: fix variable name 4 years ago
Barış Soner Uşaklı 3c60ccfd4d feat: upgrade connect-mongo, closes https://github.com/NodeBB/NodeBB/pull/9367 4 years ago
Julian Lam f71cb0e427 feat: pass interstital errors to individual partials as well as to registerComplete 4 years ago
Barış Soner Uşaklı 5eb3132dae feat: add filter:plugins.firehook 4 years ago
Barış Soner Uşaklı ebccc7940b fix: don't copy if src doesn't exist 4 years ago
Barış Soner Uşaklı 754283d37b feat: copy default favicon if it doesn't exist 4 years ago
psychobunny 771a8955a4 fix: #9362 best not to check file exists on every page load; copying favicon to uploads/system folder instead 4 years ago
psychobunny ad5654952a fix: #9362 4 years ago
Julian Lam 678e8f0fde fix: regression where login redirect for admin routes didn't go to local=1 4 years ago
Julian Lam 4b5450853d feat: allow missing (or non-array) middlewares argument in route helper methods 4 years ago
Barış Soner Uşaklı e74df53997 feat: pass modified params, only affects filter hooks 4 years ago
Barış Soner Uşaklı 696c489524 feat: add back topic id input 4 years ago
Julian Lam 166d65a1ba fix: add back middleware.authenticateOrGuest 4 years ago
Julian Lam e3b2c00db1 fix: request authentication called twice in account routes 4 years ago
Julian Lam 7da061f0d7
refactor: automatically authenticate all requests setup through route helpers (#9357)
* refactor: automatically authenticate all requests setup through route helpers

* fix: removed connect-ensure-login dependency

* fix: bug with some middlewares not defined outside route helper methods
4 years ago
Barış Soner Uşaklı 3aa26c4df2 fix: #9339, only log email errors once per digest, notification push
show notice in acp
4 years ago
Barış Soner Uşaklı 3f42d40c78 fix: winston.info 4 years ago
Barış Soner Uşaklı 0021c6019e refactor: async listen testSocket 4 years ago
Julian Lam c5e257888a fix: #9351 bad logic when inserting rows to privilege tables, also a missing tfoot 🦶 4 years ago
Julian Lam bfd512b99b feat: expose username validation logic to user lib, new hook `filter:username.check` 4 years ago
psychobunny e5133a78f8 feat: add $.deserialize to client side 4 years ago
Barış Soner Uşaklı 902a88c25e feat: remove promise-pollyfil 4 years ago
Julian Lam c1b3079d93 feat: category privilege API routes
closes #9342
4 years ago
Julian Lam c8b78654d9 fix: bad assignment 4 years ago
Julian Lam fbe9215b17 fix: #9348 incorrect redirect via connect-ensure-login 4 years ago
Barış Soner Uşaklı 0af9d26fe5 feat: change uploadCroppedPicture to use updateProfile as well 4 years ago
Barış Soner Uşaklı a598abcd8e feat: use updateProfile for picture change
so it triggers action:user:updateProfile
4 years ago
Julian Lam f806befd2f fix: bug where loginSeconds setting was ignored for local login 4 years ago
Julian Lam 1155b0c42f feat: allow payload to be passed to emailer test method 4 years ago
Julian Lam 00a68a9548 feat: add additional flag hooks [breaking]
`action:flags.create` on initial flag creation
`action:flags.notify` on notification to admins and moderators
`action:flags.addReport` on flag report addition (called during initial flag create, too)
4 years ago
Barış Soner Uşaklı 069ac60f62 feat: add uid of user who created flag to action:flags.create 4 years ago
Peter Jaszkowiak b9fd2c87f3
chore: bump deps (#9335)
* chore: bump deps

* fix: husky git hooks
4 years ago
Barış Soner Uşaklı 2737f6531b fix: notif pruning 4 years ago
Barış Soner Uşaklı 02f08111cf feat: keep notifs for one month, load 50 notifications instead of 30 4 years ago
Julian Lam 9bf94ad50f fix: allow interstitial callbacks to be functional (no cb required) 4 years ago
Barış Soner Uşaklı cdf5d18f54 fix: don't publish before pubClient is connected 4 years ago
Julian Lam 86b0c57d7a feat: also pass in uid to `filter:email.prepare` 4 years ago
Julian Lam 27ea3dcb2f feat: new hook `filter:email.prepare` 4 years ago
Julian Lam bf90d15881 feat: new hook static:email.send
deprecates filter:email.send
4 years ago
Barış Soner Uşaklı 0dad568cbe perf: faster category tags upgrade script 4 years ago
Barış Soner Uşaklı 95033ef756 perf: use setObjectBulk 4 years ago
Barış Soner Uşaklı a07509f770 perf: make upgrade script faster 4 years ago
Barış Soner Uşaklı 48f1e265f4 fix: remove unused async 4 years ago
Barış Soner Uşaklı 0959b1248b perf: make upgrade script faster
use bulkAdd/remove
4 years ago
Barış Soner Uşaklı 14a6c349c2 feat: show time info for upgrade scripts 4 years ago
Barış Soner Uşaklı 293b7c2650
refactor: privileges, export modules directly (#9325)
fix unused/commented out methods in admin privileges
4 years ago
Julian Lam 984c9dd915 fix: in setupPageRoute helper, buildHeader after plugin hooks have fired
To allow for a plugin to call doLogin and have it properly reflect in the header
4 years ago
Julian Lam 73dc64d9ff feat: add dashboard sub-pages to ACP menu 4 years ago
Julian Lam 0804d54759 spec: schema docs for new ACP dashboard subpage routes 4 years ago
Julian Lam 2f89b0d791 feat: recent logins sessions table in dashbaord subpage 4 years ago
Julian Lam e1ed514b10 feat: topics dashboard details subpage 4 years ago
Julian Lam c57c77030e feat: update user list in dashboard/users on graph update 4 years ago
Julian Lam f8e1a74c26 fix: wrong qs param, allow string to be passed to util.getDaysArray 4 years ago
Julian Lam cc93822436 feat: show list of recent users in dashboard/users 4 years ago
Julian Lam 6fdcae7320 feat: req.query parsing and dynamically loading data instead 4 years ago
Julian Lam f561799f74 refactor: abstract out some client side dashboard code into modules, analytics subpages for users, topics, and logins 4 years ago
Julian Lam 079a13d41a feat: new hooks for notifications get/getCount 4 years ago
Peter Jaszkowiak 0d59fe3d2b fix(#9315): api v3 post, put, del JSON
also allow `app.alertError` to be called without an argument
also fix `./nodebb build --dev` to actually build in dev mode
4 years ago
Julian Lam dbe5f7027b fix: wrong call to sortedSetAdd 4 years ago
Julian Lam 16d3c45782 feat: report login statistics from analytics data, instead of its own zset 4 years ago
Julian Lam 9a9f366d3b feat: track login sessions for admin dashboard reporting 4 years ago
Julian Lam 020f0b8322 fix: session not persisting to database in some scenarios
In some edge cases (e.g. SSO plugin redirecting the user immediately), with modern browsers, the request is never "completed" for speed. This causes a condition where the session object never persists to the database, even though it has changed. This added line forces a db persist on a successful login.

Context: https://github.com/expressjs/session/pull/484
4 years ago
Julian Lam 504fd107c7 feat: track successful logins in analytics 4 years ago
Julian Lam d3a9e76ae2 test(user): added additional tests for icon background colour 4 years ago
Julian Lam 955021247e feat(user): icon background selector in change picture modal 4 years ago
Julian Lam fbccf6e22f refactor(user): all plugins to change list of icon background colours
One notable change is line 200, where a conditional was changed. The conditional used to check for `user.hasOwnProperty('picture')` and was added so that icons would only be included in the response if the picture was requested. This doesn't seem to apply as picture could be set regardless (see default avatar logic above), so I explicitly check `requestedFields` now.
4 years ago
Barış Soner Uşaklı ed3d9dcbbf feat: pass post object to filter:post.tools 4 years ago
Barış Soner Uşaklı 0e07f3c9ba feat: allow defining a list of system tags 4 years ago
Barış Soner Uşaklı 25c8f02634 fix: #9307, use _.flatten 4 years ago
Julian Lam 2fef462782 fix: awaiting res.render in send404 controller
>
> A plugin wanted to use `response:rotuer.page` to 404 a specific page on some condition. res.render returns early in send404 and so must be awaited otherwise multiple responses will be sent
4 years ago
Julian Lam 65c57c730c docs: added comment re: #9305 4 years ago
ahwayakchih 34096b73ef fix: do not overwrite `config.port` from URL, if it's already set
If URL was set to something like `http://example.com:8080`, and port
was set to 4567, keep listening on port 4567 and keep linking through
URL that was specified.
This allows to listen on port 4567, while having NGINX (or any proxy)
set to listen on port 8080 and route traffic to port 4567.
So NodeBB can be "hidden" behind proxy while URL can still contain
non-standard port, i.e., port different than 80 and 443.
4 years ago
Julian Lam 8686fbfa3f fix: switch back to getSortedSetRange
/cc @barisusakli
4 years ago
Barış Soner Uşaklı 9ce6f8ad93 feat: add tag filter to getSortedTopics 4 years ago
Barış Soner Uşaklı 5286f20862 refactor: remove dupe code 4 years ago
Julian Lam 7223074f1d feat: ability to re-order topic thumbnails 4 years ago
Barış Soner Uşaklı 91734a6484 fix: settings v3 4 years ago
Barış Soner Uşaklı 0738dae895 feat: #9304, add category/topic/username to post queue notification emails 4 years ago
Barış Soner Uşaklı 8f0386d9ac
feat: add failing test for list append/prepend with list (#9303)
* feat: add failing test for list append/prepend with list

* feat: mongo/psql

* feat: improve test
4 years ago
Julian Lam 1ae8dda8a8 chore: extra console.log 4 years ago
Julian Lam 7ebb6d3056 fix: thumbs.associate logic fix + tests 4 years ago
Barış Soner Uşaklı 7665adf7d1 fix: missing awaits, possible test fix 4 years ago
Barış Soner Uşaklı 9a6cf3d967 fix: #9301, dont call sitemapstream if there are no entries in categories/pages/topics.xml 4 years ago
Julian Lam 50664487b9 test: additional tests for topic thumbs 4 years ago
Barış Soner Uşaklı 807b0d4348 fix: properly incase its the same path 4 years ago
Barış Soner Uşaklı 76bcc0c99c fix: numThumbs count on associate 4 years ago
Julian Lam 1490b32d1b fix: missing cache deletion calls for post-queue cache
/cc @barisusakli
4 years ago
Julian Lam 3e6640efb2 refactor: thumbs.associate accepts both relative path and url in path arg 4 years ago
Julian Lam a4b4a5566d feat: link to post-queue from topic event 4 years ago
Julian Lam 8fd78ce512 feat: post-queue topic event 4 years ago
Julian Lam 3f35fd335d feat: add post-queue cache 4 years ago
Julian Lam 36f2021186 refactor: move post queue retrival code to posts.getQueuedPosts 4 years ago
Julian Lam b81508c4e2 fix: init topic events from webserver.js 4 years ago
Julian Lam 6074a0fbbf refactor: call topic events init from within file itself 4 years ago
Julian Lam cc275e1016 Revert "feat: newsletter opt-in/out in UCP, closes #21"
This reverts commit 3c7cd9a6c4.
4 years ago
Julian Lam 3c7cd9a6c4 feat: newsletter opt-in/out in UCP, closes #21 4 years ago
Barış Soner Uşaklı 3595473485 feat: load user posts/topics via xhr on infinitescroll 4 years ago
Barış Soner Uşaklı b753c69cfe fix: check null topics 4 years ago
Barış Soner Uşaklı 58cd797e4c fix: guard against null topics 4 years ago
Barış Soner Uşaklı c953b1b3d1 fix: #9292, messageobj.content already parsed 4 years ago
Barış Soner Uşaklı 4b2bf12fd1 feat: #9294, put new categories at top 4 years ago
Julian Lam 9d17f397c0 fix(remountable-routes): more fixes to remountable routes
fix: ensure proper admin privilege checking on remounted `/admin` mount

fix: guard against plugins sending back missing mounts

fix: no need to make addRemountableRoutes awaitable
4 years ago
Julian Lam 16c1d6e937 style(remountable-routes): abstract removable routes code to a separate local fn 4 years ago
Julian Lam 1f28713f1a refactor(remountable-routes): rename `src/routes/accounts.js` to `src/routes/user.js` to better match the route prefix 4 years ago
Julian Lam bc68e990af fix(remountable-routes): bug with user routes remounting to itself 4 years ago
Julian Lam 9021f071d4 feat(remountable-routes): allow category and account routes to be remounted 4 years ago
Julian Lam f01af62b53 feat(remountable-routes): allow /admin and /post to be remountable 4 years ago
Julian Lam 92758ec50d refactor(remountable-routes): allow certain route prefixes to be mounted elsewhere 4 years ago
Barış Soner Uşaklı 765db86d4e fix: clear category cache on copy parent 4 years ago
Barış Soner Uşaklı ed3e9ce2e2 fix: delete category cache key on category create 4 years ago
Barış Soner Uşaklı c61cc37bba fix: typo 4 years ago
Barış Soner Uşaklı cf4002bcc9 perf: cache base_url 4 years ago
Barış Soner Uşaklı 5ce2820799 perf: single call to get digest topics, dont send duplicate topics 4 years ago
Barış Soner Uşaklı 90d5c9da44 perf: single db call to add all uids 4 years ago
Barış Soner Uşaklı a5fa212fc7 fix: wait for event.log to finish before killing process 4 years ago
Barış Soner Uşaklı 0185ea1b4f perf: make digests a little bit faster
and use batch.processArray
dont load data for users who have no email or have not confirmed their emails
4 years ago
Barış Soner Uşaklı b6493f896f fix: tests, only generate csrf_token on 404 gets 4 years ago
Barış Soner Uşaklı 94f72d6093 fix: #9287, generate csrf_token on 404 4 years ago
Julian Lam 783786cf8c fix: do not blindly escape a notification's bodyLong
For 7+ years we were escaping this value, but it is in many cases already sanitized (as it may be a post content). For those cases when it is not, I now run it through parse.raw.

Instead of escaping, it now strips p, img, and a tags.
4 years ago
Barış Soner Uşaklı 670cde78da feat: add invalid event name to error message 4 years ago
Peter Jaszkowiak cc9d6fd08b chore: eslint max-len 4 years ago
Peter Jaszkowiak 5c2f0f0557 chore: eslint no-restricted-syntax 4 years ago
Peter Jaszkowiak 115d19e289 chore: eslint prefer-rest-params, prefer-spread 4 years ago
Peter Jaszkowiak 23f212a4c0 chore: eslint prefer-destructuring 4 years ago
Peter Jaszkowiak 8d1462ffd8 chore: eslint object-curly-newline 4 years ago
Peter Jaszkowiak 62869bae3d chore: eslint function-paren-newline 4 years ago
Peter Jaszkowiak dab3b23575 chore: eslint no-var, vars-on-top 4 years ago