Skip to content
Snippets Groups Projects
Commit e0ac3842 authored by robinwilliam.hundt's avatar robinwilliam.hundt
Browse files

Added registration option on login page

parent cfa815dd
No related branches found
No related tags found
1 merge request!101Resolve "Frontend improvements"
Pipeline #
...@@ -13,9 +13,19 @@ function getInstanceBaseUrl () { ...@@ -13,9 +13,19 @@ function getInstanceBaseUrl () {
} }
let ax = axios.create({ let ax = axios.create({
baseURL: getInstanceBaseUrl(), baseURL: getInstanceBaseUrl()
headers: {'Authorization': 'JWT ' + sessionStorage.getItem('token')} // headers: {'Authorization': 'JWT ' + sessionStorage.getItem('token')}
}) })
{
let token = sessionStorage.getItem('token')
if (token) {
ax.defaults.headers['Authorization'] = `JWT ${token}`
}
}
export async function registerTutor (credentials) {
return ax.post('/api/tutor/register/', credentials)
}
export async function fetchJWT (credentials) { export async function fetchJWT (credentials) {
const token = (await ax.post('/api/get-token/', credentials)).data.token const token = (await ax.post('/api/get-token/', credentials)).data.token
......
<template>
<v-card>
<v-card-title class="title">
Register
</v-card-title>
<v-card-text>
<v-text-field
label="Username"
required
autofocus
v-model="credentials.username"
/>
<v-text-field
label="Password"
required
type="password"
v-model="credentials.password"
/>
</v-card-text>
<v-card-actions class="justify-center">
<v-btn flat :loading="loading" @click="register">submit</v-btn>
</v-card-actions>
</v-card>
</template>
<script>
import { registerTutor } from '@/api'
export default {
name: 'register-dialog',
data () {
return {
credentials: {
username: '',
password: ''
},
loading: false
}
},
methods: {
register () {
this.loading = true
registerTutor(this.credentials).then(() => {
this.$emit('registered', this.credentials)
}).catch(() => {
this.$notify({
title: 'Unable to register',
text: "Couldn't register a tutor account.",
type: 'error'
})
}).finally(() => { this.loading = false })
}
}
}
</script>
<style scoped>
</style>
<template> <template>
<v-container fill-height> <v-container fill-height>
<v-layout align-center justify-center> <v-layout align-center justify-center>
<v-dialog v-model="registerDialog" max-width="fit-content" class="pa-4">
<register-dialog @registered="registered($event)"/>
</v-dialog>
<v-flex text-xs-center xs8 sm6 md4 lg2> <v-flex text-xs-center xs8 sm6 md4 lg2>
<img v-if="production" :src="productionBrandUrl"/> <img v-if="production" :src="productionBrandUrl"/>
<img v-else src="../assets/brand.png"/> <img v-else src="../assets/brand.png"/>
...@@ -27,6 +30,7 @@ ...@@ -27,6 +30,7 @@
type="password" type="password"
required required
/> />
<v-btn @click="registerDialog = true">register</v-btn>
<v-btn :loading="loading" type="submit" color="primary">Access</v-btn> <v-btn :loading="loading" type="submit" color="primary">Access</v-btn>
</v-form> </v-form>
</v-flex> </v-flex>
...@@ -37,8 +41,11 @@ ...@@ -37,8 +41,11 @@
<script> <script>
import {mapActions, mapState} from 'vuex' import {mapActions, mapState} from 'vuex'
import RegisterDialog from '@/components/RegisterDialog'
import { authMut } from '@/store/modules/authentication'
export default { export default {
components: {RegisterDialog},
name: 'grady-login', name: 'grady-login',
data () { data () {
return { return {
...@@ -46,6 +53,7 @@ ...@@ -46,6 +53,7 @@
username: '', username: '',
password: '' password: ''
}, },
registerDialog: false,
loading: false loading: false
} }
}, },
...@@ -76,6 +84,12 @@ ...@@ -76,6 +84,12 @@
this.getJWTTimeDelta() this.getJWTTimeDelta()
this.loading = false this.loading = false
}).catch(() => { this.loading = false }) }).catch(() => { this.loading = false })
},
registered (credentials) {
this.registerDialog = false
this.credentials.username = credentials.username
this.credentials.password = credentials.password
this.$store.commit(authMut.SET_MESSAGE, 'Your account is being activated. Please wait.')
} }
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment