Commit Graph

152 Commits

Author SHA1 Message Date
Peter Jaszkowiak
cc9d6fd08b chore: eslint max-len 2021-02-08 18:06:44 -05:00
Peter Jaszkowiak
23f212a4c0 chore: eslint prefer-destructuring 2021-02-08 18:06:44 -05:00
Peter Jaszkowiak
dab3b23575 chore: eslint no-var, vars-on-top 2021-02-08 18:06:44 -05:00
Peter Jaszkowiak
b56d9e12b5 chore: eslint prefer-arrow-callback 2021-02-08 18:06:44 -05:00
Peter Jaszkowiak
707b55b6a5 chore: eslint prefer-template 2021-02-08 18:06:44 -05:00
Julian Lam
4f97639009 feat: new hook action:login.continue 2021-02-05 14:31:31 -05:00
Julian Lam
67e3fb6498 fix: register returnTo logic to match login route
Login route saves the previous page by checking for the X-Return-To header. This header is automatically set by ajaxify.
Login takes this value and saves it to `req.session`.

Up until now, `/register` saved the previous URL in a hidden input, and redirected based on that value, but it occasionally conflicted with req.session.returnTo. It was also confusing because it did not match how login handled the values.

This commit updates the route handling so it works identically to `/login`.
2021-02-05 11:49:48 -05:00
gasoved
53e0d4d2e0 feat: banned-users group 2021-02-03 15:22:44 -05:00
Julian Lam
7419922040 fix: improper override of req.body.username in login logic 2021-01-29 17:03:44 -05:00
Julian Lam
b820d23401 feat: new hook filter:login.override, deprecate action:auth.overrideLogin 2021-01-29 16:59:57 -05:00
Julian Lam
a186ea0fe3 fix: registration completion overriding returnTo if it was already set 2021-01-22 10:01:42 -05:00
Julian Lam
280285cda9 feat: allow interstitial callbacks to be async functions [breaking]
This change is breaking in the sense that if you have written
interstitial callbacks before that are async functions _with_ a
callback, those are no longer allowed. You will not need to call
next() as that argument will no longer be passed in to async
functions.
2021-01-22 10:01:42 -05:00
Julian Lam
1cf0032d9f feat: allow override of local fns in login controller, 400 instead of 500 for wrong login type [breaking] 2021-01-07 15:11:45 -05:00
Julian Lam
6e5ec3f895 feat: automatically unban users in onSuccessfulLogin
This allows write API (and probably SSO login) to go through unimpeded if a user's ban has expired. Closes nodebb/nodebb-plugin-write-api#126
2020-11-23 16:06:06 -05:00
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