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 @@
-
- Dashboard page..
- {{ $filters.toLowerCase('HELLO WORLD') }}
-
+ Dashboard page..
@@ -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 {}