2139 Commits (b6d71710a0ce6a97370fc4fe7859c2f683eedc62)

Author SHA1 Message Date
Barış Soner Uşaklı 77f0bff54f fix: #8929, fix popular, top rss feed urls 5 years ago
Barış Soner Uşaklı b18e7e319b fix: spec 5 years ago
Barış Soner Uşaklı 3f337b5d7c feat: #8925, #8924 5 years ago
Barış Soner Uşaklı 5fa098326f fix: https://github.com/NodeBB/NodeBB/pull/8685
fix category link redirect on cold load
fix helpers.redirect if passed in url is external
fix ajaxify so it doesn't slice first character of external url
5 years ago
Barış Soner Uşaklı 9ee1fb490e fix: https://github.com/NodeBB/NodeBB/pull/8759 5 years ago
Barış Soner Uşaklı 672d4da078 feat: human readable uptime 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ı 8d060065a0 fix: spec 5 years ago
Barış Soner Uşaklı e9585b9be2 fix: group userTitles translation escapes 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ı 120999bf63 feat: #7550, show message if post is queued when js is disabled 5 years ago
Barış Soner Uşaklı 35f932cd64 feat: #8171, add oldCategory if topic is moved 5 years ago
Barış Soner Uşaklı 1d6bcbebde feat: https://github.com/NodeBB/NodeBB/issues/8147 5 years ago
Julian Lam e1d7c4d8aa fix: internal helper method hasGlobalPrivilege, DRY 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ı e4d2764d4c fix: #8884, remove header/footer cache 5 years ago
Barış Soner Uşaklı 5598130a92 refactor: async/await controllers/index.js 5 years ago
Barış Soner Uşaklı f14e42d8bc fix: #8883 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
Barış Soner Uşaklı 567c5f2056 fix: #8869, dont escape category title,description twice 5 years ago
Julian Lam f300c933a5 refactor: move session revocation route to write api 5 years ago
Barış Soner Uşaklı 2e44639210 fix: guest header/footer cache
allow clearing individual caches
5 years ago
Barış Soner Uşaklı f1f9b225b0
feat: #8824, cache refactor (#8851)
* feat: #8824, cache refactor

ability to disable caches
ability to download contents of cache
refactor cache modules to remove duplicated code

* fix: remove duplicate hit/miss tracking

check cacheEnabled in getUncachedKeys
5 years ago
Julian Lam d263192271 feat: group exists API call in write api 5 years ago
Julian Lam 1446cec77f feat: user exist route in write api 5 years ago
Julian Lam 6b196a207f fix: permanent redirect on user api redirect shorthand 5 years ago
Julian Lam 60e1e99b4f feat: new shorthand route /api/v3/users/bySlug/:userslug
closes #8844
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ı c61dee4b62 fix: #8840, don't crash if /compose route is called with no query params 5 years ago
Barış Soner Uşaklı 9e3eb5d41a feat: #8821, allow guest topic views 5 years ago
Julian Lam 891a1ea2af fix: #8827, do not require admin:users privilege to ban users 5 years ago
Julian Lam c0f699e655 fix: disallow registration attempts with password length > 4096
This is a stopgap measure for v1.15.0
5 years ago
Barış Soner Uşaklı 6e85920cb6 feat: allow mods/admins to see deleted posts on user profile 5 years ago
Julian Lam 266d7587b2 refactor: remove usage of middlewares
Specifically, middleware.isAdmin|exposePrivilegeSet|exposePrivileges
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
Julian Lam 618e098305 fix: bug where token generation route would fail on null case 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ı a7b6d0dfe5 feat: add free and total mem usage to info 5 years ago
Julian Lam c26f2b6599 feat(writeapi): user settings API 5 years ago
Barış Soner Uşaklı 7bddec93ec fix: sortby 5 years ago
Barış Soner Uşaklı b3619d3d47
fix: #8774 5 years ago
Barış Soner Uşaklı d9a16855d0 refactor: posts api 5 years ago
Barış Soner Uşaklı 272e73da53 refactor: post restore/delete/purge 5 years ago
Barış Soner Uşaklı 9738e20207 refactor: merge post.edit
fix: dont fadeout/fadeint if title/post didnt change
5 years ago
Barış Soner Uşaklı 2279e37261 refactor: deprecate socket.emit('users.search') use api route 5 years ago
Barış Soner Uşaklı 083c74e059 refactor: api categories 5 years ago
Barış Soner Uşaklı e78c498e84 fix: missing doTopicAction, fix wrong api params 5 years ago
Barış Soner Uşaklı bc880ee0ca refactor: remove sockets.reqFromSocket 5 years ago
Julian Lam 9ee3cb9b62 refactor: topic follow/ignore to use api lib 5 years ago
Julian Lam 68d6818bca refactor: topic tools' actions to use api lib 5 years ago
Julian Lam 21974a77f8 feat: topic reply to use api lib (also + missing file) 5 years ago
Julian Lam 40598b368e refactor: topic creation to use api lib 5 years ago
Julian Lam ede9435f0e feat: send 401 for invalid-uid 5 years ago
Julian Lam 14f9d8b0e5 feat: send back 403 on no-privileges error 5 years ago
Julian Lam 2d252f2fa4 refactor: user bans to use api lib 5 years ago
Barış Soner Uşaklı e367c5403e refactor: move groups.leave, fix some tests 5 years ago
Barış Soner Uşaklı bbbd9fee85 Merge branch 'master' of https://github.com/NodeBB/NodeBB 5 years ago
Julian Lam 960e925e40 refactor: change password/user follow to use api lib 5 years ago
Barış Soner Uşaklı 081c4fa6d4 Merge branch 'master' of https://github.com/NodeBB/NodeBB 5 years ago
Julian Lam 430e7f5834 refactor: user deletion to use api lib 5 years ago
Barış Soner Uşaklı 8ae1f81cf4 feat: refactor groups.delete 5 years ago
Julian Lam 31ae8a8323 refactor: socket profile update to use api lib 5 years ago
Barış Soner Uşaklı d69e503d21 feat: move groups.join to api 5 years ago
Julian Lam 23086daead refactor: user create and profile update to use api lib 5 years ago
Barış Soner Uşaklı 5e2caf19f5 refactor: use single function for api code 5 years ago
Barış Soner Uşaklı 25e4a09816 Merge branch 'master' of https://github.com/NodeBB/NodeBB 5 years ago
Barış Soner Uşaklı 4418ff0716 fix: #8768 5 years ago
Julian Lam cc6e995ee2 fix: api bug where user profile editing continued even if not allowed 5 years ago
Barış Soner Uşaklı e6ea71c95a fix: test 5 years ago
Barış Soner Uşaklı 8c6a559188 fix: timestamp 5 years ago
Barış Soner Uşaklı 331d236f6e fix: #8763 5 years ago
Barış Soner Uşaklı a481024d27 fix: lastonline again 5 years ago
Barış Soner Uşaklı 97628e2ff2 fix: lastonline values 5 years ago
Barış Soner Uşaklı 59bbede8c7 fix: cant join system groups 5 years ago
Barış Soner Uşaklı a411df1321 fix: tests 5 years ago
Barış Soner Uşaklı a2edb86dfb feat: change user search to use filters array 5 years ago
Barış Soner Uşaklı 959314c921 feat: add filter 5 years ago
Barış Soner Uşaklı 682e926c6b feat: #8662, verified/unverified user groups 5 years ago
Barış Soner Uşaklı 700e1e4340 feat: more fixes 5 years ago
Barış Soner Uşaklı 40a05b70ef feat: more work 5 years ago
Barış Soner Uşaklı b038ac07d8 feat: wip admin/users 5 years ago
Barış Soner Uşaklı 30d6a2b84e fix: #8756, pass missing req to mock 5 years ago
Barış Soner Uşaklı dc29f4dca2 refactor: switch to using slugify module 5 years ago
Julian Lam 4a63c20a72 chore: some optimizations for codeclimate 5 years ago
Julian Lam f870721fca feat(writeapi): file deletion route 5 years ago
Julian Lam a55b381791 feat(writeapi): admin settings update route 5 years ago
Julian Lam 2ec838fc59 feat(writeapi): token generation/delete routes, ACP updates 5 years ago
Julian Lam 0973feea16 feat(writeapi): post bookmarking 5 years ago
Julian Lam 9942c248eb feat(writeapi): post voting 5 years ago
Julian Lam 5e2a3ea6ec refactor(writeapi): post.tools.purge no longer a method 5 years ago
Julian Lam 414169fdfa feat(writeapi): post delete/restore/purge 5 years ago
Julian Lam f66c2fb60f feat(writeapi): post editing 5 years ago
Julian Lam 1605e5e443 feat(writeapi): topic tags 5 years ago
Julian Lam 9be5629458 feat(writeapi): topic follow/ignore 5 years ago
Julian Lam da25ce4d09 feat: topic delete/restore/purge/(un)pin/(un)lock 5 years ago
Julian Lam 49652e6f1b feat: management of API tokens via ACP 5 years ago
Julian Lam 7757f965eb fix: errors thrown if no password sent in to profile edit route 5 years ago
Julian Lam 6096f74ab2 feat(writeapi): adding missing files 5 years ago