Edit forgot password

This commit is contained in:
saeid
2019-04-15 18:56:16 +04:30
parent 8986f934a3
commit 4c286bfbc0
15 changed files with 620 additions and 174 deletions
+1 -1
View File
@@ -33,7 +33,7 @@
export default {
data: () => ({
links: [
{ name: 'Powered By', Link: 'https://www.willamall.com' },
{ name: 'Powered By WillaMall', Link: 'https://www.willamall.com' },
// { name: 'Home', Link: '/dashboard' },
// { name: 'Creative Tim', Link: 'https://www.creative-tim.com' },
// { name: 'About Us', Link: 'https://creative-tim.com/presentation' },
+11 -2
View File
@@ -16,8 +16,8 @@ export default [
},
{
path: '/all-resualttest',
name: 'All Resualt Test',
view: 'AllResualtTest'
name: 'All Result Test',
view: 'AllResultTest'
},
{
path: '/manage-users',
@@ -62,6 +62,15 @@ export default [
name: 'Submit Test Result',
view: 'SubmitTestResult'
},
{
path: '/forgot-password',
name: 'ForgotPassword',
view: 'ForgotPassword',
meta: {
public: true, // Allow access to even if not logged in
onlyWhenLoggedOut: true
}
},
{
path: '/test-creator',
name: 'Test Creator',
+1 -1
View File
@@ -56,7 +56,7 @@ const ApiService = {
},
async (error) => {
if (error.request.status == 401) {
if (error.config.url.includes('/o/token/')) {
if (error.config.url.includes('/auth/login/')) {
// Refresh token has failed. Logout the user
store.dispatch('auth/logout')
throw error
+28
View File
@@ -48,6 +48,34 @@ const UserService = {
throw new AuthenticationError(error.response.status, error.response.data.detail);
}
},
/**
* Login the user and store the access token to TokenService.
*
* @returns access_token
* @throws AuthenticationError
**/
forgotPassword: async function(cell_number) {
const requestData = {
method: 'post',
url: "/forgotPassword",
data: {
cell_number,
},
auth: {
username: process.env.VUE_APP_CLIENT_ID,
password: process.env.VUE_APP_CLIENT_SECRET
}
}
try {
const response = await ApiService.customRequest(requestData);
ApiService.setHeader();
return response.data;
} catch (error) {
throw new AuthenticationError(error.response.status, error.response.data.detail);
}
},
/**
* Refresh the access token.
+5
View File
@@ -22,6 +22,11 @@ export default {
}
},
async forgotPassword({ commit }, {cell_number}) {
const result = await UserService.forgotPassword(cell_number);
// TODO: Open Modal For Get Section
},
logout({ commit }) {
UserService.logout()
commit('logoutSuccess')
+62
View File
@@ -0,0 +1,62 @@
<template>
<v-form >
<v-container grid-list-xs>
<v-layout row wrap class="justify-center">
<v-flex xs12 md3 sm3 class="WM-WidthScreen-SM WM-WidthScreen-XS">
<material-card
color="black"
title="Login Page">
<v-layout row wrap class="px-3">
<v-flex xs12 md12 sm12>
<v-text-field
v-model="cell_number"
name="cellnumber"
label="Cell Number"
id="id1"
color="black"
></v-text-field>
</v-flex>
</v-layout>
<v-layout row wrap class="px-3">
<v-flex xs12 md6 sm6 class="text-md-left text-sm-center text-xs-center">
<v-btn class="WM-CyanBlueGradient-BG" style="padding:10px 60px" @click="handleSubmit">
<v-icon class="white--text mr-2 caption">fas fa-sign-in-alt</v-icon>
<span class="white--text">Send</span>
</v-btn>
</v-flex>
<v-flex xs12 md6 sm6 class="text-md-right text-sm-center text-xs-center">
<router-link class="black--text" to="login">
<v-btn class="WM-NoShadow WM-Outline-Btn WM-Border WM-Border-Black">
<v-icon class="black--text mr-2 caption">fas fa-sign-in-alt</v-icon>
<span class="black--text">Login</span>
</v-btn>
</router-link>
</v-flex>
</v-layout>
</material-card>
</v-flex>
</v-layout>
</v-container>
</v-form>
</template>
<script>
import { mapGetters, mapActions } from "vuex";
export default {
data() {
return {
cell_number: "",
};
},
methods: {
...mapActions('auth', [
'forgotPassword'
]),
handleSubmit() {
// Perform a simple validation that cell_number and password have been typed in
if (this.cell_number != '') {
this.forgotPassword({cell_number: this.cell_number});
}
}
}
};
</script>
+7 -5
View File
@@ -36,15 +36,17 @@
</v-btn>
</v-flex>
<v-flex xs12 md6 sm6 class="text-md-right text-sm-center text-xs-center">
<v-btn class="WM-NoShadow WM-Outline-Btn WM-Border WM-Border-Black">
<v-icon class="black--text mr-2 caption">fas fa-plus</v-icon>
<span ><router-link class="black--text" to="register">Register</router-link></span>
</v-btn>
<router-link class="black--text" to="register">
<v-btn class="WM-NoShadow WM-Outline-Btn WM-Border WM-Border-Black">
<v-icon class="black--text mr-2 caption">fas fa-plus</v-icon>
<span >Register</span>
</v-btn>
</router-link>
</v-flex>
</v-layout>
<v-layout row wrap class="text-md-left text-sm-center text-xs-center">
<v-flex xs12 md6 sm6 class="px-4 py-3">
<router-link to="/submittestresualt">
<router-link to="/forgot-password">
<span class="black--text" style="border-bottom:1px solid #000;">Forgot Password ?</span>
</router-link>
</v-flex>
+10 -32
View File
@@ -5,6 +5,16 @@
<v-flex xs12 md3 sm6 class="WM-WidthScreen-SM WM-WidthScreen-XS">
<material-card color="black" title="Register Page">
<v-layout column>
<v-flex xs12 md2 sm2>
<v-text-field
name="name"
label="Name"
v-model="form.name"
id="id3"
color="black"
class="pa-2"
></v-text-field>
</v-flex>
<v-flex xs12 md2 sm2>
<v-text-field
name="cellnumber"
@@ -28,29 +38,6 @@
class="pa-2"
></v-text-field>
</v-flex>
<v-flex xs12 md2 sm2>
<v-text-field
name="name"
label="Name"
v-model="form.name"
id="id3"
color="black"
class="pa-2"
></v-text-field>
</v-flex>
<v-flex xs12 md2 sm2>
<v-select
class="pa-2"
v-model="form.select"
:items="items"
item-text="state"
item-value="abbr"
label="Type"
return-object
single-line
color="black"
></v-select>
</v-flex>
</v-layout>
<v-layout row wrap>
<v-flex xs12 md6 sm6 class="text-md-left text-sm-center text-xs-center">
@@ -82,20 +69,11 @@ export default {
cellnumber: '',
password: '',
name: '',
select: '',
})
return {
form: Object.assign({}, defaultForm),
valid : false,
show1 : false,
select: { state: 'Florida', abbr: 'FL' },
items: [
{ state: 'Florida', abbr: 'FL' },
{ state: 'Georgia', abbr: 'GA' },
{ state: 'Nebraska', abbr: 'NE' },
{ state: 'California', abbr: 'CA' },
{ state: 'New York', abbr: 'NY' }
],
defaultForm
}
}