sajjad 3 years ago
parent 623b825769
commit b33c97b0c6

@ -6,7 +6,6 @@
<meta name="viewport" content="width=device-width,initial-scale=1.0"> <meta name="viewport" content="width=device-width,initial-scale=1.0">
<link rel="icon" href="<%= BASE_URL %>favicon.ico"> <link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title><%= htmlWebpackPlugin.options.title %></title> <title><%= htmlWebpackPlugin.options.title %></title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@mdi/font@latest/css/materialdesignicons.min.css">
</head> </head>
<body> <body>
<noscript> <noscript>

@ -16,7 +16,6 @@ export default class AuthRepository {
return true; return true;
} }
} }
async register(data) { async register(data) {
let json = setData(data); let json = setData(data);
let response = await axios.post(url("register"), json); let response = await axios.post(url("register"), json);
@ -24,6 +23,11 @@ export default class AuthRepository {
return response.data; return response.data;
} }
} }
async forgetPassword(data) {
let json = setData(data);
let response = await axios.post(url("forgetPassword"), json);
return getJson(response.data.data)
}
async resetPassword(data) { async resetPassword(data) {
let json = setData(data); let json = setData(data);
let response = await axios.post(url("resetPassword"), json); let response = await axios.post(url("resetPassword"), json);

@ -2,14 +2,34 @@
<div class="wa__admin"> <div class="wa__admin">
<div class="wa__admin--name"> <div class="wa__admin--name">
<template> <template>
<h6 class="text-uppercase">patrich james</h6> <h6 class="text-uppercase">{{ first_name }} {{ last_name }}</h6>
<div class="wa__link"> <div class="wa__link" @click="doLogout">
<i class="WMi-off"></i> <i class="WMi-off"></i>
</div> </div>
</template> </template>
</div> </div>
</div> </div>
</template> </template>
<script>
import { UserStorage } from "@/utils/storage";
import { mapActions } from "vuex";
export default {
name: "name",
data: () => ({
first_name: UserStorage.get() ? UserStorage.get().first_name : null,
last_name: UserStorage.get() ? UserStorage.get().last_name : null,
}),
methods: {
...mapActions("auth", ["logout"]),
async doLogout() {
const response = await this.logout();
if (response) {
this.$router.push({ name: "login" });
}
},
},
};
</script>
<style scoped> <style scoped>
.wa__link a { .wa__link a {
text-decoration: none; text-decoration: none;

@ -14,7 +14,7 @@
v-model="date" v-model="date"
:label="label" :label="label"
:placeholder="placeholder || label" :placeholder="placeholder || label"
prepend-inner-icon="mdi-calendar" prepend-inner-icon="WMi-calendar-alt"
readonly readonly
:color="color" :color="color"
v-bind="attrs" v-bind="attrs"

@ -24,7 +24,7 @@
<v-file-input <v-file-input
accept="image/png, image/jpeg, image/bmp" accept="image/png, image/jpeg, image/bmp"
placeholder="Pick an Image" placeholder="Pick an Image"
prepend-icon="mdi-camera" prepend-icon="WMi-camera"
:label="label" :label="label"
@change="changeImage" @change="changeImage"
ref="fileInput" ref="fileInput"

@ -14,7 +14,7 @@
v-model="time" v-model="time"
:label="label" :label="label"
:placeholder="placeholder || label" :placeholder="placeholder || label"
prepend-inner-icon="mdi-calendar" prepend-inner-icon="WMi-calendar-alt"
readonly readonly
:color="color" :color="color"
v-bind="attrs" v-bind="attrs"

@ -10,7 +10,9 @@
import Vue from "vue"; import Vue from "vue";
import Router from "vue-router"; import Router from "vue-router";
import Meta from "vue-meta"; import Meta from "vue-meta";
import Paths from "./path" import Paths from "./path";
import { TokenStorage, UserStorage } from "../utils/storage";
Vue.use(Router); Vue.use(Router);
Vue.use(Meta); Vue.use(Meta);
@ -41,6 +43,7 @@ function create() {
} }
function route(options) { function route(options) {
// console.log('options', options);
let path = options.path; let path = options.path;
let view = options.view; let view = options.view;
let name = options.name; let name = options.name;
@ -59,24 +62,20 @@ function route(options) {
function beforeLoad() { function beforeLoad() {
router.beforeEach((to, from, next) => { router.beforeEach((to, from, next) => {
setTitle(to); setTitle(to);
const auth = to.meta && to.meta.auth ? to.meta.auth : false;
const roles = to.meta && to.meta.roles ? to.meta.roles : false;
// const auth = to.meta && to.meta.auth ? to.meta.auth : false; const loggedIn = !!TokenStorage.getToken();
// const types = to.meta && to.meta.types ? to.meta.types : false; if (auth && !loggedIn) {
router.push({ name: 'login', query: { redirect: to.fullPath } });
}
// const loggedIn = !!TokenStorage.getToken();
// if (auth && !loggedIn) {
// router.push({ name: 'login', query: { redirect: to.fullPath } });
// }
// if (loggedIn && types && Array.isArray(types)) {
// const ownType = UserStorage.get() ? UserStorage.get().type : '';
// if (!types.includes(ownType)) {
// router.push({ name: 'dashboard'});
// }
// }
if (loggedIn && roles && Array.isArray(roles)) {
const ownType = UserStorage.get() ? UserStorage.get().role : '';
if (!roles.includes(ownType)) {
router.push({ name: 'dashboard' });
}
}
next(); next();
}); });

@ -17,20 +17,11 @@ export default [
{ {
path: '/', path: '/',
view: 'Dashboard', view: 'Dashboard',
name: 'dashboard' name: 'dashboard',
meta: { auth: true }
}, },
{ {
path: '/admin-trainee', path: '/users',
view: 'AdminTrainee',
name: 'dashboardTrainee'
},
{
path: '/admin-trainer',
view: 'AdminTrainer',
name: 'dashboardTrainer'
},
{
path: '/admin-users',
view: 'Users', view: 'Users',
name: 'users' name: 'users'
}, },

@ -4,7 +4,7 @@ const urls = {
// authentication // authentication
login: "auth/login", login: "auth/login",
register: "auth/register", register: "auth/register",
resetPassword: "auth/forget-password", forgetPassword: "auth/forget-password",
logout: "auth/logout", logout: "auth/logout",
// programs // programs
indexProgram: "admin/courses", indexProgram: "admin/courses",

Loading…
Cancel
Save