Commit Graph

138 Commits

Author SHA1 Message Date
Julian Lam
6e2da9966e refactor: move plugin hook methods to plugin.hooks.* 2020-11-20 16:32: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ı
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
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
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ı
dc29f4dca2 refactor: switch to using slugify module 2020-10-11 21:49:37 -04:00
Barış Soner Uşaklı
5e5815f051 fix: #8515, fix login redirect on subfolder 2020-07-27 22:28:07 -04:00
Barış Soner Uşaklı
5781a2dc65 feat: fix session mismatch errors by clearing cookie on logout (#8338)
* feat: fix session mismatch errors by clearing cookie on logout

* feat: remove app.upateHeader

ported from 2.0

* feat: handle if user doesn't click button and just refreshes page
2020-05-27 12:15:02 -04:00
Barış Soner Uşaklı
8bf980cb63 fix: tests, handle no sessions 2020-05-16 22:17:20 -04:00
Julian Lam
f2f6fbf15a fix: #8232, unresolvable session mismatch on register cancel 2020-04-13 13:26:27 -04:00
Barış Soner Uşaklı
a5ef6b53b8 fix: admin relogin 2020-02-03 11:04:20 -05:00
Julian Lam
111ed802cf fix: onSuccessfulLogin not working
In scenarios where onSuccessfulLogin was not called in the SSO plugin,
core's calling of onSuccessfulLogin was prematurely returning, because
it was checking the wrong value.

This commit fixes the issue by checking a different value.
2020-01-29 12:47:48 -05:00
Barış Soner Uşaklı
dec157d606 fix: #8085, fix cookie name 2019-12-17 08:10:21 -05:00
Baris Usakli
366ad5cd69 fix: #8050, fix redirect after registration 2019-11-19 12:02:14 -05:00
Julian Lam
cf7e0cfd2d feat: no more session cookie for guests (#7982)
* feat: no more session cookie for guests

* fix(tests): added additional tests and fixed the broken test
2019-10-22 13:38:36 -04:00
Julian Lam
ddf3812cdc fix: passwords always expiring upon login 2019-10-16 13:52:18 -04:00
Barış Soner Uşaklı
75bcb0f484 fix: remove unused data from post/topic/user hashes 2019-10-07 23:13:43 -04:00
Aziz Khoury
94810fd637 feat: adding filter:login.check and loginFormEntry[] for the filter:login.build hook (#7861)
* adding filter:login.check and loginFormEntry[] for the filter:login.build hook, related to nodebb-plugin-spam-be-gone/issues/32

* do not exceed 50 lines per function

* spam-be-gone@0.6.4
2019-10-01 17:21:48 -04:00
Barış Soner Uşaklı
b9105ef9c6 refactor: async/await controllers/authentication 2019-09-11 02:02:07 -04:00
Barış Soner Uşaklı
22f8011686 refactor: remove async from isPasswordValid, function is sync 2019-09-11 00:28:42 -04:00
Julian Lam
29f96b199c fix(style): requiring parens in block bodies 2019-08-13 15:12:27 -04:00
Julian Lam
0921230976 fix(style): updated code to follow new eslint recommendations
Squashed commit of the following:

commit f9ce878b26
Author: Julian Lam <julian@nodebb.org>
Date:   Tue Aug 13 14:30:46 2019 -0400

    fix(style): updated code to follow new eslint recommendations

commit 80dd370e41
Author: Julian Lam <julian@nodebb.org>
Date:   Tue Aug 13 14:14:58 2019 -0400

    fix(deps): update dependency sitemap to v4

    Squashed commit of the following:

    commit f4dd9cabb2
    Author: Julian Lam <julian@nodebb.org>
    Date:   Tue Aug 13 11:33:05 2019 -0400

        fix: resolved breaking changes from sitemap v4 upgrade

    commit 9043415ee1
    Merge: e3352b272 72590b346
    Author: Julian Lam <julian@nodebb.org>
    Date:   Tue Aug 13 11:09:55 2019 -0400

        Merge branch 'master' into renovate/sitemap-4.x

    commit e3352b272e
    Author: Renovate Bot <bot@renovateapp.com>
    Date:   Mon Aug 12 07:59:05 2019 +0000

        fix(deps): update dependency sitemap to v4

commit 8e3c0cdcae
Author: Renovate Bot <bot@renovateapp.com>
Date:   Fri Aug 9 00:49:51 2019 +0000

    fix(deps): update dependency commander to v3

commit 2104449d38
Author: Renovate Bot <bot@renovateapp.com>
Date:   Tue Aug 13 15:00:27 2019 +0000

    fix(deps): update dependency mongodb to v3.3.0

commit d2937f446a
Author: Barış Soner Uşaklı <barisusakli@gmail.com>
Date:   Tue Aug 13 10:36:48 2019 -0400

    feat: async/await admin/controllers

commit 1b97e8b199
Author: Misty (Bot) <deploy@nodebb.org>
Date:   Tue Aug 13 09:28:39 2019 +0000

    Latest translations and fallbacks

commit 69a48957a2
Author: Barış Soner Uşaklı <barisusakli@gmail.com>
Date:   Mon Aug 12 21:56:09 2019 -0400

    feat: async/await

commit b9b2a7e593
Author: Barış Soner Uşaklı <barisusakli@gmail.com>
Date:   Mon Aug 12 20:58:29 2019 -0400

    feat: async/await refactor

    controllers/accounts

commit a8d43a1759
Author: Baris Usakli <barisusakli@gmail.com>
Date:   Mon Aug 12 14:49:40 2019 -0400

    feat: async/await controllers/accounts

commit 2f25aae57b
Author: Barış Soner Uşaklı <barisusakli@gmail.com>
Date:   Sun Aug 11 23:09:50 2019 -0400

    fix: #7831, fix pagination

    convert to async/await

commit c9e83f2374
Author: Barış Soner Uşaklı <barisusakli@gmail.com>
Date:   Sun Aug 11 00:14:35 2019 -0400

    fix: remove empty line

commit 30be91b26c
Author: Barış Soner Uşaklı <barisusakli@gmail.com>
Date:   Sun Aug 11 00:13:41 2019 -0400

    fix: remove useless catchs and empty line

commit 2e4a71c0b6
Author: Renovate Bot <bot@renovateapp.com>
Date:   Sat Aug 10 06:51:50 2019 +0000

    chore(deps): update dependency eslint-config-airbnb-base to v14
2019-08-13 15:12:27 -04:00
Julian Lam
603c526287 fix: bad usage of async requisition 2019-05-24 11:39:03 -04:00
Julian Lam
f321b426b1 fix: 7638, returnTo accidentally saved into user hash 2019-05-24 11:23:55 -04:00
Andrew Rodrigues
ddffc904f4 feat: allow file uploading on registration interstitial 2019-04-15 12:33:57 -04:00
Aziz Khoury
3fbb6faf28 feat: update unban logic/invocation and refactor User.bans module
* auto unban when User.getUsersFields is called and the user is banned but has expired

* cleanups and removal of expiry_readable

* expiry_readable make an alias for backward compatibility

* User.bans.func vs User.*ban*Func

* console.log cleanups, plus todo message added

* use code util.deprecate

* fix: remove ununsed winston require
2019-04-05 14:14:48 -04:00
Baris Usakli
fb58e23914 fix lint 2019-04-05 12:32:19 -04:00
Baris Usakli
e479fad792 fix: #7517 2019-04-05 11:57:55 -04:00
Barış Soner Uşaklı
abe4abb674 feat: add original sessionID to static:user.loggedOut 2019-04-02 16:23:09 -04:00
Barış Soner Uşaklı
4db0efe32d fix: #7476 2019-04-02 15:25:40 -04:00
Andrew Rodrigues
240f563ab0 fix: #7477 2019-03-20 16:30:33 -04:00
Julian Lam
d2cfe6b946 Moved onSuccessfulLogin call from plugins to core, + auth verification hook (#7416)
* fix: #7412, calling controllers.onSuccessfulLogin in core

* feat: added plugin hook for auth validation
2019-03-13 12:38:30 -04:00
Julian Lam
f972f75202 fix: incorrect returnTo set in registerComplete 2019-02-19 15:47:37 -05:00
Barış Soner Uşaklı
7064fd0678 fix: #7235 2019-01-24 15:14:12 -05:00
Julian Lam
63061ffd37 feat: new hook filter:user.logout
- used for setting "next" for post logout redirection
2019-01-24 12:04:44 -05:00
Julian Lam
b0eaa858b5 fix: #7169 Fixed logout being broken 2018-12-27 16:50:51 -05:00
Julian Lam
d81e0a5f5b fix: #7146 Better RTL handling on (de-)authentication
- RTL is applied (or unapplied) on login and logout depending on
  user language/guest-detected language.
- config is automatically saved into res.locals.config whenever
  loadConfig is called
- On login/logout, buildHeader is called instead of getting config
- On logout, req.uid is deleted instead of set to 0
2018-12-21 11:49:11 -05:00
Julian Lam
900f0a0b78 fix: #7118, invoking autoLocale middleware on logout
Also:
- firing client-side hook on header update
- updating bootbox locale on header update
2018-12-20 14:01:42 -05:00
Barış Soner Uşaklı
62f01a839e fix: dont save data for non-positive uids 2018-12-14 00:09:15 -05:00
Julian Lam
5f3d1c76c8 fix: #7038, autoLocale logic not playing nicely with no-refresh auths (#7059)
* fix: #7038, autoLocale logic not playing nicely with no-refresh auths

- on login, req.query.lang is deleted (since it seems to be left over)
- on logout, the middleware.autoLocale is executed, which resets
  req.query.lang
- middleware.autoLocale is new, just refactored existing logic in
  webserver.js into new middleware method.

* style: tests, use lodash

* fix: timeago strings not switching languages on login or out
2018-12-07 11:29:20 -05:00
Julian Lam
84433f29ab Do not require a full refresh on login/logout (#6841)
* no-refresh login as well, plus lots of fixes for missing config on login

* replace config with new set on logout as well

* passing new payload data into new action:app.loggedIn hook, and old action:app.loggedOut hook

* fixed issues with socket.io not properly representing uid on server

* some light refactoring and cleanup

* minor cleanup, fixed spa logout not working after login

* have reconnection handler for socket.io wait 2s to confirm disconnection before reporting -- stops flicker if reconnecting immediately

* Dynamically replace chat and slideout menu on updateHeader()

... instead of just the menu items.

* more efficient calls to Benchpress and translator /cc @pitaj

* fix: chats and notification handlers not working after login

* fix: accidentally calling cb multiple times
2018-11-07 12:34:12 -05:00
Julian Lam
157bea6966 fix: username trim on login, closes #6894 2018-10-30 17:09:32 -04:00
Barış Soner Uşaklı
66ed48e088 closes #6875 2018-10-27 06:23:24 -04:00
Barış Soner Uşaklı
9c022afae1 Parse int (#6853)
* Store config fields as JSON in the db

Fewer parseInts

* Remove unnecessary parseInts

* remove some dupe code add tests

* remove console.log

* remove more parseInts

* WIP: read meta.configs defaults from defaults.json

remove more parseInts

* more work

* add log for failing test

* update admin pwd

* fix tests, dont require posts/cache before configs are initialized

* handle saves

* Test boolean conditions

* remove more parseInts

* Fix boolean values

* remove lots more parseInts

* removed json parsing

* renamed var to number

* categories dont have timestamp
2018-10-21 16:47:51 -04:00
Barış Soner Uşaklı
26d4e0852f use includes instead of indexOf
use _.uniq instead of filter&indexOf
2018-10-20 14:40:48 -04:00
Barış Soner Uşaklı
77beaf2e15 Allow local login,closes #6800 (#6803)
* WIP

* reset groups cache after every suite
2018-09-29 06:49:41 -04:00
Julian Lam
3c6c0ed7a1 restoring passwordExpiry for use in continueLogin, fixed tests, hopefully 2018-07-27 12:34:51 -04:00
Julian Lam
b6a5419ca1 closes #6674 2018-07-27 11:54:32 -04:00
Julian Lam
4f8815eb78 closes #6646 2018-07-26 16:38:40 -04:00