mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-12-20 07:20:27 +01:00
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>
This commit is contained in:
@@ -55,7 +55,11 @@ async function registerAndLoginUser(req, res, userData) {
|
||||
await authenticationController.doLogin(req, uid);
|
||||
}
|
||||
|
||||
user.deleteInvitationKey(userData.email);
|
||||
// Distinguish registrations through invites from direct ones
|
||||
if (userData.token) {
|
||||
await user.joinGroupsFromInvitation(uid, userData.email);
|
||||
}
|
||||
await user.deleteInvitationKey(userData.email);
|
||||
const referrer = req.body.referrer || req.session.referrer || nconf.get('relative_path') + '/';
|
||||
const complete = await plugins.fireHook('filter:register.complete', { uid: uid, referrer: referrer });
|
||||
req.session.returnTo = complete.referrer;
|
||||
@@ -74,7 +78,7 @@ authenticationController.register = async function (req, res) {
|
||||
|
||||
const userData = req.body;
|
||||
try {
|
||||
if (registrationType === 'invite-only' || registrationType === 'admin-invite-only') {
|
||||
if (userData.token || registrationType === 'invite-only' || registrationType === 'admin-invite-only') {
|
||||
await user.verifyInvitation(userData);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user