aboutsummaryrefslogtreecommitdiff
path: root/src/components/registration
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/registration')
-rw-r--r--src/components/registration/registration.js12
-rw-r--r--src/components/registration/registration.vue13
2 files changed, 23 insertions, 2 deletions
diff --git a/src/components/registration/registration.js b/src/components/registration/registration.js
index 0618ac6c..65b2fb9b 100644
--- a/src/components/registration/registration.js
+++ b/src/components/registration/registration.js
@@ -11,7 +11,8 @@ const registration = {
username: '',
password: '',
confirm: ''
- }
+ },
+ captcha: {}
}),
validations: {
user: {
@@ -29,6 +30,8 @@ const registration = {
if ((!this.registrationOpen && !this.token) || this.signedIn) {
this.$router.push('/~/main/all')
}
+
+ this.setCaptcha()
},
computed: {
token () { return this.$route.params.token },
@@ -41,10 +44,12 @@ const registration = {
})
},
methods: {
- ...mapActions(['signUp']),
+ ...mapActions(['signUp', 'getCaptcha']),
async submit () {
this.user.nickname = this.user.username
this.user.token = this.token
+ this.user.captcha_solution = this.captcha.solution
+ this.user.captcha_token = this.captcha.token
this.$v.$touch()
@@ -56,6 +61,9 @@ const registration = {
console.warn('Registration failed: ' + error)
}
}
+ },
+ setCaptcha () {
+ this.getCaptcha().then(cpt => { this.captcha = cpt })
}
}
}
diff --git a/src/components/registration/registration.vue b/src/components/registration/registration.vue
index 8cb1392b..f187e215 100644
--- a/src/components/registration/registration.vue
+++ b/src/components/registration/registration.vue
@@ -75,6 +75,19 @@
</ul>
</div>
+ <div class="form-group" id="captcha-group" v-if="captcha.type != 'none'">
+ <template v-if="captcha.type == 'kocaptcha'">
+ <img v-bind:src="captcha.url" v-on:click="setCaptcha">
+
+ <sub>Click the image to get a new captcha</sub>
+ <label class='form--label' for='captcha-label'>CAPTCHA</label>
+
+ <input :disabled="isPending"
+ v-model='captcha.solution'
+ class='form-control' id='captcha-answer' type='text'>
+ </template>
+ </div>
+
<div class='form-group' v-if='token' >
<label for='token'>{{$t('registration.token')}}</label>
<input disabled='true' v-model='token' class='form-control' id='token' type='text'>