Commit Graph

2084 Commits

Author SHA1 Message Date
Barış Soner Uşaklı
672d4da078 feat: human readable uptime 2020-11-21 23:34:12 -05:00
Julian Lam
6e2da9966e refactor: move plugin hook methods to plugin.hooks.* 2020-11-20 16:32:39 -05:00
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
2020-11-20 11:31:14 -05:00
Barış Soner Uşaklı
8d060065a0 fix: spec 2020-11-18 23:24:51 -05:00
Barış Soner Uşaklı
e9585b9be2 fix: group userTitles translation escapes 2020-11-18 23:07:38 -05:00
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
2020-11-17 17:29:50 -05:00
Barış Soner Uşaklı
120999bf63 feat: #7550, show message if post is queued when js is disabled 2020-11-17 14:47:06 -05:00
Barış Soner Uşaklı
35f932cd64 feat: #8171, add oldCategory if topic is moved 2020-11-17 13:56:04 -05:00
Barış Soner Uşaklı
1d6bcbebde feat: https://github.com/NodeBB/NodeBB/issues/8147 2020-11-16 21:31:55 -05:00
Julian Lam
e1d7c4d8aa fix: internal helper method hasGlobalPrivilege, DRY 2020-11-16 15:42:39 -05:00
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>
2020-11-16 14:47:23 -05:00
Barış Soner Uşaklı
e4d2764d4c fix: #8884, remove header/footer cache 2020-11-15 16:43:06 -05:00
Barış Soner Uşaklı
5598130a92 refactor: async/await controllers/index.js 2020-11-14 20:18:47 -05:00
Barış Soner Uşaklı
f14e42d8bc fix: #8883 2020-11-14 19:56:01 -05:00
Barış Soner Uşaklı
51b7eca119 fix: run every hour, dont show message if average_time is 0 2020-11-12 22:23:50 -05:00
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
2020-11-12 22:23:07 -05:00
Barış Soner Uşaklı
567c5f2056 fix: #8869, dont escape category title,description twice 2020-11-11 12:48:22 -05:00
Julian Lam
f300c933a5 refactor: move session revocation route to write api 2020-11-10 14:27:38 -05:00
Barış Soner Uşaklı
2e44639210 fix: guest header/footer cache
allow clearing individual caches
2020-11-07 22:06:25 -05:00
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
2020-11-06 23:13:12 -05:00
Julian Lam
d263192271 feat: group exists API call in write api 2020-11-06 12:18:42 -05:00
Julian Lam
1446cec77f feat: user exist route in write api 2020-11-06 11:55:04 -05:00
Julian Lam
6b196a207f fix: permanent redirect on user api redirect shorthand 2020-11-06 11:54:46 -05:00
Julian Lam
60e1e99b4f feat: new shorthand route /api/v3/users/bySlug/:userslug
closes #8844
2020-11-06 11:37:21 -05:00
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 1e312bf7ef.

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

As processing a large string still uses a lot of memory
2020-11-06 08:40:00 -05:00
Barış Soner Uşaklı
c61dee4b62 fix: #8840, don't crash if /compose route is called with no query params 2020-11-05 21:01:19 -05:00
Barış Soner Uşaklı
9e3eb5d41a feat: #8821, allow guest topic views 2020-11-05 20:52:43 -05:00
Julian Lam
891a1ea2af fix: #8827, do not require admin:users privilege to ban users 2020-11-05 10:22:07 -05:00
Julian Lam
c0f699e655 fix: disallow registration attempts with password length > 4096
This is a stopgap measure for v1.15.0
2020-11-03 09:54:04 -05:00
Barış Soner Uşaklı
6e85920cb6 feat: allow mods/admins to see deleted posts on user profile 2020-11-02 12:03:21 -05:00
Julian Lam
266d7587b2 refactor: remove usage of middlewares
Specifically, middleware.isAdmin|exposePrivilegeSet|exposePrivileges
2020-10-29 07:56:28 -04:00
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
2020-10-28 17:21:54 -04:00
Julian Lam
618e098305 fix: bug where token generation route would fail on null case 2020-10-27 20:37:23 -04:00
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
2020-10-26 10:43:18 -04:00
Barış Soner Uşaklı
a7b6d0dfe5 feat: add free and total mem usage to info 2020-10-22 17:46:12 -04:00
Julian Lam
c26f2b6599 feat(writeapi): user settings API 2020-10-22 14:07:50 -04:00
Barış Soner Uşaklı
7bddec93ec fix: sortby 2020-10-19 18:56:39 -04:00
Barış Soner Uşaklı
b3619d3d47 fix: #8774 2020-10-18 16:54:42 -04:00
Barış Soner Uşaklı
d9a16855d0 refactor: posts api 2020-10-17 22:59:12 -04:00
Barış Soner Uşaklı
272e73da53 refactor: post restore/delete/purge 2020-10-17 21:24:33 -04:00
Barış Soner Uşaklı
9738e20207 refactor: merge post.edit
fix: dont fadeout/fadeint if title/post didnt change
2020-10-17 15:07:04 -04:00
Barış Soner Uşaklı
2279e37261 refactor: deprecate socket.emit('users.search') use api route 2020-10-16 23:30:22 -04:00
Barış Soner Uşaklı
083c74e059 refactor: api categories 2020-10-16 22:41:38 -04:00
Barış Soner Uşaklı
e78c498e84 fix: missing doTopicAction, fix wrong api params 2020-10-16 21:36:59 -04:00
Barış Soner Uşaklı
bc880ee0ca refactor: remove sockets.reqFromSocket 2020-10-16 21:05:00 -04:00
Julian Lam
9ee3cb9b62 refactor: topic follow/ignore to use api lib 2020-10-16 12:30:14 -04:00
Julian Lam
68d6818bca refactor: topic tools' actions to use api lib 2020-10-16 12:02:51 -04:00
Julian Lam
21974a77f8 feat: topic reply to use api lib (also + missing file) 2020-10-16 11:01:18 -04:00
Julian Lam
40598b368e refactor: topic creation to use api lib 2020-10-16 11:01:18 -04:00
Julian Lam
ede9435f0e feat: send 401 for invalid-uid 2020-10-16 11:01:18 -04:00