summaryrefslogtreecommitdiff
path: root/src/server/api/private
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2018-08-17 19:17:23 +0900
committersyuilo <syuilotan@yahoo.co.jp>2018-08-17 19:17:23 +0900
commit2c8f962889f9231238dbdaa5990f00646e8060f3 (patch)
tree73e2fb3d84cbd0e372c950b9e6482deeafa26ec2 /src/server/api/private
parentMerge pull request #2270 from syuilo/l10n_master (diff)
downloadsharkey-2c8f962889f9231238dbdaa5990f00646e8060f3.tar.gz
sharkey-2c8f962889f9231238dbdaa5990f00646e8060f3.tar.bz2
sharkey-2c8f962889f9231238dbdaa5990f00646e8060f3.zip
#2214 #2155
Diffstat (limited to 'src/server/api/private')
-rw-r--r--src/server/api/private/signup.ts24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/server/api/private/signup.ts b/src/server/api/private/signup.ts
index 16ec33bcbf..2bf56a9791 100644
--- a/src/server/api/private/signup.ts
+++ b/src/server/api/private/signup.ts
@@ -6,6 +6,7 @@ import User, { IUser, validateUsername, validatePassword, pack } from '../../../
import generateUserToken from '../common/generate-native-user-token';
import config from '../../../config';
import Meta from '../../../models/meta';
+import RegistrationTicket from '../../../models/registration-tickets';
if (config.recaptcha) {
recaptcha.init({
@@ -29,6 +30,29 @@ export default async (ctx: Koa.Context) => {
const username = body['username'];
const password = body['password'];
+ const invitationCode = body['invitationCode'];
+
+ const meta = await Meta.findOne({});
+
+ if (meta.disableRegistration) {
+ if (invitationCode == null || typeof invitationCode != 'string') {
+ ctx.status = 400;
+ return;
+ }
+
+ const ticket = await RegistrationTicket.findOne({
+ code: invitationCode
+ });
+
+ if (ticket == null) {
+ ctx.status = 400;
+ return;
+ }
+
+ RegistrationTicket.remove({
+ _id: ticket._id
+ });
+ }
// Validate username
if (!validateUsername(username)) {