diff --git a/src/components/registration/registration.js b/src/components/registration/registration.js
index 771b3b27..73840608 100644
--- a/src/components/registration/registration.js
+++ b/src/components/registration/registration.js
@@ -5,17 +5,23 @@ const registration = {
registering: false
}),
created () {
- if (!this.$store.state.config.registrationOpen || !!this.$store.state.users.currentUser) {
+ if ((!this.$store.state.config.registrationOpen && !this.token) || !!this.$store.state.users.currentUser) {
this.$router.push('/main/all')
}
+ // Seems like this doesn't work at first page open for some reason
+ if (this.$store.state.config.registrationOpen && this.token) {
+ this.$router.push('/registration')
+ }
},
computed: {
- termsofservice () { return this.$store.state.config.tos }
+ termsofservice () { return this.$store.state.config.tos },
+ token () { return this.$route.params.token }
},
methods: {
submit () {
this.registering = true
this.user.nickname = this.user.username
+ this.user.token = this.token
this.$store.state.api.backendInteractor.register(this.user).then(
(response) => {
if (response.ok) {
diff --git a/src/components/registration/registration.vue b/src/components/registration/registration.vue
index 00f665af..087cab6b 100644
--- a/src/components/registration/registration.vue
+++ b/src/components/registration/registration.vue
@@ -38,6 +38,10 @@
-->
+
+
+
+
diff --git a/src/i18n/messages.js b/src/i18n/messages.js
index e9d6e176..003df68c 100644
--- a/src/i18n/messages.js
+++ b/src/i18n/messages.js
@@ -354,7 +354,8 @@ const en = {
fullname: 'Display name',
email: 'Email',
bio: 'Bio',
- password_confirm: 'Password confirmation'
+ password_confirm: 'Password confirmation',
+ token: 'Invite token'
},
post_status: {
posting: 'Posting',
@@ -1643,7 +1644,8 @@ const ru = {
fullname: 'Отображаемое имя',
email: 'Email',
bio: 'Описание',
- password_confirm: 'Подтверждение пароля'
+ password_confirm: 'Подтверждение пароля',
+ token: 'Код приглашения'
},
post_status: {
posting: 'Отправляется',
diff --git a/src/main.js b/src/main.js
index bacd7f6d..883e1a31 100644
--- a/src/main.js
+++ b/src/main.js
@@ -119,6 +119,7 @@ window.fetch('/static/config.json')
{ name: 'mentions', path: '/:username/mentions', component: Mentions },
{ name: 'settings', path: '/settings', component: Settings },
{ name: 'registration', path: '/registration', component: Registration },
+ { name: 'registration', path: '/registration/:token', component: Registration },
{ name: 'friend-requests', path: '/friend-requests', component: FollowRequests },
{ name: 'user-settings', path: '/user-settings', component: UserSettings }
]
diff --git a/src/services/api/api.service.js b/src/services/api/api.service.js
index adf598b7..13cc4796 100644
--- a/src/services/api/api.service.js
+++ b/src/services/api/api.service.js
@@ -159,6 +159,7 @@ const updateProfile = ({credentials, params}) => {
// bio
// homepage
// location
+// token
const register = (params) => {
const form = new FormData()