permission and aut

pull/1/head
saeid_01 5 years ago
parent e5eee7a7ce
commit 79982a185c

@ -1,7 +1,7 @@
{
"/js/vue/Authentication/app.js": "/js/vue/Authentication/app.js?id=dfec734f6a8269341342",
"/js/vue/Home/app.js": "/js/vue/Home/app.js?id=9f7b5df53789693aae62",
"/js/vue/Modules/CRM/app.js": "/js/vue/Modules/CRM/app.js?id=252b52bb78d06845370f",
"/js/vue/Modules/Reservation/app.js": "/js/vue/Modules/Reservation/app.js?id=1fd7d081faa5afc1e968",
"/js/vue/User/app.js": "/js/vue/User/app.js?id=caa37176d181f1cabcd1"
"/js/vue/Authentication/app.js": "/js/vue/Authentication/app.js?id=9d41bd8d991d67dc5aca",
"/js/vue/Home/app.js": "/js/vue/Home/app.js?id=66508c2fd5ce92d2e1fa",
"/js/vue/Modules/CRM/app.js": "/js/vue/Modules/CRM/app.js?id=1c06e1143737f86f5941",
"/js/vue/Modules/Reservation/app.js": "/js/vue/Modules/Reservation/app.js?id=6ad848b6a54b25f9f62e",
"/js/vue/User/app.js": "/js/vue/User/app.js?id=58adfc6b944d170b62eb"
}

@ -20,7 +20,7 @@
</v-list-tile-avatar>
<v-list-tile-content>
<v-list-tile-title class="Name"> {{ user.name }} </v-list-tile-title>
<v-list-tile-title class="Name"> {{ getAuthUser.name }} </v-list-tile-title>
<div class="Role"> مدیریت </div>
<a class="LogOut">
<v-tooltip bottom color="black">
@ -47,8 +47,7 @@
<script>
import Tile from '@Global/components/Drawer/Tile';
import Notifications from '@Global/components/Drawer/Notifications';
import {mapActions} from 'vuex';
import {UserService} from '@Global/services/storage.services'
import {mapActions, mapGetters} from 'vuex';
export default {
data() {
return {
@ -69,12 +68,12 @@
'wm-list-tile': Tile,
'wm-notifications':Notifications,
},
computed:{
...mapGetters('auth', ["getAuthUser"])
},
methods:{
...mapActions('auth', ['logout'])
},
created() {
this.user = UserService.get();
}
}
</script>

@ -0,0 +1,19 @@
<template>
<v-snackbar :color="color" :timeout="timeout" v-model="snackbar">
{{message}}
<v-btn color="white" text @click="snackbar = false" fab>
<v-icon color="white">{{icon}}</v-icon>
</v-btn>
</v-snackbar>
</template>
<script>
export default {
data: {},
props: {
timeout: { default: 30000 },
color: { default: "red" },
message: { default: "فعالیت شما با موفقیت انجام شد" },
icon: "fas fa-times"
}
};
</script>

@ -1,8 +1,11 @@
import { mapActions, mapMutations } from "vuex";
import { mapActions } from "vuex";
import globalStore from "@Global/store";
import authStore from "@Core/store";
import permissionList from "@Global/utils/Permissions/list";
const global = {
methods: {
$_getPath(subPath) {
return '/' + subPath;
return "/" + subPath;
},
//Modal
@ -22,10 +25,28 @@ const global = {
},
//Permission
$_hasPermission(premission) {
$_hasPermission(permission, owner = false) {
return true;
},
let currentModule = globalStore.state.common.current_module;
let permissions = authStore.state.auth.permissions;
let multiPermission = permission.split("|");
for (const iterator of multiPermission) {
if (iterator == '') {
return true;
}
permission = permissionList[iterator];
if (
owner ||
(permission &&
permissions[currentModule] &&
permissions[currentModule].includes(permission))
) {
return true;
}
}
return false;
}
}
};
export {global}
export { global };

@ -0,0 +1,18 @@
import { TokenService, PermissionService, UserService } from "@Global/services/storage.services";
import ApiService from "@Global/services/api.services";
import store from "@Core/store/index";
ApiService.init();
// If token exists set Authorizion header
if (TokenService.getToken()) {
ApiService.setAuthHeader();
}
if (PermissionService.get()) {
store.commit('auth/SET_AUTH_PERMISSIONS', PermissionService.get())
} else {
store.dispatch('auth/loadAuthPermissions');
}
if (UserService.get()) {
store.commit('auth/SET_AUTH_USER', UserService.get())
}

@ -25,7 +25,10 @@ const TokenService = {
const UserService = {
get() {
return qs.parse(localStorage.getItem(USER))
if (localStorage.getItem(USER)) {
return qs.parse(localStorage.getItem(USER))
}
return null;
},
save(user = null) {
@ -40,7 +43,10 @@ const UserService = {
const PermissionService = {
get() {
return qs.parse(localStorage.getItem(PERMISSION))
if (localStorage.getItem(PERMISSION)) {
return qs.parse(localStorage.getItem(PERMISSION))
}
return null;
},
save(permission = null) {

@ -1,6 +1,7 @@
export default {
indexTask: 'index-task',
storeTask: 'store-task',
receiveTask: 'receive-task',
updateTask: 'update-task',
destroyTask: 'destroy-task',
@ -60,11 +61,6 @@ export default {
updateRole: 'update-role',
destroyRole: 'destroy-role',
indexPermission: 'index-permission',
storePermission: 'store-permission',
updatePermission: 'update-permission',
destroyPermission: 'destroy-permission',
sendEmail: 'send-email',
sendSMS: 'send-sms',
}

@ -81,13 +81,7 @@ Vue.mixin({
methods: { ...global["methods"], ...commingSoon["methods"] }
});
import { TokenService } from "@Global/services/storage.services";
import ApiService from "@Global/services/api.services";
// If token exists set Authorizion header
ApiService.init();
if (TokenService.getToken()) {
ApiService.setAuthHeader();
}
import '@Global/plugins/auth'

@ -1,36 +1,28 @@
<template>
<v-container fluid>
<v-layout row wrap>
<!-- <a href="/Main/Home" class="flex lg8 xs12">
<wm-tile TileClass="Inline LTR Padd10" TitleEn="My Store" TitleFa="فروشگاه من" Desc=" کالاها، خدمات، تخفیفات، فروش وِیژه و ... "
GradientBegin="feeae3" GradientEnd="feeae3" ImageURL="Store.png" ImageHeight="220px" Quantity="32">
</wm-tile>
</a>
<router-link to="/Main/Home" class="flex lg4 xs12">
<wm-tile TileClass="Padd10" TitleEn="My Portfolios" TitleFa=" نمونه کار های من " Desc=" کالاها، خدمات، تخفیفات، فروش وِیژه و ... "
GradientBegin="cab9a5" GradientEnd="f0ebe6" ImageURL="Portfolio2.png" ImageHeight="150px" Quantity="1250">
</wm-tile>
</router-link>
<router-link to="/Main/Home" class="flex lg12 xs12">
<wm-tile TileClass="Inline LTR Padd10" TileHeight="180" TitleEn="My Website" TitleFa="وبسایت من" Desc=" کالاها، خدمات، تخفیفات، فروش وِیژه و ... "
GradientBegin="f2f2f2" GradientEnd="e0e0e0" ImageURL="Website.png" >
</wm-tile>
</router-link> -->
<a href="/CRM/Home" class="flex lg8 xs12">
<wm-tile TileClass="Inline LTR Padd10" TitleEn="CRM" TitleFa=" مدیریت ارتباط با مشتری " Desc=" کالاها، خدمات، تخفیفات، فروش وِیژه و ... "
GradientBegin="d6e7de" GradientEnd="fff2f3" ImageURL="Members.png" ImageHeight="220px" >
</wm-tile>
</a>
<a href="/Reservation/Home" v-if="$_inCommingSoon('main-reservation')" class="flex lg4 xs12">
<wm-tile TileClass="Padd10" TitleEn="Reservations" TitleFa=" سیستم رزرو وقت " Desc=" کالاها، خدمات، تخفیفات، فروش وِیژه و ... "
GradientBegin="fff" GradientEnd="f7f7f7" ImageURL="Clock.png" ImageHeight="150px" >
</wm-tile>
<a
:href="module.href"
:class="'flex ' + module.main_class"
v-for="( module ,key ) in modules"
:key="key"
>
<wm-tile
:TileClass="module.title_class"
:TitleEn="module.title_en"
:TitleFa="module.title_fa"
:Desc="module.description"
:GradientBegin="module.gradient_begin"
:GradientEnd="module.gradient_end"
:ImageURL="module.img_url"
:ImageHeight="module.img_height"
></wm-tile>
</a>
</v-layout>
<router-link :to="{name: 'AddModule'}">
<v-btn large fab color="cyan" fixed bottom left dark style="left:5%"><v-icon dark>fas fa-plus</v-icon></v-btn>
<v-btn large fab color="cyan" fixed bottom left dark style="left:5%">
<v-icon dark>fas fa-plus</v-icon>
</v-btn>
</router-link>
</v-container>
</template>
@ -38,11 +30,48 @@
<script>
import Tile from '@Global/components/Tiles/Tile';
import Tile from "@Global/components/Tiles/Tile";
import { mapGetters, mapActions } from 'vuex';
export default {
data: () => ({
modules: [
{
href: "/CRM/Home",
title_class: "Inline LTR Padd10",
main_class: "lg8 xs12",
title_en: "CRM",
title_fa: " مدیریت ارتباط با مشتری ",
description: " کالاها، خدمات، تخفیفات، فروش وِیژه و ... ",
gradient_begin: "d6e7de",
gradient_end: "fff2f3",
img_url: "Members.png",
img_height: "220px"
},
{
href: "/Reservation/Home",
title_class: "Padd10",
main_class: "lg4 xs12",
title_en: "Reservations",
title_fa: " سیستم رزرو وقت ",
description: " کالاها، خدمات، تخفیفات، فروش وِیژه و ... ",
gradient_begin: "fff",
gradient_end: "f7f7f7",
img_url: "Clock.png",
img_height: "150px"
}
]
}),
components: {
'wm-tile':Tile,
"wm-tile": Tile
},
computed: {
...mapGetters("role_permission", ["getModules"]),
},
methods:{
...mapActions('role_permission', ['loadModules']),
},
created() {
this.loadModules();
},
};
</script>

Loading…
Cancel
Save