diff --git a/src/core/composables/role.ts b/src/core/composables/role.ts new file mode 100644 index 0000000000..367b23b811 --- /dev/null +++ b/src/core/composables/role.ts @@ -0,0 +1,17 @@ +import store from '@/store'; + +export function Role() { + function hasAny(roles: string[]): boolean { + const roleStore: string[] = store.state.roles; + + for (const role of roles) { + if (roleStore.indexOf(role) !== -1) return true; + } + + return false; + } + + return { + hasAny, + }; +} diff --git a/src/store/index.ts b/src/store/index.ts index e6a8d93518..603cf39b0b 100644 --- a/src/store/index.ts +++ b/src/store/index.ts @@ -7,6 +7,16 @@ interface UserProfile { token: string; } +interface Role { + id: number; + name: string; +} + +interface UserRole { + id: number; + role: Role; +} + export default createStore({ state: { user: {}, @@ -23,7 +33,8 @@ export default createStore({ state.user = user; }, - setRoles(state, roles) { + setRoles(state, data) { + const roles = data.map((userRole: UserRole) => userRole.role.name); state.roles = roles; }, }, diff --git a/src/views/Dashboard/Dashboard.vue b/src/views/Dashboard/Dashboard.vue index 78a53df742..9e5b694a9c 100644 --- a/src/views/Dashboard/Dashboard.vue +++ b/src/views/Dashboard/Dashboard.vue @@ -1,9 +1,6 @@ @@ -11,11 +8,7 @@ import { Options, Vue } from 'vue-class-component'; @Options({}) -export default class Dashboard extends Vue { - get whatever(): string { - return this.$filters.toLowerCase('HELLO WORLD'); - } -} +export default class Dashboard extends Vue {}